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 #include "librpc/gen_ndr/ndr_nbt.h"
10 static enum ndr_err_code
ndr_push_netr_UasInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasInfo
*r
)
12 if (ndr_flags
& NDR_SCALARS
) {
13 NDR_CHECK(ndr_push_align(ndr
, 4));
14 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
15 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priv
));
16 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_flags
));
17 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_count
));
18 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_pw_count
));
19 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logon
));
20 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logoff
));
21 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->logoff_time
));
22 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->kickoff_time
));
23 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->password_age
));
24 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_can_change
));
25 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_must_change
));
26 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->computer
));
27 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
28 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->script_path
));
29 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
));
31 if (ndr_flags
& NDR_BUFFERS
) {
32 if (r
->account_name
) {
33 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
34 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
35 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
36 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
39 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
40 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
41 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
42 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->computer
, ndr_charset_length(r
->computer
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
45 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
46 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
47 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
48 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
51 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
52 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
53 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
54 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->script_path
, ndr_charset_length(r
->script_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
57 return NDR_ERR_SUCCESS
;
60 static enum ndr_err_code
ndr_pull_netr_UasInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasInfo
*r
)
62 uint32_t _ptr_account_name
;
63 TALLOC_CTX
*_mem_save_account_name_0
;
64 uint32_t _ptr_computer
;
65 TALLOC_CTX
*_mem_save_computer_0
;
67 TALLOC_CTX
*_mem_save_domain_0
;
68 uint32_t _ptr_script_path
;
69 TALLOC_CTX
*_mem_save_script_path_0
;
70 if (ndr_flags
& NDR_SCALARS
) {
71 NDR_CHECK(ndr_pull_align(ndr
, 4));
72 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
73 if (_ptr_account_name
) {
74 NDR_PULL_ALLOC(ndr
, r
->account_name
);
76 r
->account_name
= NULL
;
78 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priv
));
79 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_flags
));
80 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_count
));
81 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_pw_count
));
82 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logon
));
83 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logoff
));
84 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->logoff_time
));
85 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->kickoff_time
));
86 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->password_age
));
87 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_can_change
));
88 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_must_change
));
89 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer
));
91 NDR_PULL_ALLOC(ndr
, r
->computer
);
95 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
97 NDR_PULL_ALLOC(ndr
, r
->domain
);
101 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_script_path
));
102 if (_ptr_script_path
) {
103 NDR_PULL_ALLOC(ndr
, r
->script_path
);
105 r
->script_path
= NULL
;
107 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
109 if (ndr_flags
& NDR_BUFFERS
) {
110 if (r
->account_name
) {
111 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
112 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
113 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
114 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
115 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
116 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->account_name
), ndr_get_array_length(ndr
, &r
->account_name
));
118 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
119 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
123 _mem_save_computer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
124 NDR_PULL_SET_MEM_CTX(ndr
, r
->computer
, 0);
125 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->computer
));
126 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->computer
));
127 if (ndr_get_array_length(ndr
, &r
->computer
) > ndr_get_array_size(ndr
, &r
->computer
)) {
128 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->computer
), ndr_get_array_length(ndr
, &r
->computer
));
130 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->computer
), sizeof(uint16_t)));
131 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->computer
, ndr_get_array_length(ndr
, &r
->computer
), sizeof(uint16_t), CH_UTF16
));
132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_0
, 0);
135 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
136 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
137 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
138 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
139 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
140 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
142 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
143 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
146 if (r
->script_path
) {
147 _mem_save_script_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
148 NDR_PULL_SET_MEM_CTX(ndr
, r
->script_path
, 0);
149 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->script_path
));
150 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->script_path
));
151 if (ndr_get_array_length(ndr
, &r
->script_path
) > ndr_get_array_size(ndr
, &r
->script_path
)) {
152 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->script_path
), ndr_get_array_length(ndr
, &r
->script_path
));
154 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->script_path
), sizeof(uint16_t)));
155 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->script_path
, ndr_get_array_length(ndr
, &r
->script_path
), sizeof(uint16_t), CH_UTF16
));
156 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_script_path_0
, 0);
159 return NDR_ERR_SUCCESS
;
162 _PUBLIC_
void ndr_print_netr_UasInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasInfo
*r
)
164 ndr_print_struct(ndr
, name
, "netr_UasInfo");
166 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
168 if (r
->account_name
) {
169 ndr_print_string(ndr
, "account_name", r
->account_name
);
172 ndr_print_uint32(ndr
, "priv", r
->priv
);
173 ndr_print_uint32(ndr
, "auth_flags", r
->auth_flags
);
174 ndr_print_uint32(ndr
, "logon_count", r
->logon_count
);
175 ndr_print_uint32(ndr
, "bad_pw_count", r
->bad_pw_count
);
176 ndr_print_time_t(ndr
, "last_logon", r
->last_logon
);
177 ndr_print_time_t(ndr
, "last_logoff", r
->last_logoff
);
178 ndr_print_time_t(ndr
, "logoff_time", r
->logoff_time
);
179 ndr_print_time_t(ndr
, "kickoff_time", r
->kickoff_time
);
180 ndr_print_uint32(ndr
, "password_age", r
->password_age
);
181 ndr_print_time_t(ndr
, "pw_can_change", r
->pw_can_change
);
182 ndr_print_time_t(ndr
, "pw_must_change", r
->pw_must_change
);
183 ndr_print_ptr(ndr
, "computer", r
->computer
);
186 ndr_print_string(ndr
, "computer", r
->computer
);
189 ndr_print_ptr(ndr
, "domain", r
->domain
);
192 ndr_print_string(ndr
, "domain", r
->domain
);
195 ndr_print_ptr(ndr
, "script_path", r
->script_path
);
197 if (r
->script_path
) {
198 ndr_print_string(ndr
, "script_path", r
->script_path
);
201 ndr_print_uint32(ndr
, "unknown", r
->unknown
);
205 static enum ndr_err_code
ndr_push_netr_UasLogoffInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasLogoffInfo
*r
)
207 if (ndr_flags
& NDR_SCALARS
) {
208 NDR_CHECK(ndr_push_align(ndr
, 4));
209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->duration
));
210 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
212 if (ndr_flags
& NDR_BUFFERS
) {
214 return NDR_ERR_SUCCESS
;
217 static enum ndr_err_code
ndr_pull_netr_UasLogoffInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasLogoffInfo
*r
)
219 if (ndr_flags
& NDR_SCALARS
) {
220 NDR_CHECK(ndr_pull_align(ndr
, 4));
221 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->duration
));
222 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
224 if (ndr_flags
& NDR_BUFFERS
) {
226 return NDR_ERR_SUCCESS
;
229 _PUBLIC_
void ndr_print_netr_UasLogoffInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasLogoffInfo
*r
)
231 ndr_print_struct(ndr
, name
, "netr_UasLogoffInfo");
233 ndr_print_uint32(ndr
, "duration", r
->duration
);
234 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
238 _PUBLIC_
enum ndr_err_code
ndr_push_netr_AcctLockStr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AcctLockStr
*r
)
240 if (ndr_flags
& NDR_SCALARS
) {
241 NDR_CHECK(ndr_push_align(ndr
, 4));
242 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->lockout_duration
));
243 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reset_count
));
244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_attempt_lockout
));
245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy
));
247 if (ndr_flags
& NDR_BUFFERS
) {
249 return NDR_ERR_SUCCESS
;
252 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_AcctLockStr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AcctLockStr
*r
)
254 if (ndr_flags
& NDR_SCALARS
) {
255 NDR_CHECK(ndr_pull_align(ndr
, 4));
256 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->lockout_duration
));
257 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reset_count
));
258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_attempt_lockout
));
259 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
261 if (ndr_flags
& NDR_BUFFERS
) {
263 return NDR_ERR_SUCCESS
;
266 _PUBLIC_
void ndr_print_netr_AcctLockStr(struct ndr_print
*ndr
, const char *name
, const struct netr_AcctLockStr
*r
)
268 ndr_print_struct(ndr
, name
, "netr_AcctLockStr");
270 ndr_print_dlong(ndr
, "lockout_duration", r
->lockout_duration
);
271 ndr_print_udlong(ndr
, "reset_count", r
->reset_count
);
272 ndr_print_uint32(ndr
, "bad_attempt_lockout", r
->bad_attempt_lockout
);
273 ndr_print_uint32(ndr
, "dummy", r
->dummy
);
277 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LogonParameterControl(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
280 return NDR_ERR_SUCCESS
;
283 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonParameterControl(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
286 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
288 return NDR_ERR_SUCCESS
;
291 _PUBLIC_
void ndr_print_netr_LogonParameterControl(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
293 ndr_print_uint32(ndr
, name
, r
);
295 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED
, r
);
296 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS
, r
);
297 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS
, r
);
298 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT
, r
);
299 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH
, r
);
300 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT
, r
);
304 static enum ndr_err_code
ndr_push_netr_IdentityInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_IdentityInfo
*r
)
306 if (ndr_flags
& NDR_SCALARS
) {
307 NDR_CHECK(ndr_push_align(ndr
, 4));
308 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
309 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr
, NDR_SCALARS
, r
->parameter_control
));
310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_low
));
311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_high
));
312 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
313 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
315 if (ndr_flags
& NDR_BUFFERS
) {
316 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
317 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
318 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
320 return NDR_ERR_SUCCESS
;
323 static enum ndr_err_code
ndr_pull_netr_IdentityInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_IdentityInfo
*r
)
325 if (ndr_flags
& NDR_SCALARS
) {
326 NDR_CHECK(ndr_pull_align(ndr
, 4));
327 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
328 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr
, NDR_SCALARS
, &r
->parameter_control
));
329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_low
));
330 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_high
));
331 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
332 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
334 if (ndr_flags
& NDR_BUFFERS
) {
335 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
336 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
337 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
339 return NDR_ERR_SUCCESS
;
342 _PUBLIC_
void ndr_print_netr_IdentityInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_IdentityInfo
*r
)
344 ndr_print_struct(ndr
, name
, "netr_IdentityInfo");
346 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
347 ndr_print_netr_LogonParameterControl(ndr
, "parameter_control", r
->parameter_control
);
348 ndr_print_uint32(ndr
, "logon_id_low", r
->logon_id_low
);
349 ndr_print_uint32(ndr
, "logon_id_high", r
->logon_id_high
);
350 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
351 ndr_print_lsa_String(ndr
, "workstation", &r
->workstation
);
355 static enum ndr_err_code
ndr_push_netr_PasswordInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordInfo
*r
)
357 if (ndr_flags
& NDR_SCALARS
) {
358 NDR_CHECK(ndr_push_align(ndr
, 4));
359 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
360 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
361 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
363 if (ndr_flags
& NDR_BUFFERS
) {
364 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
366 return NDR_ERR_SUCCESS
;
369 static enum ndr_err_code
ndr_pull_netr_PasswordInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordInfo
*r
)
371 if (ndr_flags
& NDR_SCALARS
) {
372 NDR_CHECK(ndr_pull_align(ndr
, 4));
373 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
374 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
375 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
377 if (ndr_flags
& NDR_BUFFERS
) {
378 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
380 return NDR_ERR_SUCCESS
;
383 _PUBLIC_
void ndr_print_netr_PasswordInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordInfo
*r
)
385 ndr_print_struct(ndr
, name
, "netr_PasswordInfo");
387 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
388 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
389 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
393 static enum ndr_err_code
ndr_push_netr_ChallengeResponse(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChallengeResponse
*r
)
396 uint32_t _flags_save_STRUCT
= ndr
->flags
;
397 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
398 if (ndr_flags
& NDR_SCALARS
) {
399 NDR_CHECK(ndr_push_align(ndr
, 4));
400 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
401 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
402 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
404 if (ndr_flags
& NDR_BUFFERS
) {
406 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
409 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
412 ndr
->flags
= _flags_save_STRUCT
;
414 return NDR_ERR_SUCCESS
;
417 static enum ndr_err_code
ndr_pull_netr_ChallengeResponse(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChallengeResponse
*r
)
420 TALLOC_CTX
*_mem_save_data_0
;
422 uint32_t _flags_save_STRUCT
= ndr
->flags
;
423 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
424 if (ndr_flags
& NDR_SCALARS
) {
425 NDR_CHECK(ndr_pull_align(ndr
, 4));
426 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
427 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
428 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
430 NDR_PULL_ALLOC(ndr
, r
->data
);
435 if (ndr_flags
& NDR_BUFFERS
) {
437 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
438 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
439 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
440 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
441 if (ndr_get_array_length(ndr
, &r
->data
) > ndr_get_array_size(ndr
, &r
->data
)) {
442 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data
), ndr_get_array_length(ndr
, &r
->data
));
444 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
445 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_length(ndr
, &r
->data
)));
446 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
449 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
452 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->length
));
455 ndr
->flags
= _flags_save_STRUCT
;
457 return NDR_ERR_SUCCESS
;
460 _PUBLIC_
void ndr_print_netr_ChallengeResponse(struct ndr_print
*ndr
, const char *name
, const struct netr_ChallengeResponse
*r
)
462 ndr_print_struct(ndr
, name
, "netr_ChallengeResponse");
464 uint32_t _flags_save_STRUCT
= ndr
->flags
;
465 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
467 ndr_print_uint16(ndr
, "length", r
->length
);
468 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
469 ndr_print_ptr(ndr
, "data", r
->data
);
472 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
476 ndr
->flags
= _flags_save_STRUCT
;
480 static enum ndr_err_code
ndr_push_netr_NetworkInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NetworkInfo
*r
)
483 uint32_t _flags_save_STRUCT
= ndr
->flags
;
484 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
485 if (ndr_flags
& NDR_SCALARS
) {
486 NDR_CHECK(ndr_push_align(ndr
, 4));
487 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
488 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
489 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
490 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
492 if (ndr_flags
& NDR_BUFFERS
) {
493 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
494 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
495 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
497 ndr
->flags
= _flags_save_STRUCT
;
499 return NDR_ERR_SUCCESS
;
502 static enum ndr_err_code
ndr_pull_netr_NetworkInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NetworkInfo
*r
)
505 uint32_t _flags_save_STRUCT
= ndr
->flags
;
506 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
507 if (ndr_flags
& NDR_SCALARS
) {
508 NDR_CHECK(ndr_pull_align(ndr
, 4));
509 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
510 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
511 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
512 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
514 if (ndr_flags
& NDR_BUFFERS
) {
515 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
516 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
517 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
519 ndr
->flags
= _flags_save_STRUCT
;
521 return NDR_ERR_SUCCESS
;
524 _PUBLIC_
void ndr_print_netr_NetworkInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_NetworkInfo
*r
)
526 ndr_print_struct(ndr
, name
, "netr_NetworkInfo");
528 uint32_t _flags_save_STRUCT
= ndr
->flags
;
529 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
531 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
532 ndr_print_array_uint8(ndr
, "challenge", r
->challenge
, 8);
533 ndr_print_netr_ChallengeResponse(ndr
, "nt", &r
->nt
);
534 ndr_print_netr_ChallengeResponse(ndr
, "lm", &r
->lm
);
536 ndr
->flags
= _flags_save_STRUCT
;
540 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LogonInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_LogonInfo
*r
)
542 if (ndr_flags
& NDR_SCALARS
) {
543 int level
= ndr_push_get_switch_value(ndr
, r
);
544 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
547 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
551 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
555 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
559 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
563 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
567 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
570 if (ndr_flags
& NDR_BUFFERS
) {
571 int level
= ndr_push_get_switch_value(ndr
, r
);
575 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
581 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
587 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
593 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
599 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
604 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
607 return NDR_ERR_SUCCESS
;
610 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_LogonInfo
*r
)
614 TALLOC_CTX
*_mem_save_password_0
;
615 TALLOC_CTX
*_mem_save_network_0
;
616 level
= ndr_pull_get_switch_value(ndr
, r
);
617 if (ndr_flags
& NDR_SCALARS
) {
618 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
619 if (_level
!= level
) {
620 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
624 uint32_t _ptr_password
;
625 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
627 NDR_PULL_ALLOC(ndr
, r
->password
);
634 uint32_t _ptr_network
;
635 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
637 NDR_PULL_ALLOC(ndr
, r
->network
);
644 uint32_t _ptr_password
;
645 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
647 NDR_PULL_ALLOC(ndr
, r
->password
);
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 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
677 if (ndr_flags
& NDR_BUFFERS
) {
681 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
682 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
683 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
690 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
691 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
692 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
699 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
700 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
701 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
708 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
709 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
710 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
717 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
718 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
719 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
720 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
725 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
728 return NDR_ERR_SUCCESS
;
731 _PUBLIC_
void ndr_print_netr_LogonInfo(struct ndr_print
*ndr
, const char *name
, const union netr_LogonInfo
*r
)
734 level
= ndr_print_get_switch_value(ndr
, r
);
735 ndr_print_union(ndr
, name
, level
, "netr_LogonInfo");
738 ndr_print_ptr(ndr
, "password", r
->password
);
741 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
747 ndr_print_ptr(ndr
, "network", r
->network
);
750 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
756 ndr_print_ptr(ndr
, "password", r
->password
);
759 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
765 ndr_print_ptr(ndr
, "password", r
->password
);
768 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
774 ndr_print_ptr(ndr
, "network", r
->network
);
777 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
783 ndr_print_bad_level(ndr
, name
, level
);
787 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UserSessionKey
*r
)
790 uint32_t _flags_save_STRUCT
= ndr
->flags
;
791 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
792 if (ndr_flags
& NDR_SCALARS
) {
793 NDR_CHECK(ndr_push_align(ndr
, 1));
794 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
796 if (ndr_flags
& NDR_BUFFERS
) {
798 ndr
->flags
= _flags_save_STRUCT
;
800 return NDR_ERR_SUCCESS
;
803 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UserSessionKey
*r
)
806 uint32_t _flags_save_STRUCT
= ndr
->flags
;
807 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
808 if (ndr_flags
& NDR_SCALARS
) {
809 NDR_CHECK(ndr_pull_align(ndr
, 1));
810 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
812 if (ndr_flags
& NDR_BUFFERS
) {
814 ndr
->flags
= _flags_save_STRUCT
;
816 return NDR_ERR_SUCCESS
;
819 _PUBLIC_
void ndr_print_netr_UserSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_UserSessionKey
*r
)
821 ndr_print_struct(ndr
, name
, "netr_UserSessionKey");
823 uint32_t _flags_save_STRUCT
= ndr
->flags
;
824 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
826 ndr_print_array_uint8(ndr
, "key", r
->key
, 16);
828 ndr
->flags
= _flags_save_STRUCT
;
832 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LMSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LMSessionKey
*r
)
835 uint32_t _flags_save_STRUCT
= ndr
->flags
;
836 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
837 if (ndr_flags
& NDR_SCALARS
) {
838 NDR_CHECK(ndr_push_align(ndr
, 1));
839 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
841 if (ndr_flags
& NDR_BUFFERS
) {
843 ndr
->flags
= _flags_save_STRUCT
;
845 return NDR_ERR_SUCCESS
;
848 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LMSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LMSessionKey
*r
)
851 uint32_t _flags_save_STRUCT
= ndr
->flags
;
852 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
853 if (ndr_flags
& NDR_SCALARS
) {
854 NDR_CHECK(ndr_pull_align(ndr
, 1));
855 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
857 if (ndr_flags
& NDR_BUFFERS
) {
859 ndr
->flags
= _flags_save_STRUCT
;
861 return NDR_ERR_SUCCESS
;
864 _PUBLIC_
void ndr_print_netr_LMSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_LMSessionKey
*r
)
866 ndr_print_struct(ndr
, name
, "netr_LMSessionKey");
868 uint32_t _flags_save_STRUCT
= ndr
->flags
;
869 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
871 ndr_print_array_uint8(ndr
, "key", r
->key
, 8);
873 ndr
->flags
= _flags_save_STRUCT
;
877 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
879 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
880 return NDR_ERR_SUCCESS
;
883 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
886 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
888 return NDR_ERR_SUCCESS
;
891 _PUBLIC_
void ndr_print_netr_UserFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
893 ndr_print_uint32(ndr
, name
, r
);
895 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST
, r
);
896 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION
, r
);
897 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT
, r
);
898 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD
, r
);
899 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS
, r
);
900 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY
, r
);
901 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT
, r
);
902 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED
, r
);
903 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS
, r
);
904 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED
, r
);
905 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON
, r
);
909 static enum ndr_err_code
ndr_push_netr_SamBaseInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamBaseInfo
*r
)
911 uint32_t cntr_unknown_0
;
912 if (ndr_flags
& NDR_SCALARS
) {
913 NDR_CHECK(ndr_push_align(ndr
, 4));
914 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
915 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
916 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
917 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
918 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->allow_password_change
));
919 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_password_change
));
920 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
921 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
922 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
923 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
924 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
925 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
926 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
927 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
929 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
930 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
931 NDR_CHECK(ndr_push_netr_UserFlags(ndr
, NDR_SCALARS
, r
->user_flags
));
932 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
933 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
934 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
935 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
936 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
937 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
938 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
942 if (ndr_flags
& NDR_BUFFERS
) {
943 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
944 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
945 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
946 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
947 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
948 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
949 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
950 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
951 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
953 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
956 return NDR_ERR_SUCCESS
;
959 static enum ndr_err_code
ndr_pull_netr_SamBaseInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamBaseInfo
*r
)
961 uint32_t _ptr_domain_sid
;
962 TALLOC_CTX
*_mem_save_domain_sid_0
;
963 uint32_t cntr_unknown_0
;
964 if (ndr_flags
& NDR_SCALARS
) {
965 NDR_CHECK(ndr_pull_align(ndr
, 4));
966 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
967 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
968 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
969 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
970 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->allow_password_change
));
971 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_password_change
));
972 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
973 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
974 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
975 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
976 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
977 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
978 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
979 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
980 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
981 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
982 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
983 NDR_CHECK(ndr_pull_netr_UserFlags(ndr
, NDR_SCALARS
, &r
->user_flags
));
984 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
985 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
986 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
987 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
988 if (_ptr_domain_sid
) {
989 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
991 r
->domain_sid
= NULL
;
993 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
994 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
995 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
996 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
999 if (ndr_flags
& NDR_BUFFERS
) {
1000 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1001 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1002 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1003 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1004 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1005 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1006 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1007 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1008 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1009 if (r
->domain_sid
) {
1010 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1011 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
1012 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
1016 return NDR_ERR_SUCCESS
;
1019 _PUBLIC_
void ndr_print_netr_SamBaseInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_SamBaseInfo
*r
)
1021 uint32_t cntr_unknown_0
;
1022 ndr_print_struct(ndr
, name
, "netr_SamBaseInfo");
1024 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
1025 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
1026 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
1027 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
1028 ndr_print_NTTIME(ndr
, "allow_password_change", r
->allow_password_change
);
1029 ndr_print_NTTIME(ndr
, "force_password_change", r
->force_password_change
);
1030 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
1031 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
1032 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
1033 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
1034 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
1035 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
1036 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
1037 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
1038 ndr_print_uint32(ndr
, "rid", r
->rid
);
1039 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
1040 ndr_print_samr_RidWithAttributeArray(ndr
, "groups", &r
->groups
);
1041 ndr_print_netr_UserFlags(ndr
, "user_flags", r
->user_flags
);
1042 ndr_print_netr_UserSessionKey(ndr
, "key", &r
->key
);
1043 ndr_print_lsa_StringLarge(ndr
, "logon_server", &r
->logon_server
);
1044 ndr_print_lsa_StringLarge(ndr
, "domain", &r
->domain
);
1045 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
1047 if (r
->domain_sid
) {
1048 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
1051 ndr_print_netr_LMSessionKey(ndr
, "LMSessKey", &r
->LMSessKey
);
1052 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
1053 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", (int)7);
1055 for (cntr_unknown_0
=0;cntr_unknown_0
<7;cntr_unknown_0
++) {
1057 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
1058 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
1066 static enum ndr_err_code
ndr_push_netr_SamInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo2
*r
)
1068 if (ndr_flags
& NDR_SCALARS
) {
1069 NDR_CHECK(ndr_push_align(ndr
, 4));
1070 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1072 if (ndr_flags
& NDR_BUFFERS
) {
1073 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1075 return NDR_ERR_SUCCESS
;
1078 static enum ndr_err_code
ndr_pull_netr_SamInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo2
*r
)
1080 if (ndr_flags
& NDR_SCALARS
) {
1081 NDR_CHECK(ndr_pull_align(ndr
, 4));
1082 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1084 if (ndr_flags
& NDR_BUFFERS
) {
1085 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1087 return NDR_ERR_SUCCESS
;
1090 _PUBLIC_
void ndr_print_netr_SamInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo2
*r
)
1092 ndr_print_struct(ndr
, name
, "netr_SamInfo2");
1094 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1098 static enum ndr_err_code
ndr_push_netr_SidAttr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SidAttr
*r
)
1100 if (ndr_flags
& NDR_SCALARS
) {
1101 NDR_CHECK(ndr_push_align(ndr
, 4));
1102 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
1103 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->attributes
));
1105 if (ndr_flags
& NDR_BUFFERS
) {
1107 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1110 return NDR_ERR_SUCCESS
;
1113 static enum ndr_err_code
ndr_pull_netr_SidAttr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SidAttr
*r
)
1116 TALLOC_CTX
*_mem_save_sid_0
;
1117 if (ndr_flags
& NDR_SCALARS
) {
1118 NDR_CHECK(ndr_pull_align(ndr
, 4));
1119 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
1121 NDR_PULL_ALLOC(ndr
, r
->sid
);
1125 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->attributes
));
1127 if (ndr_flags
& NDR_BUFFERS
) {
1129 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1130 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
1131 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
1135 return NDR_ERR_SUCCESS
;
1138 _PUBLIC_
void ndr_print_netr_SidAttr(struct ndr_print
*ndr
, const char *name
, const struct netr_SidAttr
*r
)
1140 ndr_print_struct(ndr
, name
, "netr_SidAttr");
1142 ndr_print_ptr(ndr
, "sid", r
->sid
);
1145 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
1148 ndr_print_samr_GroupAttrs(ndr
, "attributes", r
->attributes
);
1152 _PUBLIC_
enum ndr_err_code
ndr_push_netr_SamInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo3
*r
)
1154 uint32_t cntr_sids_1
;
1155 if (ndr_flags
& NDR_SCALARS
) {
1156 NDR_CHECK(ndr_push_align(ndr
, 4));
1157 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1159 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1161 if (ndr_flags
& NDR_BUFFERS
) {
1162 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1165 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1166 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1168 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1169 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1173 return NDR_ERR_SUCCESS
;
1176 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_SamInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo3
*r
)
1179 uint32_t cntr_sids_1
;
1180 TALLOC_CTX
*_mem_save_sids_0
;
1181 TALLOC_CTX
*_mem_save_sids_1
;
1182 if (ndr_flags
& NDR_SCALARS
) {
1183 NDR_CHECK(ndr_pull_align(ndr
, 4));
1184 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1185 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1186 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1188 NDR_PULL_ALLOC(ndr
, r
->sids
);
1193 if (ndr_flags
& NDR_BUFFERS
) {
1194 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1196 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1197 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1198 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1199 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1200 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1201 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1202 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1203 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1205 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1206 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1208 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1209 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1212 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1215 return NDR_ERR_SUCCESS
;
1218 _PUBLIC_
void ndr_print_netr_SamInfo3(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo3
*r
)
1220 uint32_t cntr_sids_1
;
1221 ndr_print_struct(ndr
, name
, "netr_SamInfo3");
1223 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1224 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1225 ndr_print_ptr(ndr
, "sids", r
->sids
);
1228 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1230 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1232 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1233 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1243 static enum ndr_err_code
ndr_push_netr_SamInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo6
*r
)
1245 uint32_t cntr_sids_1
;
1246 uint32_t cntr_unknown4_0
;
1247 if (ndr_flags
& NDR_SCALARS
) {
1248 NDR_CHECK(ndr_push_align(ndr
, 4));
1249 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1251 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1252 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1253 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1254 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
[cntr_unknown4_0
]));
1258 if (ndr_flags
& NDR_BUFFERS
) {
1259 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1261 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1262 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1263 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1265 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1266 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1269 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1270 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1272 return NDR_ERR_SUCCESS
;
1275 static enum ndr_err_code
ndr_pull_netr_SamInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo6
*r
)
1278 uint32_t cntr_sids_1
;
1279 TALLOC_CTX
*_mem_save_sids_0
;
1280 TALLOC_CTX
*_mem_save_sids_1
;
1281 uint32_t cntr_unknown4_0
;
1282 if (ndr_flags
& NDR_SCALARS
) {
1283 NDR_CHECK(ndr_pull_align(ndr
, 4));
1284 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1285 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1286 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1288 NDR_PULL_ALLOC(ndr
, r
->sids
);
1292 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1293 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1294 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1295 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
[cntr_unknown4_0
]));
1298 if (ndr_flags
& NDR_BUFFERS
) {
1299 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1301 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1302 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1303 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1304 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1305 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1306 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1307 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1308 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1310 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1311 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1313 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1314 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1316 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1317 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1319 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1322 return NDR_ERR_SUCCESS
;
1325 _PUBLIC_
void ndr_print_netr_SamInfo6(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo6
*r
)
1327 uint32_t cntr_sids_1
;
1328 uint32_t cntr_unknown4_0
;
1329 ndr_print_struct(ndr
, name
, "netr_SamInfo6");
1331 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1332 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1333 ndr_print_ptr(ndr
, "sids", r
->sids
);
1336 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1338 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1340 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1341 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1348 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
1349 ndr_print_lsa_String(ndr
, "principle", &r
->principle
);
1350 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown4", (int)20);
1352 for (cntr_unknown4_0
=0;cntr_unknown4_0
<20;cntr_unknown4_0
++) {
1354 if (asprintf(&idx_0
, "[%d]", cntr_unknown4_0
) != -1) {
1355 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
[cntr_unknown4_0
]);
1363 static enum ndr_err_code
ndr_push_netr_PacInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PacInfo
*r
)
1365 uint32_t cntr_expansionroom_0
;
1366 if (ndr_flags
& NDR_SCALARS
) {
1367 NDR_CHECK(ndr_push_align(ndr
, 4));
1368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1369 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1370 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1371 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1372 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1373 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1374 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->auth
));
1375 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1376 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->expansionroom
[cntr_expansionroom_0
]));
1379 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1380 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1381 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1382 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1384 if (ndr_flags
& NDR_BUFFERS
) {
1386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1387 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, r
->pac_size
));
1389 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1390 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1391 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1394 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, r
->auth_size
));
1396 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1397 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1398 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1399 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1401 return NDR_ERR_SUCCESS
;
1404 static enum ndr_err_code
ndr_pull_netr_PacInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PacInfo
*r
)
1407 TALLOC_CTX
*_mem_save_pac_0
;
1409 TALLOC_CTX
*_mem_save_auth_0
;
1410 uint32_t cntr_expansionroom_0
;
1411 if (ndr_flags
& NDR_SCALARS
) {
1412 NDR_CHECK(ndr_pull_align(ndr
, 4));
1413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pac_size
));
1414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1416 NDR_PULL_ALLOC(ndr
, r
->pac
);
1420 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1421 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1422 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_size
));
1424 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_auth
));
1426 NDR_PULL_ALLOC(ndr
, r
->auth
);
1430 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1431 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->expansionroom
[cntr_expansionroom_0
]));
1434 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1435 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1436 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1437 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1439 if (ndr_flags
& NDR_BUFFERS
) {
1441 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1442 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1443 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->pac
));
1444 NDR_PULL_ALLOC_N(ndr
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
));
1445 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
)));
1446 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1448 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1449 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1450 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1452 _mem_save_auth_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1453 NDR_PULL_SET_MEM_CTX(ndr
, r
->auth
, 0);
1454 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->auth
));
1455 NDR_PULL_ALLOC_N(ndr
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
));
1456 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
)));
1457 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_auth_0
, 0);
1459 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1460 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1461 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1462 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1464 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->pac
, r
->pac_size
));
1467 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->auth
, r
->auth_size
));
1470 return NDR_ERR_SUCCESS
;
1473 _PUBLIC_
void ndr_print_netr_PacInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PacInfo
*r
)
1475 uint32_t cntr_expansionroom_0
;
1476 ndr_print_struct(ndr
, name
, "netr_PacInfo");
1478 ndr_print_uint32(ndr
, "pac_size", r
->pac_size
);
1479 ndr_print_ptr(ndr
, "pac", r
->pac
);
1482 ndr_print_array_uint8(ndr
, "pac", r
->pac
, r
->pac_size
);
1485 ndr_print_lsa_String(ndr
, "logon_domain", &r
->logon_domain
);
1486 ndr_print_lsa_String(ndr
, "logon_server", &r
->logon_server
);
1487 ndr_print_lsa_String(ndr
, "principal_name", &r
->principal_name
);
1488 ndr_print_uint32(ndr
, "auth_size", r
->auth_size
);
1489 ndr_print_ptr(ndr
, "auth", r
->auth
);
1492 ndr_print_array_uint8(ndr
, "auth", r
->auth
, r
->auth_size
);
1495 ndr_print_netr_UserSessionKey(ndr
, "user_session_key", &r
->user_session_key
);
1496 ndr
->print(ndr
, "%s: ARRAY(%d)", "expansionroom", (int)10);
1498 for (cntr_expansionroom_0
=0;cntr_expansionroom_0
<10;cntr_expansionroom_0
++) {
1500 if (asprintf(&idx_0
, "[%d]", cntr_expansionroom_0
) != -1) {
1501 ndr_print_uint32(ndr
, "expansionroom", r
->expansionroom
[cntr_expansionroom_0
]);
1506 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
1507 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
1508 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
1509 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
1513 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Validation(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Validation
*r
)
1515 if (ndr_flags
& NDR_SCALARS
) {
1516 int level
= ndr_push_get_switch_value(ndr
, r
);
1517 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
1520 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam2
));
1524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam3
));
1528 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1532 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1536 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam6
));
1540 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1543 if (ndr_flags
& NDR_BUFFERS
) {
1544 int level
= ndr_push_get_switch_value(ndr
, r
);
1548 NDR_CHECK(ndr_push_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1554 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1560 NDR_CHECK(ndr_push_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1566 NDR_CHECK(ndr_push_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1572 NDR_CHECK(ndr_push_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1577 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1580 return NDR_ERR_SUCCESS
;
1583 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Validation(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Validation
*r
)
1587 TALLOC_CTX
*_mem_save_sam2_0
;
1588 TALLOC_CTX
*_mem_save_sam3_0
;
1589 TALLOC_CTX
*_mem_save_pac_0
;
1590 TALLOC_CTX
*_mem_save_sam6_0
;
1591 level
= ndr_pull_get_switch_value(ndr
, r
);
1592 if (ndr_flags
& NDR_SCALARS
) {
1593 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
1594 if (_level
!= level
) {
1595 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
1600 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam2
));
1602 NDR_PULL_ALLOC(ndr
, r
->sam2
);
1610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam3
));
1612 NDR_PULL_ALLOC(ndr
, r
->sam3
);
1620 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1622 NDR_PULL_ALLOC(ndr
, r
->pac
);
1630 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1632 NDR_PULL_ALLOC(ndr
, r
->pac
);
1640 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam6
));
1642 NDR_PULL_ALLOC(ndr
, r
->sam6
);
1649 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1652 if (ndr_flags
& NDR_BUFFERS
) {
1656 _mem_save_sam2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1657 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam2
, 0);
1658 NDR_CHECK(ndr_pull_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1659 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam2_0
, 0);
1665 _mem_save_sam3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1666 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam3
, 0);
1667 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1668 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam3_0
, 0);
1674 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1675 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1676 NDR_CHECK(ndr_pull_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1677 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1683 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1684 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1685 NDR_CHECK(ndr_pull_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1686 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1692 _mem_save_sam6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1693 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam6
, 0);
1694 NDR_CHECK(ndr_pull_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam6_0
, 0);
1700 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1703 return NDR_ERR_SUCCESS
;
1706 _PUBLIC_
void ndr_print_netr_Validation(struct ndr_print
*ndr
, const char *name
, const union netr_Validation
*r
)
1709 level
= ndr_print_get_switch_value(ndr
, r
);
1710 ndr_print_union(ndr
, name
, level
, "netr_Validation");
1713 ndr_print_ptr(ndr
, "sam2", r
->sam2
);
1716 ndr_print_netr_SamInfo2(ndr
, "sam2", r
->sam2
);
1722 ndr_print_ptr(ndr
, "sam3", r
->sam3
);
1725 ndr_print_netr_SamInfo3(ndr
, "sam3", r
->sam3
);
1731 ndr_print_ptr(ndr
, "pac", r
->pac
);
1734 ndr_print_netr_PacInfo(ndr
, "pac", r
->pac
);
1740 ndr_print_ptr(ndr
, "pac", r
->pac
);
1743 ndr_print_netr_PacInfo(ndr
, "pac", r
->pac
);
1749 ndr_print_ptr(ndr
, "sam6", r
->sam6
);
1752 ndr_print_netr_SamInfo6(ndr
, "sam6", r
->sam6
);
1758 ndr_print_bad_level(ndr
, name
, level
);
1762 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Credential(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Credential
*r
)
1765 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1766 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1767 if (ndr_flags
& NDR_SCALARS
) {
1768 NDR_CHECK(ndr_push_align(ndr
, 1));
1769 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
1771 if (ndr_flags
& NDR_BUFFERS
) {
1773 ndr
->flags
= _flags_save_STRUCT
;
1775 return NDR_ERR_SUCCESS
;
1778 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Credential(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Credential
*r
)
1781 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1782 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1783 if (ndr_flags
& NDR_SCALARS
) {
1784 NDR_CHECK(ndr_pull_align(ndr
, 1));
1785 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
1787 if (ndr_flags
& NDR_BUFFERS
) {
1789 ndr
->flags
= _flags_save_STRUCT
;
1791 return NDR_ERR_SUCCESS
;
1794 _PUBLIC_
void ndr_print_netr_Credential(struct ndr_print
*ndr
, const char *name
, const struct netr_Credential
*r
)
1796 ndr_print_struct(ndr
, name
, "netr_Credential");
1798 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1799 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1801 ndr_print_array_uint8(ndr
, "data", r
->data
, 8);
1803 ndr
->flags
= _flags_save_STRUCT
;
1807 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Authenticator(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Authenticator
*r
)
1809 if (ndr_flags
& NDR_SCALARS
) {
1810 NDR_CHECK(ndr_push_align(ndr
, 4));
1811 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
1812 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
1814 if (ndr_flags
& NDR_BUFFERS
) {
1816 return NDR_ERR_SUCCESS
;
1819 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Authenticator(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Authenticator
*r
)
1821 if (ndr_flags
& NDR_SCALARS
) {
1822 NDR_CHECK(ndr_pull_align(ndr
, 4));
1823 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
1824 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
1826 if (ndr_flags
& NDR_BUFFERS
) {
1828 return NDR_ERR_SUCCESS
;
1831 _PUBLIC_
void ndr_print_netr_Authenticator(struct ndr_print
*ndr
, const char *name
, const struct netr_Authenticator
*r
)
1833 ndr_print_struct(ndr
, name
, "netr_Authenticator");
1835 ndr_print_netr_Credential(ndr
, "cred", &r
->cred
);
1836 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
1840 static enum ndr_err_code
ndr_push_netr_LogonLevel(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonLevel r
)
1842 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
1843 return NDR_ERR_SUCCESS
;
1846 static enum ndr_err_code
ndr_pull_netr_LogonLevel(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonLevel
*r
)
1849 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
1851 return NDR_ERR_SUCCESS
;
1854 _PUBLIC_
void ndr_print_netr_LogonLevel(struct ndr_print
*ndr
, const char *name
, enum netr_LogonLevel r
)
1856 const char *val
= NULL
;
1859 case INTERACTIVE_LOGON_TYPE
: val
= "INTERACTIVE_LOGON_TYPE"; break;
1860 case NET_LOGON_TYPE
: val
= "NET_LOGON_TYPE"; break;
1862 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1865 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_USER
*r
)
1867 if (ndr_flags
& NDR_SCALARS
) {
1868 NDR_CHECK(ndr_push_align(ndr
, 4));
1869 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
1870 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1871 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1872 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1873 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
1875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
1876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
1877 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
1879 if (ndr_flags
& NDR_BUFFERS
) {
1880 if (r
->account_name
) {
1881 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
1882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
1883 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
1884 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
1886 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1887 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1888 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1889 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1891 return NDR_ERR_SUCCESS
;
1894 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_USER
*r
)
1896 uint32_t _ptr_account_name
;
1897 TALLOC_CTX
*_mem_save_account_name_0
;
1898 if (ndr_flags
& NDR_SCALARS
) {
1899 NDR_CHECK(ndr_pull_align(ndr
, 4));
1900 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
1901 if (_ptr_account_name
) {
1902 NDR_PULL_ALLOC(ndr
, r
->account_name
);
1904 r
->account_name
= NULL
;
1906 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1907 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1908 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1909 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1910 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
1911 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
1912 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
1913 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
1915 if (ndr_flags
& NDR_BUFFERS
) {
1916 if (r
->account_name
) {
1917 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1918 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
1919 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
1920 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
1921 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
1922 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
));
1924 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
1925 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
1926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
1928 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1929 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1930 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1931 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1933 return NDR_ERR_SUCCESS
;
1936 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_USER
*r
)
1938 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_USER");
1940 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
1942 if (r
->account_name
) {
1943 ndr_print_string(ndr
, "account_name", r
->account_name
);
1946 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
1947 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
1948 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
1949 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
1950 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
1951 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
1952 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
1953 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
1957 static enum ndr_err_code
ndr_push_netr_USER_KEY16(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY16
*r
)
1959 if (ndr_flags
& NDR_SCALARS
) {
1960 NDR_CHECK(ndr_push_align(ndr
, 4));
1961 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
1962 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
1963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
1964 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
1966 if (ndr_flags
& NDR_BUFFERS
) {
1968 return NDR_ERR_SUCCESS
;
1971 static enum ndr_err_code
ndr_pull_netr_USER_KEY16(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY16
*r
)
1973 if (ndr_flags
& NDR_SCALARS
) {
1974 NDR_CHECK(ndr_pull_align(ndr
, 4));
1975 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
1976 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
1977 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
1978 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
1980 if (ndr_flags
& NDR_BUFFERS
) {
1982 return NDR_ERR_SUCCESS
;
1985 _PUBLIC_
void ndr_print_netr_USER_KEY16(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY16
*r
)
1987 ndr_print_struct(ndr
, name
, "netr_USER_KEY16");
1989 ndr_print_uint16(ndr
, "length", r
->length
);
1990 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
1991 ndr_print_uint32(ndr
, "flags", r
->flags
);
1992 ndr_print_samr_Password(ndr
, "pwd", &r
->pwd
);
1996 static enum ndr_err_code
ndr_push_netr_PasswordHistory(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordHistory
*r
)
1998 if (ndr_flags
& NDR_SCALARS
) {
1999 NDR_CHECK(ndr_push_align(ndr
, 4));
2000 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2001 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nt_flags
));
2003 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2004 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lm_flags
));
2006 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2007 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2009 if (ndr_flags
& NDR_BUFFERS
) {
2011 return NDR_ERR_SUCCESS
;
2014 static enum ndr_err_code
ndr_pull_netr_PasswordHistory(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordHistory
*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
->nt_length
));
2019 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_size
));
2020 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nt_flags
));
2021 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_length
));
2022 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_size
));
2023 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lm_flags
));
2024 NDR_PULL_ALLOC_N(ndr
, r
->nt_history
, r
->nt_length
);
2025 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2026 NDR_PULL_ALLOC_N(ndr
, r
->lm_history
, r
->lm_length
);
2027 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2029 if (ndr_flags
& NDR_BUFFERS
) {
2031 return NDR_ERR_SUCCESS
;
2034 _PUBLIC_
void ndr_print_netr_PasswordHistory(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordHistory
*r
)
2036 ndr_print_struct(ndr
, name
, "netr_PasswordHistory");
2038 ndr_print_uint16(ndr
, "nt_length", r
->nt_length
);
2039 ndr_print_uint16(ndr
, "nt_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->nt_length
:r
->nt_size
);
2040 ndr_print_uint32(ndr
, "nt_flags", r
->nt_flags
);
2041 ndr_print_uint16(ndr
, "lm_length", r
->lm_length
);
2042 ndr_print_uint16(ndr
, "lm_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->lm_length
:r
->lm_size
);
2043 ndr_print_uint32(ndr
, "lm_flags", r
->lm_flags
);
2044 ndr_print_array_uint8(ndr
, "nt_history", r
->nt_history
, r
->nt_length
);
2045 ndr_print_array_uint8(ndr
, "lm_history", r
->lm_history
, r
->lm_length
);
2049 static enum ndr_err_code
ndr_push_netr_USER_KEYS2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS2
*r
)
2051 if (ndr_flags
& NDR_SCALARS
) {
2052 NDR_CHECK(ndr_push_align(ndr
, 4));
2053 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2054 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2055 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2057 if (ndr_flags
& NDR_BUFFERS
) {
2059 return NDR_ERR_SUCCESS
;
2062 static enum ndr_err_code
ndr_pull_netr_USER_KEYS2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS2
*r
)
2064 if (ndr_flags
& NDR_SCALARS
) {
2065 NDR_CHECK(ndr_pull_align(ndr
, 4));
2066 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2067 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2068 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2070 if (ndr_flags
& NDR_BUFFERS
) {
2072 return NDR_ERR_SUCCESS
;
2075 _PUBLIC_
void ndr_print_netr_USER_KEYS2(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS2
*r
)
2077 ndr_print_struct(ndr
, name
, "netr_USER_KEYS2");
2079 ndr_print_netr_USER_KEY16(ndr
, "lmpassword", &r
->lmpassword
);
2080 ndr_print_netr_USER_KEY16(ndr
, "ntpassword", &r
->ntpassword
);
2081 ndr_print_netr_PasswordHistory(ndr
, "history", &r
->history
);
2085 static enum ndr_err_code
ndr_push_netr_USER_KEY_UNION(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY_UNION
*r
)
2087 if (ndr_flags
& NDR_SCALARS
) {
2088 NDR_CHECK(ndr_push_align(ndr
, 4));
2089 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2091 if (ndr_flags
& NDR_BUFFERS
) {
2093 return NDR_ERR_SUCCESS
;
2096 static enum ndr_err_code
ndr_pull_netr_USER_KEY_UNION(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY_UNION
*r
)
2098 if (ndr_flags
& NDR_SCALARS
) {
2099 NDR_CHECK(ndr_pull_align(ndr
, 4));
2100 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2102 if (ndr_flags
& NDR_BUFFERS
) {
2104 return NDR_ERR_SUCCESS
;
2107 _PUBLIC_
void ndr_print_netr_USER_KEY_UNION(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY_UNION
*r
)
2109 ndr_print_struct(ndr
, name
, "netr_USER_KEY_UNION");
2111 ndr_print_netr_USER_KEYS2(ndr
, "keys2", &r
->keys2
);
2115 _PUBLIC_
enum ndr_err_code
ndr_push_netr_USER_KEYS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS
*r
)
2117 if (ndr_flags
& NDR_SCALARS
) {
2118 NDR_CHECK(ndr_push_align(ndr
, 4));
2119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
2120 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2122 if (ndr_flags
& NDR_BUFFERS
) {
2124 return NDR_ERR_SUCCESS
;
2127 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_USER_KEYS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS
*r
)
2129 if (ndr_flags
& NDR_SCALARS
) {
2130 NDR_CHECK(ndr_pull_align(ndr
, 4));
2131 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
2132 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2134 if (ndr_flags
& NDR_BUFFERS
) {
2136 return NDR_ERR_SUCCESS
;
2139 _PUBLIC_
void ndr_print_netr_USER_KEYS(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS
*r
)
2141 ndr_print_struct(ndr
, name
, "netr_USER_KEYS");
2143 ndr_print_uint32(ndr
, "version", r
->version
);
2144 ndr_print_netr_USER_KEY_UNION(ndr
, "keys", &r
->keys
);
2148 static enum ndr_err_code
ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_PRIVATE_INFO
*r
)
2150 if (ndr_flags
& NDR_SCALARS
) {
2151 NDR_CHECK(ndr_push_align(ndr
, 4));
2152 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->SensitiveDataFlag
));
2153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2155 uint32_t _flags_save_uint8
= ndr
->flags
;
2156 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2157 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->SensitiveData
));
2158 ndr
->flags
= _flags_save_uint8
;
2161 if (ndr_flags
& NDR_BUFFERS
) {
2163 uint32_t _flags_save_uint8
= ndr
->flags
;
2164 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2165 if (r
->SensitiveData
) {
2166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2167 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, r
->DataLength
));
2169 ndr
->flags
= _flags_save_uint8
;
2172 return NDR_ERR_SUCCESS
;
2175 static enum ndr_err_code
ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_PRIVATE_INFO
*r
)
2177 uint32_t _ptr_SensitiveData
;
2178 TALLOC_CTX
*_mem_save_SensitiveData_0
;
2179 if (ndr_flags
& NDR_SCALARS
) {
2180 NDR_CHECK(ndr_pull_align(ndr
, 4));
2181 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->SensitiveDataFlag
));
2182 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->DataLength
));
2184 uint32_t _flags_save_uint8
= ndr
->flags
;
2185 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2186 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_SensitiveData
));
2187 if (_ptr_SensitiveData
) {
2188 NDR_PULL_ALLOC(ndr
, r
->SensitiveData
);
2190 r
->SensitiveData
= NULL
;
2192 ndr
->flags
= _flags_save_uint8
;
2195 if (ndr_flags
& NDR_BUFFERS
) {
2197 uint32_t _flags_save_uint8
= ndr
->flags
;
2198 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2199 if (r
->SensitiveData
) {
2200 _mem_save_SensitiveData_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2201 NDR_PULL_SET_MEM_CTX(ndr
, r
->SensitiveData
, 0);
2202 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->SensitiveData
));
2203 NDR_PULL_ALLOC_N(ndr
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
));
2204 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
)));
2205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_SensitiveData_0
, 0);
2207 ndr
->flags
= _flags_save_uint8
;
2209 if (r
->SensitiveData
) {
2210 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->SensitiveData
, r
->DataLength
));
2213 return NDR_ERR_SUCCESS
;
2216 _PUBLIC_
void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_PRIVATE_INFO
*r
)
2218 ndr_print_struct(ndr
, name
, "netr_USER_PRIVATE_INFO");
2220 ndr_print_uint8(ndr
, "SensitiveDataFlag", r
->SensitiveDataFlag
);
2221 ndr_print_uint32(ndr
, "DataLength", r
->DataLength
);
2222 ndr_print_ptr(ndr
, "SensitiveData", r
->SensitiveData
);
2224 if (r
->SensitiveData
) {
2225 ndr_print_array_uint8(ndr
, "SensitiveData", r
->SensitiveData
, r
->DataLength
);
2231 static enum ndr_err_code
ndr_push_netr_DELTA_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_USER
*r
)
2233 if (ndr_flags
& NDR_SCALARS
) {
2234 NDR_CHECK(ndr_push_align(ndr
, 4));
2235 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2236 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2237 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2238 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2239 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2240 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2241 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2242 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2243 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2244 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
2245 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
2246 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2247 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
2248 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
2249 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
2250 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
2251 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2252 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2253 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2254 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->nt_password_present
));
2255 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->lm_password_present
));
2256 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
2257 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2258 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2259 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->country_code
));
2260 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->code_page
));
2261 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2263 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2264 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2265 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2266 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2267 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2268 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2269 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2270 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2271 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2273 if (ndr_flags
& NDR_BUFFERS
) {
2274 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2275 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2276 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2277 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2278 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2279 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2280 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2281 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2282 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2283 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2284 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2285 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2286 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2287 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2288 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2289 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2291 return NDR_ERR_SUCCESS
;
2294 static enum ndr_err_code
ndr_pull_netr_DELTA_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_USER
*r
)
2296 if (ndr_flags
& NDR_SCALARS
) {
2297 NDR_CHECK(ndr_pull_align(ndr
, 4));
2298 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2299 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2300 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2301 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2302 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2303 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2304 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2305 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2306 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2307 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
2308 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
2309 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2310 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
2311 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
2312 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
2313 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
2314 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2315 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2316 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2317 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->nt_password_present
));
2318 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->lm_password_present
));
2319 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
2320 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2321 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2322 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->country_code
));
2323 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->code_page
));
2324 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2325 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2326 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2327 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2328 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2329 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2330 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2331 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2332 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2334 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2336 if (ndr_flags
& NDR_BUFFERS
) {
2337 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2338 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2339 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2340 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2341 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2342 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2343 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2344 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2345 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2346 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2347 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2348 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2349 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2350 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2351 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2352 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2354 return NDR_ERR_SUCCESS
;
2357 _PUBLIC_
void ndr_print_netr_DELTA_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_USER
*r
)
2359 ndr_print_struct(ndr
, name
, "netr_DELTA_USER");
2361 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2362 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2363 ndr_print_uint32(ndr
, "rid", r
->rid
);
2364 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2365 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2366 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2367 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2368 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2369 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2370 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
2371 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
2372 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2373 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
2374 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
2375 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
2376 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
2377 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2378 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
2379 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
2380 ndr_print_uint8(ndr
, "nt_password_present", r
->nt_password_present
);
2381 ndr_print_uint8(ndr
, "lm_password_present", r
->lm_password_present
);
2382 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
2383 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2384 ndr_print_lsa_BinaryString(ndr
, "parameters", &r
->parameters
);
2385 ndr_print_uint16(ndr
, "country_code", r
->country_code
);
2386 ndr_print_uint16(ndr
, "code_page", r
->code_page
);
2387 ndr_print_netr_USER_PRIVATE_INFO(ndr
, "user_private_info", &r
->user_private_info
);
2388 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2389 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2390 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2391 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2392 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2393 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2394 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2395 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2396 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2397 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2401 static enum ndr_err_code
ndr_push_netr_DELTA_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DOMAIN
*r
)
2403 if (ndr_flags
& NDR_SCALARS
) {
2404 NDR_CHECK(ndr_push_align(ndr
, 4));
2405 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2406 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2407 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->force_logoff_time
));
2408 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->min_password_length
));
2409 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->password_history_length
));
2410 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->max_password_age
));
2411 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->min_password_age
));
2412 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
2413 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->domain_create_time
));
2414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2415 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2416 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2417 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2418 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2419 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_to_chgpass
));
2421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2425 if (ndr_flags
& NDR_BUFFERS
) {
2426 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2427 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2428 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2429 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2430 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2431 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2432 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2434 return NDR_ERR_SUCCESS
;
2437 static enum ndr_err_code
ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DOMAIN
*r
)
2439 if (ndr_flags
& NDR_SCALARS
) {
2440 NDR_CHECK(ndr_pull_align(ndr
, 4));
2441 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2442 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2443 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->force_logoff_time
));
2444 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->min_password_length
));
2445 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->password_history_length
));
2446 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->max_password_age
));
2447 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->min_password_age
));
2448 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
2449 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->domain_create_time
));
2450 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2451 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2452 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2453 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2454 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2455 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2456 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_to_chgpass
));
2457 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2458 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2459 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2461 if (ndr_flags
& NDR_BUFFERS
) {
2462 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2463 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2464 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2465 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2466 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2467 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2468 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2470 return NDR_ERR_SUCCESS
;
2473 _PUBLIC_
void ndr_print_netr_DELTA_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DOMAIN
*r
)
2475 ndr_print_struct(ndr
, name
, "netr_DELTA_DOMAIN");
2477 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
2478 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2479 ndr_print_dlong(ndr
, "force_logoff_time", r
->force_logoff_time
);
2480 ndr_print_uint16(ndr
, "min_password_length", r
->min_password_length
);
2481 ndr_print_uint16(ndr
, "password_history_length", r
->password_history_length
);
2482 ndr_print_dlong(ndr
, "max_password_age", r
->max_password_age
);
2483 ndr_print_dlong(ndr
, "min_password_age", r
->min_password_age
);
2484 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
2485 ndr_print_NTTIME(ndr
, "domain_create_time", r
->domain_create_time
);
2486 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2487 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2488 ndr_print_lsa_BinaryString(ndr
, "account_lockout", &r
->account_lockout
);
2489 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2490 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2491 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2492 ndr_print_uint32(ndr
, "logon_to_chgpass", r
->logon_to_chgpass
);
2493 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2494 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2495 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2499 static enum ndr_err_code
ndr_push_netr_DELTA_GROUP(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP
*r
)
2501 if (ndr_flags
& NDR_SCALARS
) {
2502 NDR_CHECK(ndr_push_align(ndr
, 4));
2503 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attributes
));
2506 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2507 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2508 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2509 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2510 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2511 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2512 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2518 if (ndr_flags
& NDR_BUFFERS
) {
2519 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2520 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2521 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2522 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2523 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2524 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2525 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2527 return NDR_ERR_SUCCESS
;
2530 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP
*r
)
2532 if (ndr_flags
& NDR_SCALARS
) {
2533 NDR_CHECK(ndr_pull_align(ndr
, 4));
2534 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2535 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2536 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attributes
));
2537 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2538 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2539 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2540 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2541 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2542 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2543 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2544 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2545 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2546 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2547 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2549 if (ndr_flags
& NDR_BUFFERS
) {
2550 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2551 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2552 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2553 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2554 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2555 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2556 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2558 return NDR_ERR_SUCCESS
;
2561 _PUBLIC_
void ndr_print_netr_DELTA_GROUP(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP
*r
)
2563 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP");
2565 ndr_print_lsa_String(ndr
, "group_name", &r
->group_name
);
2566 ndr_print_uint32(ndr
, "rid", r
->rid
);
2567 ndr_print_uint32(ndr
, "attributes", r
->attributes
);
2568 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2569 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2570 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2571 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2572 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2573 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2574 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2575 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2576 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2577 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2578 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2582 static enum ndr_err_code
ndr_push_netr_DELTA_RENAME(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_RENAME
*r
)
2584 if (ndr_flags
& NDR_SCALARS
) {
2585 NDR_CHECK(ndr_push_align(ndr
, 4));
2586 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2587 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2588 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2589 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2590 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2591 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2597 if (ndr_flags
& NDR_BUFFERS
) {
2598 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2599 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2600 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2601 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2602 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2603 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2605 return NDR_ERR_SUCCESS
;
2608 static enum ndr_err_code
ndr_pull_netr_DELTA_RENAME(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_RENAME
*r
)
2610 if (ndr_flags
& NDR_SCALARS
) {
2611 NDR_CHECK(ndr_pull_align(ndr
, 4));
2612 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2613 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2614 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2615 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2616 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2617 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2619 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2620 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2621 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2623 if (ndr_flags
& NDR_BUFFERS
) {
2624 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2625 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2626 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2627 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2628 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2629 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2631 return NDR_ERR_SUCCESS
;
2634 _PUBLIC_
void ndr_print_netr_DELTA_RENAME(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_RENAME
*r
)
2636 ndr_print_struct(ndr
, name
, "netr_DELTA_RENAME");
2638 ndr_print_lsa_String(ndr
, "OldName", &r
->OldName
);
2639 ndr_print_lsa_String(ndr
, "NewName", &r
->NewName
);
2640 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2641 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2642 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2643 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2644 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2645 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2646 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2647 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2651 static enum ndr_err_code
ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP_MEMBER
*r
)
2653 uint32_t cntr_rids_1
;
2654 uint32_t cntr_attribs_1
;
2655 if (ndr_flags
& NDR_SCALARS
) {
2656 NDR_CHECK(ndr_push_align(ndr
, 4));
2657 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rids
));
2658 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribs
));
2659 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2660 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
2661 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
2662 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
2663 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
2665 if (ndr_flags
& NDR_BUFFERS
) {
2667 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2668 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rids
[cntr_rids_1
]));
2673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2674 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attribs
[cntr_attribs_1
]));
2679 return NDR_ERR_SUCCESS
;
2682 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP_MEMBER
*r
)
2685 uint32_t cntr_rids_1
;
2686 TALLOC_CTX
*_mem_save_rids_0
;
2687 TALLOC_CTX
*_mem_save_rids_1
;
2688 uint32_t _ptr_attribs
;
2689 uint32_t cntr_attribs_1
;
2690 TALLOC_CTX
*_mem_save_attribs_0
;
2691 TALLOC_CTX
*_mem_save_attribs_1
;
2692 if (ndr_flags
& NDR_SCALARS
) {
2693 NDR_CHECK(ndr_pull_align(ndr
, 4));
2694 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
2696 NDR_PULL_ALLOC(ndr
, r
->rids
);
2700 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribs
));
2702 NDR_PULL_ALLOC(ndr
, r
->attribs
);
2706 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_rids
));
2707 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
2708 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
2709 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
2710 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
2712 if (ndr_flags
& NDR_BUFFERS
) {
2714 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2715 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2716 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->rids
));
2717 NDR_PULL_ALLOC_N(ndr
, r
->rids
, ndr_get_array_size(ndr
, &r
->rids
));
2718 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2719 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2720 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2721 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rids
[cntr_rids_1
]));
2723 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
2724 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, 0);
2727 _mem_save_attribs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2728 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2729 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribs
));
2730 NDR_PULL_ALLOC_N(ndr
, r
->attribs
, ndr_get_array_size(ndr
, &r
->attribs
));
2731 _mem_save_attribs_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2732 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2733 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2734 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attribs
[cntr_attribs_1
]));
2736 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_1
, 0);
2737 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_0
, 0);
2740 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->rids
, r
->num_rids
));
2743 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->attribs
, r
->num_rids
));
2746 return NDR_ERR_SUCCESS
;
2749 _PUBLIC_
void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP_MEMBER
*r
)
2751 uint32_t cntr_rids_1
;
2752 uint32_t cntr_attribs_1
;
2753 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP_MEMBER");
2755 ndr_print_ptr(ndr
, "rids", r
->rids
);
2758 ndr
->print(ndr
, "%s: ARRAY(%d)", "rids", (int)r
->num_rids
);
2760 for (cntr_rids_1
=0;cntr_rids_1
<r
->num_rids
;cntr_rids_1
++) {
2762 if (asprintf(&idx_1
, "[%d]", cntr_rids_1
) != -1) {
2763 ndr_print_uint32(ndr
, "rids", r
->rids
[cntr_rids_1
]);
2770 ndr_print_ptr(ndr
, "attribs", r
->attribs
);
2773 ndr
->print(ndr
, "%s: ARRAY(%d)", "attribs", (int)r
->num_rids
);
2775 for (cntr_attribs_1
=0;cntr_attribs_1
<r
->num_rids
;cntr_attribs_1
++) {
2777 if (asprintf(&idx_1
, "[%d]", cntr_attribs_1
) != -1) {
2778 ndr_print_uint32(ndr
, "attribs", r
->attribs
[cntr_attribs_1
]);
2785 ndr_print_uint32(ndr
, "num_rids", r
->num_rids
);
2786 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
2787 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
2788 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
2789 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
2793 static enum ndr_err_code
ndr_push_netr_DELTA_ALIAS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS
*r
)
2795 if (ndr_flags
& NDR_SCALARS
) {
2796 NDR_CHECK(ndr_push_align(ndr
, 4));
2797 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
2798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2800 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2801 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2802 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2803 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2804 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2810 if (ndr_flags
& NDR_BUFFERS
) {
2811 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
2812 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2813 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2814 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2815 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2816 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2818 return NDR_ERR_SUCCESS
;
2821 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS
*r
)
2823 if (ndr_flags
& NDR_SCALARS
) {
2824 NDR_CHECK(ndr_pull_align(ndr
, 4));
2825 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
2826 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2827 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2828 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2829 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2830 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2831 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2832 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2833 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2834 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2835 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2836 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2838 if (ndr_flags
& NDR_BUFFERS
) {
2839 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
2840 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2841 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2842 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2843 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2844 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2846 return NDR_ERR_SUCCESS
;
2849 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS
*r
)
2851 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS");
2853 ndr_print_lsa_String(ndr
, "alias_name", &r
->alias_name
);
2854 ndr_print_uint32(ndr
, "rid", r
->rid
);
2855 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2856 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2857 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2858 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2859 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2860 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2861 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2862 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2863 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2864 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2868 static enum ndr_err_code
ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
2870 if (ndr_flags
& NDR_SCALARS
) {
2871 NDR_CHECK(ndr_push_align(ndr
, 4));
2872 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
2873 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
2874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
2875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
2876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
2878 if (ndr_flags
& NDR_BUFFERS
) {
2879 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
2881 return NDR_ERR_SUCCESS
;
2884 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS_MEMBER
*r
)
2886 if (ndr_flags
& NDR_SCALARS
) {
2887 NDR_CHECK(ndr_pull_align(ndr
, 4));
2888 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
2889 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
2890 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
2891 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
2892 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
2894 if (ndr_flags
& NDR_BUFFERS
) {
2895 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
2897 return NDR_ERR_SUCCESS
;
2900 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
2902 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS_MEMBER");
2904 ndr_print_lsa_SidArray(ndr
, "sids", &r
->sids
);
2905 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
2906 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
2907 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
2908 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
2912 static enum ndr_err_code
ndr_push_netr_QUOTA_LIMITS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_QUOTA_LIMITS
*r
)
2914 if (ndr_flags
& NDR_SCALARS
) {
2915 NDR_CHECK(ndr_push_align(ndr
, 4));
2916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagedpoollimit
));
2917 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nonpagedpoollimit
));
2918 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minimumworkingsetsize
));
2919 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maximumworkingsetsize
));
2920 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagefilelimit
));
2921 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->timelimit
));
2923 if (ndr_flags
& NDR_BUFFERS
) {
2925 return NDR_ERR_SUCCESS
;
2928 static enum ndr_err_code
ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_QUOTA_LIMITS
*r
)
2930 if (ndr_flags
& NDR_SCALARS
) {
2931 NDR_CHECK(ndr_pull_align(ndr
, 4));
2932 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagedpoollimit
));
2933 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nonpagedpoollimit
));
2934 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minimumworkingsetsize
));
2935 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maximumworkingsetsize
));
2936 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagefilelimit
));
2937 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->timelimit
));
2939 if (ndr_flags
& NDR_BUFFERS
) {
2941 return NDR_ERR_SUCCESS
;
2944 _PUBLIC_
void ndr_print_netr_QUOTA_LIMITS(struct ndr_print
*ndr
, const char *name
, const struct netr_QUOTA_LIMITS
*r
)
2946 ndr_print_struct(ndr
, name
, "netr_QUOTA_LIMITS");
2948 ndr_print_uint32(ndr
, "pagedpoollimit", r
->pagedpoollimit
);
2949 ndr_print_uint32(ndr
, "nonpagedpoollimit", r
->nonpagedpoollimit
);
2950 ndr_print_uint32(ndr
, "minimumworkingsetsize", r
->minimumworkingsetsize
);
2951 ndr_print_uint32(ndr
, "maximumworkingsetsize", r
->maximumworkingsetsize
);
2952 ndr_print_uint32(ndr
, "pagefilelimit", r
->pagefilelimit
);
2953 ndr_print_NTTIME(ndr
, "timelimit", r
->timelimit
);
2957 static enum ndr_err_code
ndr_push_netr_DELTA_POLICY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_POLICY
*r
)
2959 uint32_t cntr_eventauditoptions_1
;
2960 if (ndr_flags
& NDR_SCALARS
) {
2961 NDR_CHECK(ndr_push_align(ndr
, 4));
2962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlogsize
));
2963 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->auditretentionperiod
));
2964 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->auditingmode
));
2965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
));
2966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->eventauditoptions
));
2967 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
2968 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
2969 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
2970 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
2971 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->db_create_time
));
2972 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2973 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2974 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2975 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2976 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2977 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2978 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2983 if (ndr_flags
& NDR_BUFFERS
) {
2984 if (r
->eventauditoptions
) {
2985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
+ 1));
2986 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
2987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->eventauditoptions
[cntr_eventauditoptions_1
]));
2990 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
2992 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
2994 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2995 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2996 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2997 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2998 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3000 return NDR_ERR_SUCCESS
;
3003 static enum ndr_err_code
ndr_pull_netr_DELTA_POLICY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_POLICY
*r
)
3005 uint32_t _ptr_eventauditoptions
;
3006 uint32_t cntr_eventauditoptions_1
;
3007 TALLOC_CTX
*_mem_save_eventauditoptions_0
;
3008 TALLOC_CTX
*_mem_save_eventauditoptions_1
;
3010 TALLOC_CTX
*_mem_save_sid_0
;
3011 if (ndr_flags
& NDR_SCALARS
) {
3012 NDR_CHECK(ndr_pull_align(ndr
, 4));
3013 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlogsize
));
3014 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->auditretentionperiod
));
3015 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->auditingmode
));
3016 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxauditeventcount
));
3017 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_eventauditoptions
));
3018 if (_ptr_eventauditoptions
) {
3019 NDR_PULL_ALLOC(ndr
, r
->eventauditoptions
);
3021 r
->eventauditoptions
= NULL
;
3023 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
3026 NDR_PULL_ALLOC(ndr
, r
->sid
);
3030 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3031 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
3032 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->db_create_time
));
3033 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3034 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3035 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3036 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3037 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3038 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3039 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3040 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3041 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3042 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3044 if (ndr_flags
& NDR_BUFFERS
) {
3045 if (r
->eventauditoptions
) {
3046 _mem_save_eventauditoptions_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3047 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3048 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->eventauditoptions
));
3049 NDR_PULL_ALLOC_N(ndr
, r
->eventauditoptions
, ndr_get_array_size(ndr
, &r
->eventauditoptions
));
3050 _mem_save_eventauditoptions_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3051 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3052 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
3053 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3055 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_1
, 0);
3056 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_0
, 0);
3058 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3060 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3061 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
3062 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3063 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
3065 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3066 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3067 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3068 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3069 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3070 if (r
->eventauditoptions
) {
3071 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->eventauditoptions
, r
->maxauditeventcount
+ 1));
3074 return NDR_ERR_SUCCESS
;
3077 _PUBLIC_
void ndr_print_netr_DELTA_POLICY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_POLICY
*r
)
3079 uint32_t cntr_eventauditoptions_1
;
3080 ndr_print_struct(ndr
, name
, "netr_DELTA_POLICY");
3082 ndr_print_uint32(ndr
, "maxlogsize", r
->maxlogsize
);
3083 ndr_print_NTTIME(ndr
, "auditretentionperiod", r
->auditretentionperiod
);
3084 ndr_print_uint8(ndr
, "auditingmode", r
->auditingmode
);
3085 ndr_print_uint32(ndr
, "maxauditeventcount", r
->maxauditeventcount
);
3086 ndr_print_ptr(ndr
, "eventauditoptions", r
->eventauditoptions
);
3088 if (r
->eventauditoptions
) {
3089 ndr
->print(ndr
, "%s: ARRAY(%d)", "eventauditoptions", (int)r
->maxauditeventcount
+ 1);
3091 for (cntr_eventauditoptions_1
=0;cntr_eventauditoptions_1
<r
->maxauditeventcount
+ 1;cntr_eventauditoptions_1
++) {
3093 if (asprintf(&idx_1
, "[%d]", cntr_eventauditoptions_1
) != -1) {
3094 ndr_print_uint32(ndr
, "eventauditoptions", r
->eventauditoptions
[cntr_eventauditoptions_1
]);
3101 ndr_print_lsa_String(ndr
, "primary_domain_name", &r
->primary_domain_name
);
3102 ndr_print_ptr(ndr
, "sid", r
->sid
);
3105 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
3108 ndr_print_netr_QUOTA_LIMITS(ndr
, "quota_limits", &r
->quota_limits
);
3109 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
3110 ndr_print_NTTIME(ndr
, "db_create_time", r
->db_create_time
);
3111 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3112 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3113 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3114 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3115 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3116 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3117 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3118 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3119 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3120 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3124 static enum ndr_err_code
ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3126 uint32_t cntr_controller_names_1
;
3127 if (ndr_flags
& NDR_SCALARS
) {
3128 NDR_CHECK(ndr_push_align(ndr
, 4));
3129 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3131 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->controller_names
));
3132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3133 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3134 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3135 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3136 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3137 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->posix_offset
));
3139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3143 if (ndr_flags
& NDR_BUFFERS
) {
3144 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3145 if (r
->controller_names
) {
3146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3147 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3148 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3150 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3151 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3154 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3155 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3156 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3157 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3158 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3160 return NDR_ERR_SUCCESS
;
3163 static enum ndr_err_code
ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3165 uint32_t _ptr_controller_names
;
3166 uint32_t cntr_controller_names_1
;
3167 TALLOC_CTX
*_mem_save_controller_names_0
;
3168 TALLOC_CTX
*_mem_save_controller_names_1
;
3169 if (ndr_flags
& NDR_SCALARS
) {
3170 NDR_CHECK(ndr_pull_align(ndr
, 4));
3171 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3172 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_controllers
));
3173 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_controller_names
));
3174 if (_ptr_controller_names
) {
3175 NDR_PULL_ALLOC(ndr
, r
->controller_names
);
3177 r
->controller_names
= NULL
;
3179 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3180 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3181 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3182 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3183 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3184 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3185 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->posix_offset
));
3186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3190 if (ndr_flags
& NDR_BUFFERS
) {
3191 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3192 if (r
->controller_names
) {
3193 _mem_save_controller_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3194 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3195 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->controller_names
));
3196 NDR_PULL_ALLOC_N(ndr
, r
->controller_names
, ndr_get_array_size(ndr
, &r
->controller_names
));
3197 _mem_save_controller_names_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3198 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3199 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3200 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3202 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3203 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_1
, 0);
3206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_0
, 0);
3208 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3209 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3210 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3211 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3212 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3213 if (r
->controller_names
) {
3214 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->controller_names
, r
->num_controllers
));
3217 return NDR_ERR_SUCCESS
;
3220 _PUBLIC_
void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3222 uint32_t cntr_controller_names_1
;
3223 ndr_print_struct(ndr
, name
, "netr_DELTA_TRUSTED_DOMAIN");
3225 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
3226 ndr_print_uint32(ndr
, "num_controllers", r
->num_controllers
);
3227 ndr_print_ptr(ndr
, "controller_names", r
->controller_names
);
3229 if (r
->controller_names
) {
3230 ndr
->print(ndr
, "%s: ARRAY(%d)", "controller_names", (int)r
->num_controllers
);
3232 for (cntr_controller_names_1
=0;cntr_controller_names_1
<r
->num_controllers
;cntr_controller_names_1
++) {
3234 if (asprintf(&idx_1
, "[%d]", cntr_controller_names_1
) != -1) {
3235 ndr_print_lsa_String(ndr
, "controller_names", &r
->controller_names
[cntr_controller_names_1
]);
3242 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3243 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3244 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3245 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3246 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3247 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3248 ndr_print_uint32(ndr
, "posix_offset", r
->posix_offset
);
3249 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3250 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3251 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3255 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_TRUST
*r
)
3257 if (ndr_flags
& NDR_SCALARS
) {
3258 NDR_CHECK(ndr_push_align(ndr
, 2));
3259 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3261 if (ndr_flags
& NDR_BUFFERS
) {
3263 return NDR_ERR_SUCCESS
;
3266 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_TRUST
*r
)
3268 if (ndr_flags
& NDR_SCALARS
) {
3269 NDR_CHECK(ndr_pull_align(ndr
, 2));
3270 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3272 if (ndr_flags
& NDR_BUFFERS
) {
3274 return NDR_ERR_SUCCESS
;
3277 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_TRUST
*r
)
3279 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_TRUST");
3281 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3285 static enum ndr_err_code
ndr_push_netr_DELTA_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ACCOUNT
*r
)
3287 uint32_t cntr_privilege_attrib_1
;
3288 uint32_t cntr_privilege_name_1
;
3289 if (ndr_flags
& NDR_SCALARS
) {
3290 NDR_CHECK(ndr_push_align(ndr
, 4));
3291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_control
));
3293 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_attrib
));
3294 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_name
));
3295 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->system_flags
));
3297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3298 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3299 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3300 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3301 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3302 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3303 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3304 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3305 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3306 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3308 if (ndr_flags
& NDR_BUFFERS
) {
3309 if (r
->privilege_attrib
) {
3310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3311 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3315 if (r
->privilege_name
) {
3316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3317 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3318 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3320 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3321 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3324 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3325 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3326 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3327 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3328 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3330 return NDR_ERR_SUCCESS
;
3333 static enum ndr_err_code
ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ACCOUNT
*r
)
3335 uint32_t _ptr_privilege_attrib
;
3336 uint32_t cntr_privilege_attrib_1
;
3337 TALLOC_CTX
*_mem_save_privilege_attrib_0
;
3338 TALLOC_CTX
*_mem_save_privilege_attrib_1
;
3339 uint32_t _ptr_privilege_name
;
3340 uint32_t cntr_privilege_name_1
;
3341 TALLOC_CTX
*_mem_save_privilege_name_0
;
3342 TALLOC_CTX
*_mem_save_privilege_name_1
;
3343 if (ndr_flags
& NDR_SCALARS
) {
3344 NDR_CHECK(ndr_pull_align(ndr
, 4));
3345 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_entries
));
3346 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_control
));
3347 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_attrib
));
3348 if (_ptr_privilege_attrib
) {
3349 NDR_PULL_ALLOC(ndr
, r
->privilege_attrib
);
3351 r
->privilege_attrib
= NULL
;
3353 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_name
));
3354 if (_ptr_privilege_name
) {
3355 NDR_PULL_ALLOC(ndr
, r
->privilege_name
);
3357 r
->privilege_name
= NULL
;
3359 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3360 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->system_flags
));
3361 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3362 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3363 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3364 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3365 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3366 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3367 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3368 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3369 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3370 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3372 if (ndr_flags
& NDR_BUFFERS
) {
3373 if (r
->privilege_attrib
) {
3374 _mem_save_privilege_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3375 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3376 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_attrib
));
3377 NDR_PULL_ALLOC_N(ndr
, r
->privilege_attrib
, ndr_get_array_size(ndr
, &r
->privilege_attrib
));
3378 _mem_save_privilege_attrib_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3379 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3380 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3381 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3383 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_1
, 0);
3384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_0
, 0);
3386 if (r
->privilege_name
) {
3387 _mem_save_privilege_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3388 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3389 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_name
));
3390 NDR_PULL_ALLOC_N(ndr
, r
->privilege_name
, ndr_get_array_size(ndr
, &r
->privilege_name
));
3391 _mem_save_privilege_name_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3392 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3393 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3394 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3396 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3397 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_1
, 0);
3400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_0
, 0);
3402 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3403 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3404 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3405 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3406 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3407 if (r
->privilege_attrib
) {
3408 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_attrib
, r
->privilege_entries
));
3410 if (r
->privilege_name
) {
3411 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_name
, r
->privilege_entries
));
3414 return NDR_ERR_SUCCESS
;
3417 _PUBLIC_
void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ACCOUNT
*r
)
3419 uint32_t cntr_privilege_attrib_1
;
3420 uint32_t cntr_privilege_name_1
;
3421 ndr_print_struct(ndr
, name
, "netr_DELTA_ACCOUNT");
3423 ndr_print_uint32(ndr
, "privilege_entries", r
->privilege_entries
);
3424 ndr_print_uint32(ndr
, "privilege_control", r
->privilege_control
);
3425 ndr_print_ptr(ndr
, "privilege_attrib", r
->privilege_attrib
);
3427 if (r
->privilege_attrib
) {
3428 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_attrib", (int)r
->privilege_entries
);
3430 for (cntr_privilege_attrib_1
=0;cntr_privilege_attrib_1
<r
->privilege_entries
;cntr_privilege_attrib_1
++) {
3432 if (asprintf(&idx_1
, "[%d]", cntr_privilege_attrib_1
) != -1) {
3433 ndr_print_uint32(ndr
, "privilege_attrib", r
->privilege_attrib
[cntr_privilege_attrib_1
]);
3440 ndr_print_ptr(ndr
, "privilege_name", r
->privilege_name
);
3442 if (r
->privilege_name
) {
3443 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_name", (int)r
->privilege_entries
);
3445 for (cntr_privilege_name_1
=0;cntr_privilege_name_1
<r
->privilege_entries
;cntr_privilege_name_1
++) {
3447 if (asprintf(&idx_1
, "[%d]", cntr_privilege_name_1
) != -1) {
3448 ndr_print_lsa_String(ndr
, "privilege_name", &r
->privilege_name
[cntr_privilege_name_1
]);
3455 ndr_print_netr_QUOTA_LIMITS(ndr
, "quotalimits", &r
->quotalimits
);
3456 ndr_print_uint32(ndr
, "system_flags", r
->system_flags
);
3457 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3458 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3459 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3460 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3461 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3462 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3463 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3464 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3465 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3466 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3470 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3472 if (ndr_flags
& NDR_SCALARS
) {
3473 NDR_CHECK(ndr_push_align(ndr
, 2));
3474 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3476 if (ndr_flags
& NDR_BUFFERS
) {
3478 return NDR_ERR_SUCCESS
;
3481 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_ACCOUNT
*r
)
3483 if (ndr_flags
& NDR_SCALARS
) {
3484 NDR_CHECK(ndr_pull_align(ndr
, 2));
3485 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3487 if (ndr_flags
& NDR_BUFFERS
) {
3489 return NDR_ERR_SUCCESS
;
3492 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3494 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_ACCOUNT");
3496 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3500 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_SECRET
*r
)
3502 if (ndr_flags
& NDR_SCALARS
) {
3503 NDR_CHECK(ndr_push_align(ndr
, 2));
3504 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3506 if (ndr_flags
& NDR_BUFFERS
) {
3508 return NDR_ERR_SUCCESS
;
3511 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_SECRET
*r
)
3513 if (ndr_flags
& NDR_SCALARS
) {
3514 NDR_CHECK(ndr_pull_align(ndr
, 2));
3515 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3517 if (ndr_flags
& NDR_BUFFERS
) {
3519 return NDR_ERR_SUCCESS
;
3522 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_SECRET
*r
)
3524 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_SECRET");
3526 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3530 static enum ndr_err_code
ndr_push_netr_CIPHER_VALUE(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CIPHER_VALUE
*r
)
3532 if (ndr_flags
& NDR_SCALARS
) {
3533 NDR_CHECK(ndr_push_align(ndr
, 4));
3534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3536 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cipher_data
));
3538 if (ndr_flags
& NDR_BUFFERS
) {
3539 if (r
->cipher_data
) {
3540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3543 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, r
->len
));
3546 return NDR_ERR_SUCCESS
;
3549 static enum ndr_err_code
ndr_pull_netr_CIPHER_VALUE(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CIPHER_VALUE
*r
)
3551 uint32_t _ptr_cipher_data
;
3552 TALLOC_CTX
*_mem_save_cipher_data_0
;
3553 if (ndr_flags
& NDR_SCALARS
) {
3554 NDR_CHECK(ndr_pull_align(ndr
, 4));
3555 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->len
));
3556 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlen
));
3557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cipher_data
));
3558 if (_ptr_cipher_data
) {
3559 NDR_PULL_ALLOC(ndr
, r
->cipher_data
);
3561 r
->cipher_data
= NULL
;
3564 if (ndr_flags
& NDR_BUFFERS
) {
3565 if (r
->cipher_data
) {
3566 _mem_save_cipher_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3567 NDR_PULL_SET_MEM_CTX(ndr
, r
->cipher_data
, 0);
3568 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->cipher_data
));
3569 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->cipher_data
));
3570 if (ndr_get_array_length(ndr
, &r
->cipher_data
) > ndr_get_array_size(ndr
, &r
->cipher_data
)) {
3571 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
));
3573 NDR_PULL_ALLOC_N(ndr
, r
->cipher_data
, ndr_get_array_size(ndr
, &r
->cipher_data
));
3574 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, ndr_get_array_length(ndr
, &r
->cipher_data
)));
3575 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cipher_data_0
, 0);
3577 if (r
->cipher_data
) {
3578 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->cipher_data
, r
->maxlen
));
3580 if (r
->cipher_data
) {
3581 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->cipher_data
, r
->len
));
3584 return NDR_ERR_SUCCESS
;
3587 _PUBLIC_
void ndr_print_netr_CIPHER_VALUE(struct ndr_print
*ndr
, const char *name
, const struct netr_CIPHER_VALUE
*r
)
3589 ndr_print_struct(ndr
, name
, "netr_CIPHER_VALUE");
3591 ndr_print_uint32(ndr
, "len", r
->len
);
3592 ndr_print_uint32(ndr
, "maxlen", r
->maxlen
);
3593 ndr_print_ptr(ndr
, "cipher_data", r
->cipher_data
);
3595 if (r
->cipher_data
) {
3596 ndr_print_array_uint8(ndr
, "cipher_data", r
->cipher_data
, r
->len
);
3602 static enum ndr_err_code
ndr_push_netr_DELTA_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_SECRET
*r
)
3604 if (ndr_flags
& NDR_SCALARS
) {
3605 NDR_CHECK(ndr_push_align(ndr
, 4));
3606 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3607 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->current_cipher_set_time
));
3608 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3609 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->old_cipher_set_time
));
3610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3611 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3612 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3613 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3614 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3615 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3616 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3618 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3619 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3621 if (ndr_flags
& NDR_BUFFERS
) {
3622 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3623 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3624 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3625 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3626 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3627 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3628 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3630 return NDR_ERR_SUCCESS
;
3633 static enum ndr_err_code
ndr_pull_netr_DELTA_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_SECRET
*r
)
3635 if (ndr_flags
& NDR_SCALARS
) {
3636 NDR_CHECK(ndr_pull_align(ndr
, 4));
3637 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3638 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->current_cipher_set_time
));
3639 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3640 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->old_cipher_set_time
));
3641 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3642 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3643 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3644 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3645 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3646 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3647 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3648 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3649 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3652 if (ndr_flags
& NDR_BUFFERS
) {
3653 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3654 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3655 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3656 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3657 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3658 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3659 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3661 return NDR_ERR_SUCCESS
;
3664 _PUBLIC_
void ndr_print_netr_DELTA_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_SECRET
*r
)
3666 ndr_print_struct(ndr
, name
, "netr_DELTA_SECRET");
3668 ndr_print_netr_CIPHER_VALUE(ndr
, "current_cipher", &r
->current_cipher
);
3669 ndr_print_NTTIME(ndr
, "current_cipher_set_time", r
->current_cipher_set_time
);
3670 ndr_print_netr_CIPHER_VALUE(ndr
, "old_cipher", &r
->old_cipher
);
3671 ndr_print_NTTIME(ndr
, "old_cipher_set_time", r
->old_cipher_set_time
);
3672 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3673 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3674 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3675 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3676 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3677 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3678 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3679 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3680 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3681 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3685 static enum ndr_err_code
ndr_push_netr_DeltaEnum(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DeltaEnum r
)
3687 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
3688 return NDR_ERR_SUCCESS
;
3691 static enum ndr_err_code
ndr_pull_netr_DeltaEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DeltaEnum
*r
)
3694 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
3696 return NDR_ERR_SUCCESS
;
3699 _PUBLIC_
void ndr_print_netr_DeltaEnum(struct ndr_print
*ndr
, const char *name
, enum netr_DeltaEnum r
)
3701 const char *val
= NULL
;
3704 case NETR_DELTA_DOMAIN
: val
= "NETR_DELTA_DOMAIN"; break;
3705 case NETR_DELTA_GROUP
: val
= "NETR_DELTA_GROUP"; break;
3706 case NETR_DELTA_DELETE_GROUP
: val
= "NETR_DELTA_DELETE_GROUP"; break;
3707 case NETR_DELTA_RENAME_GROUP
: val
= "NETR_DELTA_RENAME_GROUP"; break;
3708 case NETR_DELTA_USER
: val
= "NETR_DELTA_USER"; break;
3709 case NETR_DELTA_DELETE_USER
: val
= "NETR_DELTA_DELETE_USER"; break;
3710 case NETR_DELTA_RENAME_USER
: val
= "NETR_DELTA_RENAME_USER"; break;
3711 case NETR_DELTA_GROUP_MEMBER
: val
= "NETR_DELTA_GROUP_MEMBER"; break;
3712 case NETR_DELTA_ALIAS
: val
= "NETR_DELTA_ALIAS"; break;
3713 case NETR_DELTA_DELETE_ALIAS
: val
= "NETR_DELTA_DELETE_ALIAS"; break;
3714 case NETR_DELTA_RENAME_ALIAS
: val
= "NETR_DELTA_RENAME_ALIAS"; break;
3715 case NETR_DELTA_ALIAS_MEMBER
: val
= "NETR_DELTA_ALIAS_MEMBER"; break;
3716 case NETR_DELTA_POLICY
: val
= "NETR_DELTA_POLICY"; break;
3717 case NETR_DELTA_TRUSTED_DOMAIN
: val
= "NETR_DELTA_TRUSTED_DOMAIN"; break;
3718 case NETR_DELTA_DELETE_TRUST
: val
= "NETR_DELTA_DELETE_TRUST"; break;
3719 case NETR_DELTA_ACCOUNT
: val
= "NETR_DELTA_ACCOUNT"; break;
3720 case NETR_DELTA_DELETE_ACCOUNT
: val
= "NETR_DELTA_DELETE_ACCOUNT"; break;
3721 case NETR_DELTA_SECRET
: val
= "NETR_DELTA_SECRET"; break;
3722 case NETR_DELTA_DELETE_SECRET
: val
= "NETR_DELTA_DELETE_SECRET"; break;
3723 case NETR_DELTA_DELETE_GROUP2
: val
= "NETR_DELTA_DELETE_GROUP2"; break;
3724 case NETR_DELTA_DELETE_USER2
: val
= "NETR_DELTA_DELETE_USER2"; break;
3725 case NETR_DELTA_MODIFY_COUNT
: val
= "NETR_DELTA_MODIFY_COUNT"; break;
3727 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
3730 static enum ndr_err_code
ndr_push_netr_DELTA_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_UNION
*r
)
3732 if (ndr_flags
& NDR_SCALARS
) {
3733 int level
= ndr_push_get_switch_value(ndr
, r
);
3734 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
3736 case NETR_DELTA_DOMAIN
: {
3737 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
3740 case NETR_DELTA_GROUP
: {
3741 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group
));
3744 case NETR_DELTA_DELETE_GROUP
: {
3747 case NETR_DELTA_RENAME_GROUP
: {
3748 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_group
));
3751 case NETR_DELTA_USER
: {
3752 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
3755 case NETR_DELTA_DELETE_USER
: {
3758 case NETR_DELTA_RENAME_USER
: {
3759 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_user
));
3762 case NETR_DELTA_GROUP_MEMBER
: {
3763 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group_member
));
3766 case NETR_DELTA_ALIAS
: {
3767 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias
));
3770 case NETR_DELTA_DELETE_ALIAS
: {
3773 case NETR_DELTA_RENAME_ALIAS
: {
3774 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_alias
));
3777 case NETR_DELTA_ALIAS_MEMBER
: {
3778 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias_member
));
3781 case NETR_DELTA_POLICY
: {
3782 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
3785 case NETR_DELTA_TRUSTED_DOMAIN
: {
3786 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain
));
3789 case NETR_DELTA_DELETE_TRUST
: {
3790 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
3793 case NETR_DELTA_ACCOUNT
: {
3794 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account
));
3797 case NETR_DELTA_DELETE_ACCOUNT
: {
3798 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
3801 case NETR_DELTA_SECRET
: {
3802 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secret
));
3805 case NETR_DELTA_DELETE_SECRET
: {
3806 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
3809 case NETR_DELTA_DELETE_GROUP2
: {
3810 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_group
));
3813 case NETR_DELTA_DELETE_USER2
: {
3814 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_user
));
3817 case NETR_DELTA_MODIFY_COUNT
: {
3818 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->modified_count
));
3822 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3825 if (ndr_flags
& NDR_BUFFERS
) {
3826 int level
= ndr_push_get_switch_value(ndr
, r
);
3828 case NETR_DELTA_DOMAIN
:
3830 NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
3834 case NETR_DELTA_GROUP
:
3836 NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
3840 case NETR_DELTA_DELETE_GROUP
:
3843 case NETR_DELTA_RENAME_GROUP
:
3844 if (r
->rename_group
) {
3845 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
3849 case NETR_DELTA_USER
:
3851 NDR_CHECK(ndr_push_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
3855 case NETR_DELTA_DELETE_USER
:
3858 case NETR_DELTA_RENAME_USER
:
3859 if (r
->rename_user
) {
3860 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
3864 case NETR_DELTA_GROUP_MEMBER
:
3865 if (r
->group_member
) {
3866 NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
3870 case NETR_DELTA_ALIAS
:
3872 NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
3876 case NETR_DELTA_DELETE_ALIAS
:
3879 case NETR_DELTA_RENAME_ALIAS
:
3880 if (r
->rename_alias
) {
3881 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
3885 case NETR_DELTA_ALIAS_MEMBER
:
3886 if (r
->alias_member
) {
3887 NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
3891 case NETR_DELTA_POLICY
:
3893 NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
3897 case NETR_DELTA_TRUSTED_DOMAIN
:
3898 if (r
->trusted_domain
) {
3899 NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
3903 case NETR_DELTA_DELETE_TRUST
:
3906 case NETR_DELTA_ACCOUNT
:
3908 NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
3912 case NETR_DELTA_DELETE_ACCOUNT
:
3915 case NETR_DELTA_SECRET
:
3917 NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
3921 case NETR_DELTA_DELETE_SECRET
:
3924 case NETR_DELTA_DELETE_GROUP2
:
3925 if (r
->delete_group
) {
3926 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
3930 case NETR_DELTA_DELETE_USER2
:
3931 if (r
->delete_user
) {
3932 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
3936 case NETR_DELTA_MODIFY_COUNT
:
3937 if (r
->modified_count
) {
3938 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->modified_count
));
3943 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3946 return NDR_ERR_SUCCESS
;
3949 static enum ndr_err_code
ndr_pull_netr_DELTA_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_UNION
*r
)
3953 TALLOC_CTX
*_mem_save_domain_0
;
3954 TALLOC_CTX
*_mem_save_group_0
;
3955 TALLOC_CTX
*_mem_save_rename_group_0
;
3956 TALLOC_CTX
*_mem_save_user_0
;
3957 TALLOC_CTX
*_mem_save_rename_user_0
;
3958 TALLOC_CTX
*_mem_save_group_member_0
;
3959 TALLOC_CTX
*_mem_save_alias_0
;
3960 TALLOC_CTX
*_mem_save_rename_alias_0
;
3961 TALLOC_CTX
*_mem_save_alias_member_0
;
3962 TALLOC_CTX
*_mem_save_policy_0
;
3963 TALLOC_CTX
*_mem_save_trusted_domain_0
;
3964 TALLOC_CTX
*_mem_save_account_0
;
3965 TALLOC_CTX
*_mem_save_secret_0
;
3966 TALLOC_CTX
*_mem_save_delete_group_0
;
3967 TALLOC_CTX
*_mem_save_delete_user_0
;
3968 TALLOC_CTX
*_mem_save_modified_count_0
;
3969 level
= ndr_pull_get_switch_value(ndr
, r
);
3970 if (ndr_flags
& NDR_SCALARS
) {
3971 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
3972 if (_level
!= level
) {
3973 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
3976 case NETR_DELTA_DOMAIN
: {
3977 uint32_t _ptr_domain
;
3978 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
3980 NDR_PULL_ALLOC(ndr
, r
->domain
);
3986 case NETR_DELTA_GROUP
: {
3987 uint32_t _ptr_group
;
3988 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group
));
3990 NDR_PULL_ALLOC(ndr
, r
->group
);
3996 case NETR_DELTA_DELETE_GROUP
: {
3999 case NETR_DELTA_RENAME_GROUP
: {
4000 uint32_t _ptr_rename_group
;
4001 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_group
));
4002 if (_ptr_rename_group
) {
4003 NDR_PULL_ALLOC(ndr
, r
->rename_group
);
4005 r
->rename_group
= NULL
;
4009 case NETR_DELTA_USER
: {
4011 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
4013 NDR_PULL_ALLOC(ndr
, r
->user
);
4019 case NETR_DELTA_DELETE_USER
: {
4022 case NETR_DELTA_RENAME_USER
: {
4023 uint32_t _ptr_rename_user
;
4024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_user
));
4025 if (_ptr_rename_user
) {
4026 NDR_PULL_ALLOC(ndr
, r
->rename_user
);
4028 r
->rename_user
= NULL
;
4032 case NETR_DELTA_GROUP_MEMBER
: {
4033 uint32_t _ptr_group_member
;
4034 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group_member
));
4035 if (_ptr_group_member
) {
4036 NDR_PULL_ALLOC(ndr
, r
->group_member
);
4038 r
->group_member
= NULL
;
4042 case NETR_DELTA_ALIAS
: {
4043 uint32_t _ptr_alias
;
4044 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias
));
4046 NDR_PULL_ALLOC(ndr
, r
->alias
);
4052 case NETR_DELTA_DELETE_ALIAS
: {
4055 case NETR_DELTA_RENAME_ALIAS
: {
4056 uint32_t _ptr_rename_alias
;
4057 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_alias
));
4058 if (_ptr_rename_alias
) {
4059 NDR_PULL_ALLOC(ndr
, r
->rename_alias
);
4061 r
->rename_alias
= NULL
;
4065 case NETR_DELTA_ALIAS_MEMBER
: {
4066 uint32_t _ptr_alias_member
;
4067 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias_member
));
4068 if (_ptr_alias_member
) {
4069 NDR_PULL_ALLOC(ndr
, r
->alias_member
);
4071 r
->alias_member
= NULL
;
4075 case NETR_DELTA_POLICY
: {
4076 uint32_t _ptr_policy
;
4077 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
4079 NDR_PULL_ALLOC(ndr
, r
->policy
);
4085 case NETR_DELTA_TRUSTED_DOMAIN
: {
4086 uint32_t _ptr_trusted_domain
;
4087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain
));
4088 if (_ptr_trusted_domain
) {
4089 NDR_PULL_ALLOC(ndr
, r
->trusted_domain
);
4091 r
->trusted_domain
= NULL
;
4095 case NETR_DELTA_DELETE_TRUST
: {
4096 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4099 case NETR_DELTA_ACCOUNT
: {
4100 uint32_t _ptr_account
;
4101 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account
));
4103 NDR_PULL_ALLOC(ndr
, r
->account
);
4109 case NETR_DELTA_DELETE_ACCOUNT
: {
4110 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4113 case NETR_DELTA_SECRET
: {
4114 uint32_t _ptr_secret
;
4115 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secret
));
4117 NDR_PULL_ALLOC(ndr
, r
->secret
);
4123 case NETR_DELTA_DELETE_SECRET
: {
4124 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4127 case NETR_DELTA_DELETE_GROUP2
: {
4128 uint32_t _ptr_delete_group
;
4129 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_group
));
4130 if (_ptr_delete_group
) {
4131 NDR_PULL_ALLOC(ndr
, r
->delete_group
);
4133 r
->delete_group
= NULL
;
4137 case NETR_DELTA_DELETE_USER2
: {
4138 uint32_t _ptr_delete_user
;
4139 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_user
));
4140 if (_ptr_delete_user
) {
4141 NDR_PULL_ALLOC(ndr
, r
->delete_user
);
4143 r
->delete_user
= NULL
;
4147 case NETR_DELTA_MODIFY_COUNT
: {
4148 uint32_t _ptr_modified_count
;
4149 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_modified_count
));
4150 if (_ptr_modified_count
) {
4151 NDR_PULL_ALLOC(ndr
, r
->modified_count
);
4153 r
->modified_count
= NULL
;
4158 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4161 if (ndr_flags
& NDR_BUFFERS
) {
4163 case NETR_DELTA_DOMAIN
:
4165 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4166 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
4167 NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4168 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
4172 case NETR_DELTA_GROUP
:
4174 _mem_save_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4175 NDR_PULL_SET_MEM_CTX(ndr
, r
->group
, 0);
4176 NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4177 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_0
, 0);
4181 case NETR_DELTA_DELETE_GROUP
:
4184 case NETR_DELTA_RENAME_GROUP
:
4185 if (r
->rename_group
) {
4186 _mem_save_rename_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4187 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_group
, 0);
4188 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4189 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_group_0
, 0);
4193 case NETR_DELTA_USER
:
4195 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4196 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
4197 NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4198 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
4202 case NETR_DELTA_DELETE_USER
:
4205 case NETR_DELTA_RENAME_USER
:
4206 if (r
->rename_user
) {
4207 _mem_save_rename_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4208 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_user
, 0);
4209 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4210 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_user_0
, 0);
4214 case NETR_DELTA_GROUP_MEMBER
:
4215 if (r
->group_member
) {
4216 _mem_save_group_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4217 NDR_PULL_SET_MEM_CTX(ndr
, r
->group_member
, 0);
4218 NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_member_0
, 0);
4223 case NETR_DELTA_ALIAS
:
4225 _mem_save_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4226 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias
, 0);
4227 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4228 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_0
, 0);
4232 case NETR_DELTA_DELETE_ALIAS
:
4235 case NETR_DELTA_RENAME_ALIAS
:
4236 if (r
->rename_alias
) {
4237 _mem_save_rename_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4238 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_alias
, 0);
4239 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4240 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_alias_0
, 0);
4244 case NETR_DELTA_ALIAS_MEMBER
:
4245 if (r
->alias_member
) {
4246 _mem_save_alias_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4247 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias_member
, 0);
4248 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_member_0
, 0);
4253 case NETR_DELTA_POLICY
:
4255 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4256 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
4257 NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4258 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
4262 case NETR_DELTA_TRUSTED_DOMAIN
:
4263 if (r
->trusted_domain
) {
4264 _mem_save_trusted_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4265 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain
, 0);
4266 NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_0
, 0);
4271 case NETR_DELTA_DELETE_TRUST
:
4274 case NETR_DELTA_ACCOUNT
:
4276 _mem_save_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4277 NDR_PULL_SET_MEM_CTX(ndr
, r
->account
, 0);
4278 NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4279 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_0
, 0);
4283 case NETR_DELTA_DELETE_ACCOUNT
:
4286 case NETR_DELTA_SECRET
:
4288 _mem_save_secret_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4289 NDR_PULL_SET_MEM_CTX(ndr
, r
->secret
, 0);
4290 NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4291 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secret_0
, 0);
4295 case NETR_DELTA_DELETE_SECRET
:
4298 case NETR_DELTA_DELETE_GROUP2
:
4299 if (r
->delete_group
) {
4300 _mem_save_delete_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4301 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_group
, 0);
4302 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4303 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_group_0
, 0);
4307 case NETR_DELTA_DELETE_USER2
:
4308 if (r
->delete_user
) {
4309 _mem_save_delete_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4310 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_user
, 0);
4311 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_user_0
, 0);
4316 case NETR_DELTA_MODIFY_COUNT
:
4317 if (r
->modified_count
) {
4318 _mem_save_modified_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4319 NDR_PULL_SET_MEM_CTX(ndr
, r
->modified_count
, 0);
4320 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->modified_count
));
4321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_modified_count_0
, 0);
4326 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4329 return NDR_ERR_SUCCESS
;
4332 _PUBLIC_
void ndr_print_netr_DELTA_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_UNION
*r
)
4335 level
= ndr_print_get_switch_value(ndr
, r
);
4336 ndr_print_union(ndr
, name
, level
, "netr_DELTA_UNION");
4338 case NETR_DELTA_DOMAIN
:
4339 ndr_print_ptr(ndr
, "domain", r
->domain
);
4342 ndr_print_netr_DELTA_DOMAIN(ndr
, "domain", r
->domain
);
4347 case NETR_DELTA_GROUP
:
4348 ndr_print_ptr(ndr
, "group", r
->group
);
4351 ndr_print_netr_DELTA_GROUP(ndr
, "group", r
->group
);
4356 case NETR_DELTA_DELETE_GROUP
:
4359 case NETR_DELTA_RENAME_GROUP
:
4360 ndr_print_ptr(ndr
, "rename_group", r
->rename_group
);
4362 if (r
->rename_group
) {
4363 ndr_print_netr_DELTA_RENAME(ndr
, "rename_group", r
->rename_group
);
4368 case NETR_DELTA_USER
:
4369 ndr_print_ptr(ndr
, "user", r
->user
);
4372 ndr_print_netr_DELTA_USER(ndr
, "user", r
->user
);
4377 case NETR_DELTA_DELETE_USER
:
4380 case NETR_DELTA_RENAME_USER
:
4381 ndr_print_ptr(ndr
, "rename_user", r
->rename_user
);
4383 if (r
->rename_user
) {
4384 ndr_print_netr_DELTA_RENAME(ndr
, "rename_user", r
->rename_user
);
4389 case NETR_DELTA_GROUP_MEMBER
:
4390 ndr_print_ptr(ndr
, "group_member", r
->group_member
);
4392 if (r
->group_member
) {
4393 ndr_print_netr_DELTA_GROUP_MEMBER(ndr
, "group_member", r
->group_member
);
4398 case NETR_DELTA_ALIAS
:
4399 ndr_print_ptr(ndr
, "alias", r
->alias
);
4402 ndr_print_netr_DELTA_ALIAS(ndr
, "alias", r
->alias
);
4407 case NETR_DELTA_DELETE_ALIAS
:
4410 case NETR_DELTA_RENAME_ALIAS
:
4411 ndr_print_ptr(ndr
, "rename_alias", r
->rename_alias
);
4413 if (r
->rename_alias
) {
4414 ndr_print_netr_DELTA_RENAME(ndr
, "rename_alias", r
->rename_alias
);
4419 case NETR_DELTA_ALIAS_MEMBER
:
4420 ndr_print_ptr(ndr
, "alias_member", r
->alias_member
);
4422 if (r
->alias_member
) {
4423 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr
, "alias_member", r
->alias_member
);
4428 case NETR_DELTA_POLICY
:
4429 ndr_print_ptr(ndr
, "policy", r
->policy
);
4432 ndr_print_netr_DELTA_POLICY(ndr
, "policy", r
->policy
);
4437 case NETR_DELTA_TRUSTED_DOMAIN
:
4438 ndr_print_ptr(ndr
, "trusted_domain", r
->trusted_domain
);
4440 if (r
->trusted_domain
) {
4441 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr
, "trusted_domain", r
->trusted_domain
);
4446 case NETR_DELTA_DELETE_TRUST
:
4447 ndr_print_netr_DELTA_DELETE_TRUST(ndr
, "delete_trust", &r
->delete_trust
);
4450 case NETR_DELTA_ACCOUNT
:
4451 ndr_print_ptr(ndr
, "account", r
->account
);
4454 ndr_print_netr_DELTA_ACCOUNT(ndr
, "account", r
->account
);
4459 case NETR_DELTA_DELETE_ACCOUNT
:
4460 ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr
, "delete_account", &r
->delete_account
);
4463 case NETR_DELTA_SECRET
:
4464 ndr_print_ptr(ndr
, "secret", r
->secret
);
4467 ndr_print_netr_DELTA_SECRET(ndr
, "secret", r
->secret
);
4472 case NETR_DELTA_DELETE_SECRET
:
4473 ndr_print_netr_DELTA_DELETE_SECRET(ndr
, "delete_secret", &r
->delete_secret
);
4476 case NETR_DELTA_DELETE_GROUP2
:
4477 ndr_print_ptr(ndr
, "delete_group", r
->delete_group
);
4479 if (r
->delete_group
) {
4480 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_group", r
->delete_group
);
4485 case NETR_DELTA_DELETE_USER2
:
4486 ndr_print_ptr(ndr
, "delete_user", r
->delete_user
);
4488 if (r
->delete_user
) {
4489 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_user", r
->delete_user
);
4494 case NETR_DELTA_MODIFY_COUNT
:
4495 ndr_print_ptr(ndr
, "modified_count", r
->modified_count
);
4497 if (r
->modified_count
) {
4498 ndr_print_udlong(ndr
, "modified_count", *r
->modified_count
);
4504 ndr_print_bad_level(ndr
, name
, level
);
4508 static enum ndr_err_code
ndr_push_netr_DELTA_ID_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_ID_UNION
*r
)
4510 if (ndr_flags
& NDR_SCALARS
) {
4511 int level
= ndr_push_get_switch_value(ndr
, r
);
4512 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
4514 case NETR_DELTA_DOMAIN
: {
4515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4518 case NETR_DELTA_GROUP
: {
4519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4522 case NETR_DELTA_DELETE_GROUP
: {
4523 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4526 case NETR_DELTA_RENAME_GROUP
: {
4527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4530 case NETR_DELTA_USER
: {
4531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4534 case NETR_DELTA_DELETE_USER
: {
4535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4538 case NETR_DELTA_RENAME_USER
: {
4539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4542 case NETR_DELTA_GROUP_MEMBER
: {
4543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4546 case NETR_DELTA_ALIAS
: {
4547 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4550 case NETR_DELTA_DELETE_ALIAS
: {
4551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4554 case NETR_DELTA_RENAME_ALIAS
: {
4555 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4558 case NETR_DELTA_ALIAS_MEMBER
: {
4559 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4562 case NETR_DELTA_POLICY
: {
4563 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4566 case NETR_DELTA_TRUSTED_DOMAIN
: {
4567 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4570 case NETR_DELTA_DELETE_TRUST
: {
4571 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4574 case NETR_DELTA_ACCOUNT
: {
4575 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4578 case NETR_DELTA_DELETE_ACCOUNT
: {
4579 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4582 case NETR_DELTA_SECRET
: {
4583 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4586 case NETR_DELTA_DELETE_SECRET
: {
4587 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4590 case NETR_DELTA_DELETE_GROUP2
: {
4591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4594 case NETR_DELTA_DELETE_USER2
: {
4595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4598 case NETR_DELTA_MODIFY_COUNT
: {
4602 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4605 if (ndr_flags
& NDR_BUFFERS
) {
4606 int level
= ndr_push_get_switch_value(ndr
, r
);
4608 case NETR_DELTA_DOMAIN
:
4611 case NETR_DELTA_GROUP
:
4614 case NETR_DELTA_DELETE_GROUP
:
4617 case NETR_DELTA_RENAME_GROUP
:
4620 case NETR_DELTA_USER
:
4623 case NETR_DELTA_DELETE_USER
:
4626 case NETR_DELTA_RENAME_USER
:
4629 case NETR_DELTA_GROUP_MEMBER
:
4632 case NETR_DELTA_ALIAS
:
4635 case NETR_DELTA_DELETE_ALIAS
:
4638 case NETR_DELTA_RENAME_ALIAS
:
4641 case NETR_DELTA_ALIAS_MEMBER
:
4644 case NETR_DELTA_POLICY
:
4646 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4650 case NETR_DELTA_TRUSTED_DOMAIN
:
4652 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4656 case NETR_DELTA_DELETE_TRUST
:
4658 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4662 case NETR_DELTA_ACCOUNT
:
4664 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4668 case NETR_DELTA_DELETE_ACCOUNT
:
4670 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4674 case NETR_DELTA_SECRET
:
4676 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4679 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4683 case NETR_DELTA_DELETE_SECRET
:
4685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4688 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4692 case NETR_DELTA_DELETE_GROUP2
:
4695 case NETR_DELTA_DELETE_USER2
:
4698 case NETR_DELTA_MODIFY_COUNT
:
4702 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4705 return NDR_ERR_SUCCESS
;
4708 static enum ndr_err_code
ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_ID_UNION
*r
)
4712 TALLOC_CTX
*_mem_save_sid_0
;
4713 TALLOC_CTX
*_mem_save_name_0
;
4714 level
= ndr_pull_get_switch_value(ndr
, r
);
4715 if (ndr_flags
& NDR_SCALARS
) {
4716 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4717 if (_level
!= level
) {
4718 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
4721 case NETR_DELTA_DOMAIN
: {
4722 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4725 case NETR_DELTA_GROUP
: {
4726 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4729 case NETR_DELTA_DELETE_GROUP
: {
4730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4733 case NETR_DELTA_RENAME_GROUP
: {
4734 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4737 case NETR_DELTA_USER
: {
4738 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4741 case NETR_DELTA_DELETE_USER
: {
4742 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4745 case NETR_DELTA_RENAME_USER
: {
4746 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4749 case NETR_DELTA_GROUP_MEMBER
: {
4750 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4753 case NETR_DELTA_ALIAS
: {
4754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4757 case NETR_DELTA_DELETE_ALIAS
: {
4758 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4761 case NETR_DELTA_RENAME_ALIAS
: {
4762 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4765 case NETR_DELTA_ALIAS_MEMBER
: {
4766 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4769 case NETR_DELTA_POLICY
: {
4771 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4773 NDR_PULL_ALLOC(ndr
, r
->sid
);
4779 case NETR_DELTA_TRUSTED_DOMAIN
: {
4781 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4783 NDR_PULL_ALLOC(ndr
, r
->sid
);
4789 case NETR_DELTA_DELETE_TRUST
: {
4791 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4793 NDR_PULL_ALLOC(ndr
, r
->sid
);
4799 case NETR_DELTA_ACCOUNT
: {
4801 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4803 NDR_PULL_ALLOC(ndr
, r
->sid
);
4809 case NETR_DELTA_DELETE_ACCOUNT
: {
4811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4813 NDR_PULL_ALLOC(ndr
, r
->sid
);
4819 case NETR_DELTA_SECRET
: {
4821 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
4823 NDR_PULL_ALLOC(ndr
, r
->name
);
4829 case NETR_DELTA_DELETE_SECRET
: {
4831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
4833 NDR_PULL_ALLOC(ndr
, r
->name
);
4839 case NETR_DELTA_DELETE_GROUP2
: {
4840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4843 case NETR_DELTA_DELETE_USER2
: {
4844 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4847 case NETR_DELTA_MODIFY_COUNT
: {
4851 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4854 if (ndr_flags
& NDR_BUFFERS
) {
4856 case NETR_DELTA_DOMAIN
:
4859 case NETR_DELTA_GROUP
:
4862 case NETR_DELTA_DELETE_GROUP
:
4865 case NETR_DELTA_RENAME_GROUP
:
4868 case NETR_DELTA_USER
:
4871 case NETR_DELTA_DELETE_USER
:
4874 case NETR_DELTA_RENAME_USER
:
4877 case NETR_DELTA_GROUP_MEMBER
:
4880 case NETR_DELTA_ALIAS
:
4883 case NETR_DELTA_DELETE_ALIAS
:
4886 case NETR_DELTA_RENAME_ALIAS
:
4889 case NETR_DELTA_ALIAS_MEMBER
:
4892 case NETR_DELTA_POLICY
:
4894 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4895 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4896 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4901 case NETR_DELTA_TRUSTED_DOMAIN
:
4903 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4904 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4905 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4910 case NETR_DELTA_DELETE_TRUST
:
4912 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4913 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4914 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4915 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4919 case NETR_DELTA_ACCOUNT
:
4921 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4922 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4923 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4928 case NETR_DELTA_DELETE_ACCOUNT
:
4930 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4931 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4932 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4937 case NETR_DELTA_SECRET
:
4939 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4940 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
4941 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
4942 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
4943 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
4944 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
));
4946 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
4947 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
4948 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
4952 case NETR_DELTA_DELETE_SECRET
:
4954 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4955 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
4956 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
4957 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
4958 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
4959 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
));
4961 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
4962 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
4963 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
4967 case NETR_DELTA_DELETE_GROUP2
:
4970 case NETR_DELTA_DELETE_USER2
:
4973 case NETR_DELTA_MODIFY_COUNT
:
4977 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4980 return NDR_ERR_SUCCESS
;
4983 _PUBLIC_
void ndr_print_netr_DELTA_ID_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_ID_UNION
*r
)
4986 level
= ndr_print_get_switch_value(ndr
, r
);
4987 ndr_print_union(ndr
, name
, level
, "netr_DELTA_ID_UNION");
4989 case NETR_DELTA_DOMAIN
:
4990 ndr_print_uint32(ndr
, "rid", r
->rid
);
4993 case NETR_DELTA_GROUP
:
4994 ndr_print_uint32(ndr
, "rid", r
->rid
);
4997 case NETR_DELTA_DELETE_GROUP
:
4998 ndr_print_uint32(ndr
, "rid", r
->rid
);
5001 case NETR_DELTA_RENAME_GROUP
:
5002 ndr_print_uint32(ndr
, "rid", r
->rid
);
5005 case NETR_DELTA_USER
:
5006 ndr_print_uint32(ndr
, "rid", r
->rid
);
5009 case NETR_DELTA_DELETE_USER
:
5010 ndr_print_uint32(ndr
, "rid", r
->rid
);
5013 case NETR_DELTA_RENAME_USER
:
5014 ndr_print_uint32(ndr
, "rid", r
->rid
);
5017 case NETR_DELTA_GROUP_MEMBER
:
5018 ndr_print_uint32(ndr
, "rid", r
->rid
);
5021 case NETR_DELTA_ALIAS
:
5022 ndr_print_uint32(ndr
, "rid", r
->rid
);
5025 case NETR_DELTA_DELETE_ALIAS
:
5026 ndr_print_uint32(ndr
, "rid", r
->rid
);
5029 case NETR_DELTA_RENAME_ALIAS
:
5030 ndr_print_uint32(ndr
, "rid", r
->rid
);
5033 case NETR_DELTA_ALIAS_MEMBER
:
5034 ndr_print_uint32(ndr
, "rid", r
->rid
);
5037 case NETR_DELTA_POLICY
:
5038 ndr_print_ptr(ndr
, "sid", r
->sid
);
5041 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5046 case NETR_DELTA_TRUSTED_DOMAIN
:
5047 ndr_print_ptr(ndr
, "sid", r
->sid
);
5050 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5055 case NETR_DELTA_DELETE_TRUST
:
5056 ndr_print_ptr(ndr
, "sid", r
->sid
);
5059 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5064 case NETR_DELTA_ACCOUNT
:
5065 ndr_print_ptr(ndr
, "sid", r
->sid
);
5068 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5073 case NETR_DELTA_DELETE_ACCOUNT
:
5074 ndr_print_ptr(ndr
, "sid", r
->sid
);
5077 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5082 case NETR_DELTA_SECRET
:
5083 ndr_print_ptr(ndr
, "name", r
->name
);
5086 ndr_print_string(ndr
, "name", r
->name
);
5091 case NETR_DELTA_DELETE_SECRET
:
5092 ndr_print_ptr(ndr
, "name", r
->name
);
5095 ndr_print_string(ndr
, "name", r
->name
);
5100 case NETR_DELTA_DELETE_GROUP2
:
5101 ndr_print_uint32(ndr
, "rid", r
->rid
);
5104 case NETR_DELTA_DELETE_USER2
:
5105 ndr_print_uint32(ndr
, "rid", r
->rid
);
5108 case NETR_DELTA_MODIFY_COUNT
:
5112 ndr_print_bad_level(ndr
, name
, level
);
5116 static enum ndr_err_code
ndr_push_netr_DELTA_ENUM(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM
*r
)
5118 if (ndr_flags
& NDR_SCALARS
) {
5119 NDR_CHECK(ndr_push_align(ndr
, 4));
5120 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, r
->delta_type
));
5121 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5122 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5123 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5124 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5126 if (ndr_flags
& NDR_BUFFERS
) {
5127 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5128 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5130 return NDR_ERR_SUCCESS
;
5133 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM
*r
)
5135 if (ndr_flags
& NDR_SCALARS
) {
5136 NDR_CHECK(ndr_pull_align(ndr
, 4));
5137 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr
, NDR_SCALARS
, &r
->delta_type
));
5138 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5139 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5140 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5141 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5143 if (ndr_flags
& NDR_BUFFERS
) {
5144 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5145 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5147 return NDR_ERR_SUCCESS
;
5150 _PUBLIC_
void ndr_print_netr_DELTA_ENUM(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM
*r
)
5152 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM");
5154 ndr_print_netr_DeltaEnum(ndr
, "delta_type", r
->delta_type
);
5155 ndr_print_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
);
5156 ndr_print_netr_DELTA_ID_UNION(ndr
, "delta_id_union", &r
->delta_id_union
);
5157 ndr_print_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
);
5158 ndr_print_netr_DELTA_UNION(ndr
, "delta_union", &r
->delta_union
);
5162 static enum ndr_err_code
ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5164 uint32_t cntr_delta_enum_1
;
5165 if (ndr_flags
& NDR_SCALARS
) {
5166 NDR_CHECK(ndr_push_align(ndr
, 4));
5167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5168 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delta_enum
));
5170 if (ndr_flags
& NDR_BUFFERS
) {
5171 if (r
->delta_enum
) {
5172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5173 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5174 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5176 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5177 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5181 return NDR_ERR_SUCCESS
;
5184 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM_ARRAY
*r
)
5186 uint32_t _ptr_delta_enum
;
5187 uint32_t cntr_delta_enum_1
;
5188 TALLOC_CTX
*_mem_save_delta_enum_0
;
5189 TALLOC_CTX
*_mem_save_delta_enum_1
;
5190 if (ndr_flags
& NDR_SCALARS
) {
5191 NDR_CHECK(ndr_pull_align(ndr
, 4));
5192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_deltas
));
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum
));
5194 if (_ptr_delta_enum
) {
5195 NDR_PULL_ALLOC(ndr
, r
->delta_enum
);
5197 r
->delta_enum
= NULL
;
5200 if (ndr_flags
& NDR_BUFFERS
) {
5201 if (r
->delta_enum
) {
5202 _mem_save_delta_enum_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5203 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5204 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->delta_enum
));
5205 NDR_PULL_ALLOC_N(ndr
, r
->delta_enum
, ndr_get_array_size(ndr
, &r
->delta_enum
));
5206 _mem_save_delta_enum_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5207 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5208 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5209 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5211 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5212 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5214 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_1
, 0);
5215 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_0
, 0);
5217 if (r
->delta_enum
) {
5218 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->delta_enum
, r
->num_deltas
));
5221 return NDR_ERR_SUCCESS
;
5224 _PUBLIC_
void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5226 uint32_t cntr_delta_enum_1
;
5227 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM_ARRAY");
5229 ndr_print_uint32(ndr
, "num_deltas", r
->num_deltas
);
5230 ndr_print_ptr(ndr
, "delta_enum", r
->delta_enum
);
5232 if (r
->delta_enum
) {
5233 ndr
->print(ndr
, "%s: ARRAY(%d)", "delta_enum", (int)r
->num_deltas
);
5235 for (cntr_delta_enum_1
=0;cntr_delta_enum_1
<r
->num_deltas
;cntr_delta_enum_1
++) {
5237 if (asprintf(&idx_1
, "[%d]", cntr_delta_enum_1
) != -1) {
5238 ndr_print_netr_DELTA_ENUM(ndr
, "delta_enum", &r
->delta_enum
[cntr_delta_enum_1
]);
5248 static enum ndr_err_code
ndr_push_netr_UAS_INFO_0(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UAS_INFO_0
*r
)
5251 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5252 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5253 if (ndr_flags
& NDR_SCALARS
) {
5254 NDR_CHECK(ndr_push_align(ndr
, 4));
5255 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->timecreated
));
5257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number
));
5259 if (ndr_flags
& NDR_BUFFERS
) {
5261 ndr
->flags
= _flags_save_STRUCT
;
5263 return NDR_ERR_SUCCESS
;
5266 static enum ndr_err_code
ndr_pull_netr_UAS_INFO_0(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UAS_INFO_0
*r
)
5269 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5270 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5271 if (ndr_flags
& NDR_SCALARS
) {
5272 NDR_CHECK(ndr_pull_align(ndr
, 4));
5273 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5274 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->timecreated
));
5275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number
));
5277 if (ndr_flags
& NDR_BUFFERS
) {
5279 ndr
->flags
= _flags_save_STRUCT
;
5281 return NDR_ERR_SUCCESS
;
5284 _PUBLIC_
void ndr_print_netr_UAS_INFO_0(struct ndr_print
*ndr
, const char *name
, const struct netr_UAS_INFO_0
*r
)
5286 ndr_print_struct(ndr
, name
, "netr_UAS_INFO_0");
5288 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5289 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5291 ndr_print_array_uint8(ndr
, "computer_name", r
->computer_name
, 16);
5292 ndr_print_uint32(ndr
, "timecreated", r
->timecreated
);
5293 ndr_print_uint32(ndr
, "serial_number", r
->serial_number
);
5295 ndr
->flags
= _flags_save_STRUCT
;
5299 static enum ndr_err_code
ndr_push_netr_AccountBuffer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AccountBuffer
*r
)
5301 if (ndr_flags
& NDR_SCALARS
) {
5302 NDR_CHECK(ndr_push_align(ndr
, 4));
5304 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5305 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5306 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->blob
));
5307 ndr
->flags
= _flags_save_DATA_BLOB
;
5310 if (ndr_flags
& NDR_BUFFERS
) {
5312 return NDR_ERR_SUCCESS
;
5315 static enum ndr_err_code
ndr_pull_netr_AccountBuffer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AccountBuffer
*r
)
5317 if (ndr_flags
& NDR_SCALARS
) {
5318 NDR_CHECK(ndr_pull_align(ndr
, 4));
5320 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5322 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->blob
));
5323 ndr
->flags
= _flags_save_DATA_BLOB
;
5326 if (ndr_flags
& NDR_BUFFERS
) {
5328 return NDR_ERR_SUCCESS
;
5331 _PUBLIC_
void ndr_print_netr_AccountBuffer(struct ndr_print
*ndr
, const char *name
, const struct netr_AccountBuffer
*r
)
5333 ndr_print_struct(ndr
, name
, "netr_AccountBuffer");
5335 ndr_print_DATA_BLOB(ndr
, "blob", r
->blob
);
5339 static enum ndr_err_code
ndr_push_netr_InfoFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
5341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5342 return NDR_ERR_SUCCESS
;
5345 static enum ndr_err_code
ndr_pull_netr_InfoFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
5348 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5350 return NDR_ERR_SUCCESS
;
5353 _PUBLIC_
void ndr_print_netr_InfoFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
5355 ndr_print_uint32(ndr
, name
, r
);
5357 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED
, r
);
5358 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS
, r
);
5359 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC
, r
);
5363 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_1
*r
)
5365 if (ndr_flags
& NDR_SCALARS
) {
5366 NDR_CHECK(ndr_push_align(ndr
, 4));
5367 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5370 if (ndr_flags
& NDR_BUFFERS
) {
5372 return NDR_ERR_SUCCESS
;
5375 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_1
*r
)
5377 if (ndr_flags
& NDR_SCALARS
) {
5378 NDR_CHECK(ndr_pull_align(ndr
, 4));
5379 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5380 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5382 if (ndr_flags
& NDR_BUFFERS
) {
5384 return NDR_ERR_SUCCESS
;
5387 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_1
*r
)
5389 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_1");
5391 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5392 ndr_print_uint32(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5396 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_2
*r
)
5398 if (ndr_flags
& NDR_SCALARS
) {
5399 NDR_CHECK(ndr_push_align(ndr
, 4));
5400 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5402 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->tc_connection_status
));
5405 if (ndr_flags
& NDR_BUFFERS
) {
5406 if (r
->trusted_dc_name
) {
5407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5410 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
));
5413 return NDR_ERR_SUCCESS
;
5416 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_2
*r
)
5418 uint32_t _ptr_trusted_dc_name
;
5419 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5420 if (ndr_flags
& NDR_SCALARS
) {
5421 NDR_CHECK(ndr_pull_align(ndr
, 4));
5422 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5424 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5425 if (_ptr_trusted_dc_name
) {
5426 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5428 r
->trusted_dc_name
= NULL
;
5430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->tc_connection_status
));
5432 if (ndr_flags
& NDR_BUFFERS
) {
5433 if (r
->trusted_dc_name
) {
5434 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5435 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5436 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5437 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5438 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5439 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
));
5441 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5442 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
));
5443 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5446 return NDR_ERR_SUCCESS
;
5449 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_2
*r
)
5451 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_2");
5453 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5454 ndr_print_uint32(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5455 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5457 if (r
->trusted_dc_name
) {
5458 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5461 ndr_print_uint32(ndr
, "tc_connection_status", r
->tc_connection_status
);
5465 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_3
*r
)
5467 if (ndr_flags
& NDR_SCALARS
) {
5468 NDR_CHECK(ndr_push_align(ndr
, 4));
5469 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_attempts
));
5471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
5472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
5473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
5474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
5475 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
5477 if (ndr_flags
& NDR_BUFFERS
) {
5479 return NDR_ERR_SUCCESS
;
5482 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_3
*r
)
5484 if (ndr_flags
& NDR_SCALARS
) {
5485 NDR_CHECK(ndr_pull_align(ndr
, 4));
5486 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5487 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_attempts
));
5488 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
5489 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
5490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
5491 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
5492 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
5494 if (ndr_flags
& NDR_BUFFERS
) {
5496 return NDR_ERR_SUCCESS
;
5499 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_3
*r
)
5501 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_3");
5503 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5504 ndr_print_uint32(ndr
, "logon_attempts", r
->logon_attempts
);
5505 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
5506 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
5507 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
5508 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
5509 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
5513 static enum ndr_err_code
ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
5515 if (ndr_flags
& NDR_SCALARS
) {
5516 int level
= ndr_push_get_switch_value(ndr
, r
);
5517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5520 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5528 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5532 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5535 if (ndr_flags
& NDR_BUFFERS
) {
5536 int level
= ndr_push_get_switch_value(ndr
, r
);
5540 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5546 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5552 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5557 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5560 return NDR_ERR_SUCCESS
;
5563 static enum ndr_err_code
ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_QUERY_INFORMATION
*r
)
5567 TALLOC_CTX
*_mem_save_info1_0
;
5568 TALLOC_CTX
*_mem_save_info2_0
;
5569 TALLOC_CTX
*_mem_save_info3_0
;
5570 level
= ndr_pull_get_switch_value(ndr
, r
);
5571 if (ndr_flags
& NDR_SCALARS
) {
5572 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5573 if (_level
!= level
) {
5574 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5578 uint32_t _ptr_info1
;
5579 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5581 NDR_PULL_ALLOC(ndr
, r
->info1
);
5588 uint32_t _ptr_info2
;
5589 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5591 NDR_PULL_ALLOC(ndr
, r
->info2
);
5598 uint32_t _ptr_info3
;
5599 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5601 NDR_PULL_ALLOC(ndr
, r
->info3
);
5608 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5611 if (ndr_flags
& NDR_BUFFERS
) {
5615 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5616 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5617 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
5624 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5625 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
5626 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
5633 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5634 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
5635 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
5641 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5644 return NDR_ERR_SUCCESS
;
5647 _PUBLIC_
void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
5650 level
= ndr_print_get_switch_value(ndr
, r
);
5651 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_QUERY_INFORMATION");
5654 ndr_print_ptr(ndr
, "info1", r
->info1
);
5657 ndr_print_netr_NETLOGON_INFO_1(ndr
, "info1", r
->info1
);
5663 ndr_print_ptr(ndr
, "info2", r
->info2
);
5666 ndr_print_netr_NETLOGON_INFO_2(ndr
, "info2", r
->info2
);
5672 ndr_print_ptr(ndr
, "info3", r
->info3
);
5675 ndr_print_netr_NETLOGON_INFO_3(ndr
, "info3", r
->info3
);
5681 ndr_print_bad_level(ndr
, name
, level
);
5685 static enum ndr_err_code
ndr_push_netr_LogonControlCode(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonControlCode r
)
5687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5688 return NDR_ERR_SUCCESS
;
5691 static enum ndr_err_code
ndr_pull_netr_LogonControlCode(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonControlCode
*r
)
5694 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5696 return NDR_ERR_SUCCESS
;
5699 _PUBLIC_
void ndr_print_netr_LogonControlCode(struct ndr_print
*ndr
, const char *name
, enum netr_LogonControlCode r
)
5701 const char *val
= NULL
;
5704 case NETLOGON_CONTROL_SYNC
: val
= "NETLOGON_CONTROL_SYNC"; break;
5705 case NETLOGON_CONTROL_REDISCOVER
: val
= "NETLOGON_CONTROL_REDISCOVER"; break;
5706 case NETLOGON_CONTROL_TC_QUERY
: val
= "NETLOGON_CONTROL_TC_QUERY"; break;
5707 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: val
= "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5708 case NETLOGON_CONTROL_SET_DBFLAG
: val
= "NETLOGON_CONTROL_SET_DBFLAG"; break;
5710 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5713 static enum ndr_err_code
ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_CONTROL_DATA_INFORMATION
*r
)
5715 if (ndr_flags
& NDR_SCALARS
) {
5716 int level
= ndr_push_get_switch_value(ndr
, r
);
5717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5719 case NETLOGON_CONTROL_REDISCOVER
: {
5720 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
5723 case NETLOGON_CONTROL_TC_QUERY
: {
5724 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
5727 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
5728 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
5731 case NETLOGON_CONTROL_SET_DBFLAG
: {
5732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->debug_level
));
5736 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5739 if (ndr_flags
& NDR_BUFFERS
) {
5740 int level
= ndr_push_get_switch_value(ndr
, r
);
5742 case NETLOGON_CONTROL_REDISCOVER
:
5744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5745 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5746 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5747 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5751 case NETLOGON_CONTROL_TC_QUERY
:
5753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5756 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5760 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
5762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5763 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5765 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5769 case NETLOGON_CONTROL_SET_DBFLAG
:
5773 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5776 return NDR_ERR_SUCCESS
;
5779 static enum ndr_err_code
ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_DATA_INFORMATION
*r
)
5783 TALLOC_CTX
*_mem_save_domain_0
;
5784 level
= ndr_pull_get_switch_value(ndr
, r
);
5785 if (ndr_flags
& NDR_SCALARS
) {
5786 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5787 if (_level
!= level
) {
5788 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5791 case NETLOGON_CONTROL_REDISCOVER
: {
5792 uint32_t _ptr_domain
;
5793 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
5795 NDR_PULL_ALLOC(ndr
, r
->domain
);
5801 case NETLOGON_CONTROL_TC_QUERY
: {
5802 uint32_t _ptr_domain
;
5803 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
5805 NDR_PULL_ALLOC(ndr
, r
->domain
);
5811 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
5812 uint32_t _ptr_domain
;
5813 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
5815 NDR_PULL_ALLOC(ndr
, r
->domain
);
5821 case NETLOGON_CONTROL_SET_DBFLAG
: {
5822 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->debug_level
));
5826 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5829 if (ndr_flags
& NDR_BUFFERS
) {
5831 case NETLOGON_CONTROL_REDISCOVER
:
5833 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5834 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
5835 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
5836 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
5837 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
5838 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
));
5840 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
5841 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
5842 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
5846 case NETLOGON_CONTROL_TC_QUERY
:
5848 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5849 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
5850 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
5851 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
5852 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
5853 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
));
5855 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
5856 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
5857 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
5861 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
5863 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5864 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
5865 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
5866 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
5867 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
5868 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
));
5870 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
5871 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
5872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
5876 case NETLOGON_CONTROL_SET_DBFLAG
:
5880 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5883 return NDR_ERR_SUCCESS
;
5886 _PUBLIC_
void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_DATA_INFORMATION
*r
)
5889 level
= ndr_print_get_switch_value(ndr
, r
);
5890 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_DATA_INFORMATION");
5892 case NETLOGON_CONTROL_REDISCOVER
:
5893 ndr_print_ptr(ndr
, "domain", r
->domain
);
5896 ndr_print_string(ndr
, "domain", r
->domain
);
5901 case NETLOGON_CONTROL_TC_QUERY
:
5902 ndr_print_ptr(ndr
, "domain", r
->domain
);
5905 ndr_print_string(ndr
, "domain", r
->domain
);
5910 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
5911 ndr_print_ptr(ndr
, "domain", r
->domain
);
5914 ndr_print_string(ndr
, "domain", r
->domain
);
5919 case NETLOGON_CONTROL_SET_DBFLAG
:
5920 ndr_print_uint32(ndr
, "debug_level", r
->debug_level
);
5924 ndr_print_bad_level(ndr
, name
, level
);
5928 static enum ndr_err_code
ndr_push_netr_NegotiateFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
5930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5931 return NDR_ERR_SUCCESS
;
5934 static enum ndr_err_code
ndr_pull_netr_NegotiateFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
5937 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5939 return NDR_ERR_SUCCESS
;
5942 _PUBLIC_
void ndr_print_netr_NegotiateFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
5944 ndr_print_uint32(ndr
, name
, r
);
5946 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT
, r
);
5947 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL
, r
);
5948 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR
, r
);
5949 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT
, r
);
5950 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC
, r
);
5951 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL
, r
);
5952 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS
, r
);
5953 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO
, r
);
5954 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL
, r
);
5955 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC
, r
);
5956 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH
, r
);
5957 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC
, r
);
5958 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL
, r
);
5959 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL
, r
);
5960 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_128BIT", NETLOGON_NEG_128BIT
, r
);
5961 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS
, r
);
5962 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS
, r
);
5963 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2
, r
);
5964 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO
, r
);
5965 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS
, r
);
5966 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION
, r
);
5967 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH
, r
);
5968 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS
, r
);
5969 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SCHANNEL", NETLOGON_NEG_SCHANNEL
, r
);
5973 static enum ndr_err_code
ndr_push_netr_ChangeLogFlags(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
5975 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
5976 return NDR_ERR_SUCCESS
;
5979 static enum ndr_err_code
ndr_pull_netr_ChangeLogFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
5982 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
5984 return NDR_ERR_SUCCESS
;
5987 _PUBLIC_
void ndr_print_netr_ChangeLogFlags(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
5989 ndr_print_uint16(ndr
, name
, r
);
5991 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED
, r
);
5992 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD
, r
);
5993 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED
, r
);
5994 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED
, r
);
5995 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ
, r
);
5999 static enum ndr_err_code
ndr_push_netr_ChangeLogObject(struct ndr_push
*ndr
, int ndr_flags
, const union netr_ChangeLogObject
*r
)
6001 if (ndr_flags
& NDR_SCALARS
) {
6002 int level
= ndr_push_get_switch_value(ndr
, r
);
6004 case NETR_CHANGELOG_SID_INCLUDED
: {
6005 NDR_CHECK(ndr_push_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6008 case NETR_CHANGELOG_NAME_INCLUDED
: {
6010 uint32_t _flags_save_string
= ndr
->flags
;
6011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6012 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->object_name
));
6013 ndr
->flags
= _flags_save_string
;
6022 if (ndr_flags
& NDR_BUFFERS
) {
6023 int level
= ndr_push_get_switch_value(ndr
, r
);
6025 case NETR_CHANGELOG_SID_INCLUDED
:
6026 NDR_CHECK(ndr_push_dom_sid(ndr
, NDR_BUFFERS
, &r
->object_sid
));
6029 case NETR_CHANGELOG_NAME_INCLUDED
:
6037 return NDR_ERR_SUCCESS
;
6040 static enum ndr_err_code
ndr_pull_netr_ChangeLogObject(struct ndr_pull
*ndr
, int ndr_flags
, union netr_ChangeLogObject
*r
)
6043 level
= ndr_pull_get_switch_value(ndr
, r
);
6044 if (ndr_flags
& NDR_SCALARS
) {
6046 case NETR_CHANGELOG_SID_INCLUDED
: {
6047 NDR_CHECK(ndr_pull_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6050 case NETR_CHANGELOG_NAME_INCLUDED
: {
6052 uint32_t _flags_save_string
= ndr
->flags
;
6053 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6054 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->object_name
));
6055 ndr
->flags
= _flags_save_string
;
6064 if (ndr_flags
& NDR_BUFFERS
) {
6066 case NETR_CHANGELOG_SID_INCLUDED
:
6067 NDR_CHECK(ndr_pull_dom_sid(ndr
, NDR_BUFFERS
, &r
->object_sid
));
6070 case NETR_CHANGELOG_NAME_INCLUDED
:
6078 return NDR_ERR_SUCCESS
;
6081 _PUBLIC_
void ndr_print_netr_ChangeLogObject(struct ndr_print
*ndr
, const char *name
, const union netr_ChangeLogObject
*r
)
6084 level
= ndr_print_get_switch_value(ndr
, r
);
6085 ndr_print_union(ndr
, name
, level
, "netr_ChangeLogObject");
6087 case NETR_CHANGELOG_SID_INCLUDED
:
6088 ndr_print_dom_sid(ndr
, "object_sid", &r
->object_sid
);
6091 case NETR_CHANGELOG_NAME_INCLUDED
:
6092 ndr_print_string(ndr
, "object_name", r
->object_name
);
6101 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ChangeLogEntry(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChangeLogEntry
*r
)
6103 if (ndr_flags
& NDR_SCALARS
) {
6104 NDR_CHECK(ndr_push_align(ndr
, 4));
6105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number1
));
6106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number2
));
6107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->object_rid
));
6108 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, r
->flags
));
6109 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, r
->db_index
));
6110 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, r
->delta_type
));
6111 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6112 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6114 if (ndr_flags
& NDR_BUFFERS
) {
6115 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6117 return NDR_ERR_SUCCESS
;
6120 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ChangeLogEntry(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChangeLogEntry
*r
)
6122 if (ndr_flags
& NDR_SCALARS
) {
6123 NDR_CHECK(ndr_pull_align(ndr
, 4));
6124 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number1
));
6125 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number2
));
6126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->object_rid
));
6127 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, &r
->flags
));
6128 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, &r
->db_index
));
6129 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, &r
->delta_type
));
6130 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6131 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6133 if (ndr_flags
& NDR_BUFFERS
) {
6134 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6136 return NDR_ERR_SUCCESS
;
6139 _PUBLIC_
void ndr_print_netr_ChangeLogEntry(struct ndr_print
*ndr
, const char *name
, const struct netr_ChangeLogEntry
*r
)
6141 ndr_print_struct(ndr
, name
, "netr_ChangeLogEntry");
6143 ndr_print_uint32(ndr
, "serial_number1", r
->serial_number1
);
6144 ndr_print_uint32(ndr
, "serial_number2", r
->serial_number2
);
6145 ndr_print_uint32(ndr
, "object_rid", r
->object_rid
);
6146 ndr_print_netr_ChangeLogFlags(ndr
, "flags", r
->flags
);
6147 ndr_print_netr_SamDatabaseID8Bit(ndr
, "db_index", r
->db_index
);
6148 ndr_print_netr_DeltaEnum8Bit(ndr
, "delta_type", r
->delta_type
);
6149 ndr_print_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
));
6150 ndr_print_netr_ChangeLogObject(ndr
, "object", &r
->object
);
6154 _PUBLIC_
size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry
*r
, int flags
)
6156 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_netr_ChangeLogEntry
);
6159 static enum ndr_err_code
ndr_push_netr_Blob(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Blob
*r
)
6161 if (ndr_flags
& NDR_SCALARS
) {
6162 NDR_CHECK(ndr_push_align(ndr
, 4));
6163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6164 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
6166 if (ndr_flags
& NDR_BUFFERS
) {
6168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6169 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
6172 return NDR_ERR_SUCCESS
;
6175 static enum ndr_err_code
ndr_pull_netr_Blob(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Blob
*r
)
6178 TALLOC_CTX
*_mem_save_data_0
;
6179 if (ndr_flags
& NDR_SCALARS
) {
6180 NDR_CHECK(ndr_pull_align(ndr
, 4));
6181 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
6182 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6184 NDR_PULL_ALLOC(ndr
, r
->data
);
6189 if (ndr_flags
& NDR_BUFFERS
) {
6191 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6192 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6193 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6194 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
6195 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
6196 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6199 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
6202 return NDR_ERR_SUCCESS
;
6205 _PUBLIC_
void ndr_print_netr_Blob(struct ndr_print
*ndr
, const char *name
, const struct netr_Blob
*r
)
6207 ndr_print_struct(ndr
, name
, "netr_Blob");
6209 ndr_print_uint32(ndr
, "length", r
->length
);
6210 ndr_print_ptr(ndr
, "data", r
->data
);
6213 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
6219 static enum ndr_err_code
ndr_push_netr_DsRGetDCName_flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6221 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6222 return NDR_ERR_SUCCESS
;
6225 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6228 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6230 return NDR_ERR_SUCCESS
;
6233 _PUBLIC_
void ndr_print_netr_DsRGetDCName_flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6235 ndr_print_uint32(ndr
, name
, r
);
6237 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY
, r
);
6238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED
, r
);
6239 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED
, r
);
6240 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED
, r
);
6241 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED
, r
);
6242 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY
, r
);
6243 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED
, r
);
6244 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED
, r
);
6245 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED
, r
);
6246 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED
, r
);
6247 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED
, r
);
6248 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF
, r
);
6249 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED
, r
);
6250 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME
, r
);
6251 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME
, r
);
6252 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE
, r
);
6253 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED
, r
);
6254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME
, r
);
6255 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME
, r
);
6259 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType r
)
6261 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6262 return NDR_ERR_SUCCESS
;
6265 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType
*r
)
6268 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6270 return NDR_ERR_SUCCESS
;
6273 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print
*ndr
, const char *name
, enum netr_DsRGetDCNameInfo_AddressType r
)
6275 const char *val
= NULL
;
6278 case DS_ADDRESS_TYPE_INET
: val
= "DS_ADDRESS_TYPE_INET"; break;
6279 case DS_ADDRESS_TYPE_NETBIOS
: val
= "DS_ADDRESS_TYPE_NETBIOS"; break;
6281 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6284 static enum ndr_err_code
ndr_push_netr_DsR_DcFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6286 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6287 return NDR_ERR_SUCCESS
;
6290 static enum ndr_err_code
ndr_pull_netr_DsR_DcFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6293 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6295 return NDR_ERR_SUCCESS
;
6298 _PUBLIC_
void ndr_print_netr_DsR_DcFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6300 ndr_print_uint32(ndr
, name
, r
);
6302 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC
, r
);
6303 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC
, r
);
6304 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP
, r
);
6305 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS
, r
);
6306 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC
, r
);
6307 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV
, r
);
6308 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST
, r
);
6309 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE
, r
);
6310 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV
, r
);
6311 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC
, r
);
6312 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6
, r
);
6313 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6
, r
);
6314 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER
, r
);
6315 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN
, r
);
6316 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST
, r
);
6320 _PUBLIC_
enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRGetDCNameInfo
*r
)
6322 if (ndr_flags
& NDR_SCALARS
) {
6323 NDR_CHECK(ndr_push_align(ndr
, 4));
6324 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_unc
));
6325 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_address
));
6326 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, r
->dc_address_type
));
6327 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6328 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_name
));
6329 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->forest_name
));
6330 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, r
->dc_flags
));
6331 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_site_name
));
6332 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client_site_name
));
6334 if (ndr_flags
& NDR_BUFFERS
) {
6336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6339 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_unc
, ndr_charset_length(r
->dc_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6341 if (r
->dc_address
) {
6342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6345 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_address
, ndr_charset_length(r
->dc_address
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6347 if (r
->domain_name
) {
6348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6350 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6351 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain_name
, ndr_charset_length(r
->domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6353 if (r
->forest_name
) {
6354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6357 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->forest_name
, ndr_charset_length(r
->forest_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6359 if (r
->dc_site_name
) {
6360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6361 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6363 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
));
6365 if (r
->client_site_name
) {
6366 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6367 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6369 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
));
6372 return NDR_ERR_SUCCESS
;
6375 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRGetDCNameInfo
*r
)
6377 uint32_t _ptr_dc_unc
;
6378 TALLOC_CTX
*_mem_save_dc_unc_0
;
6379 uint32_t _ptr_dc_address
;
6380 TALLOC_CTX
*_mem_save_dc_address_0
;
6381 uint32_t _ptr_domain_name
;
6382 TALLOC_CTX
*_mem_save_domain_name_0
;
6383 uint32_t _ptr_forest_name
;
6384 TALLOC_CTX
*_mem_save_forest_name_0
;
6385 uint32_t _ptr_dc_site_name
;
6386 TALLOC_CTX
*_mem_save_dc_site_name_0
;
6387 uint32_t _ptr_client_site_name
;
6388 TALLOC_CTX
*_mem_save_client_site_name_0
;
6389 if (ndr_flags
& NDR_SCALARS
) {
6390 NDR_CHECK(ndr_pull_align(ndr
, 4));
6391 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_unc
));
6393 NDR_PULL_ALLOC(ndr
, r
->dc_unc
);
6397 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_address
));
6398 if (_ptr_dc_address
) {
6399 NDR_PULL_ALLOC(ndr
, r
->dc_address
);
6401 r
->dc_address
= NULL
;
6403 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, &r
->dc_address_type
));
6404 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6405 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
6406 if (_ptr_domain_name
) {
6407 NDR_PULL_ALLOC(ndr
, r
->domain_name
);
6409 r
->domain_name
= NULL
;
6411 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_name
));
6412 if (_ptr_forest_name
) {
6413 NDR_PULL_ALLOC(ndr
, r
->forest_name
);
6415 r
->forest_name
= NULL
;
6417 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, &r
->dc_flags
));
6418 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_site_name
));
6419 if (_ptr_dc_site_name
) {
6420 NDR_PULL_ALLOC(ndr
, r
->dc_site_name
);
6422 r
->dc_site_name
= NULL
;
6424 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_site_name
));
6425 if (_ptr_client_site_name
) {
6426 NDR_PULL_ALLOC(ndr
, r
->client_site_name
);
6428 r
->client_site_name
= NULL
;
6431 if (ndr_flags
& NDR_BUFFERS
) {
6433 _mem_save_dc_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6434 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_unc
, 0);
6435 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_unc
));
6436 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_unc
));
6437 if (ndr_get_array_length(ndr
, &r
->dc_unc
) > ndr_get_array_size(ndr
, &r
->dc_unc
)) {
6438 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
));
6440 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t)));
6441 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_unc
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t), CH_UTF16
));
6442 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_unc_0
, 0);
6444 if (r
->dc_address
) {
6445 _mem_save_dc_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6446 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_address
, 0);
6447 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_address
));
6448 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_address
));
6449 if (ndr_get_array_length(ndr
, &r
->dc_address
) > ndr_get_array_size(ndr
, &r
->dc_address
)) {
6450 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
));
6452 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t)));
6453 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_address
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t), CH_UTF16
));
6454 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_address_0
, 0);
6456 if (r
->domain_name
) {
6457 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6458 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_name
, 0);
6459 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain_name
));
6460 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain_name
));
6461 if (ndr_get_array_length(ndr
, &r
->domain_name
) > ndr_get_array_size(ndr
, &r
->domain_name
)) {
6462 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
));
6464 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t)));
6465 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain_name
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t), CH_UTF16
));
6466 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
6468 if (r
->forest_name
) {
6469 _mem_save_forest_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6470 NDR_PULL_SET_MEM_CTX(ndr
, r
->forest_name
, 0);
6471 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->forest_name
));
6472 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->forest_name
));
6473 if (ndr_get_array_length(ndr
, &r
->forest_name
) > ndr_get_array_size(ndr
, &r
->forest_name
)) {
6474 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
));
6476 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t)));
6477 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->forest_name
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t), CH_UTF16
));
6478 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_name_0
, 0);
6480 if (r
->dc_site_name
) {
6481 _mem_save_dc_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6482 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_site_name
, 0);
6483 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_site_name
));
6484 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_site_name
));
6485 if (ndr_get_array_length(ndr
, &r
->dc_site_name
) > ndr_get_array_size(ndr
, &r
->dc_site_name
)) {
6486 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
));
6488 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_site_name
), sizeof(uint16_t)));
6489 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
));
6490 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_site_name_0
, 0);
6492 if (r
->client_site_name
) {
6493 _mem_save_client_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6494 NDR_PULL_SET_MEM_CTX(ndr
, r
->client_site_name
, 0);
6495 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client_site_name
));
6496 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client_site_name
));
6497 if (ndr_get_array_length(ndr
, &r
->client_site_name
) > ndr_get_array_size(ndr
, &r
->client_site_name
)) {
6498 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
));
6500 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client_site_name
), sizeof(uint16_t)));
6501 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
));
6502 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_site_name_0
, 0);
6505 return NDR_ERR_SUCCESS
;
6508 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRGetDCNameInfo
*r
)
6510 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameInfo");
6512 ndr_print_ptr(ndr
, "dc_unc", r
->dc_unc
);
6515 ndr_print_string(ndr
, "dc_unc", r
->dc_unc
);
6518 ndr_print_ptr(ndr
, "dc_address", r
->dc_address
);
6520 if (r
->dc_address
) {
6521 ndr_print_string(ndr
, "dc_address", r
->dc_address
);
6524 ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr
, "dc_address_type", r
->dc_address_type
);
6525 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
6526 ndr_print_ptr(ndr
, "domain_name", r
->domain_name
);
6528 if (r
->domain_name
) {
6529 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
6532 ndr_print_ptr(ndr
, "forest_name", r
->forest_name
);
6534 if (r
->forest_name
) {
6535 ndr_print_string(ndr
, "forest_name", r
->forest_name
);
6538 ndr_print_netr_DsR_DcFlags(ndr
, "dc_flags", r
->dc_flags
);
6539 ndr_print_ptr(ndr
, "dc_site_name", r
->dc_site_name
);
6541 if (r
->dc_site_name
) {
6542 ndr_print_string(ndr
, "dc_site_name", r
->dc_site_name
);
6545 ndr_print_ptr(ndr
, "client_site_name", r
->client_site_name
);
6547 if (r
->client_site_name
) {
6548 ndr_print_string(ndr
, "client_site_name", r
->client_site_name
);
6554 static enum ndr_err_code
ndr_push_netr_Capabilities(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Capabilities
*r
)
6556 if (ndr_flags
& NDR_SCALARS
) {
6557 int level
= ndr_push_get_switch_value(ndr
, r
);
6558 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6561 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->server_capabilities
));
6565 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6568 if (ndr_flags
& NDR_BUFFERS
) {
6569 int level
= ndr_push_get_switch_value(ndr
, r
);
6575 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6578 return NDR_ERR_SUCCESS
;
6581 static enum ndr_err_code
ndr_pull_netr_Capabilities(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Capabilities
*r
)
6585 level
= ndr_pull_get_switch_value(ndr
, r
);
6586 if (ndr_flags
& NDR_SCALARS
) {
6587 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6588 if (_level
!= level
) {
6589 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
6593 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, &r
->server_capabilities
));
6597 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6600 if (ndr_flags
& NDR_BUFFERS
) {
6606 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6609 return NDR_ERR_SUCCESS
;
6612 _PUBLIC_
void ndr_print_netr_Capabilities(struct ndr_print
*ndr
, const char *name
, const union netr_Capabilities
*r
)
6615 level
= ndr_print_get_switch_value(ndr
, r
);
6616 ndr_print_union(ndr
, name
, level
, "netr_Capabilities");
6619 ndr_print_netr_NegotiateFlags(ndr
, "server_capabilities", r
->server_capabilities
);
6623 ndr_print_bad_level(ndr
, name
, level
);
6627 static enum ndr_err_code
ndr_push_netr_BinaryString(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_BinaryString
*r
)
6629 uint32_t cntr_data_1
;
6631 uint32_t _flags_save_STRUCT
= ndr
->flags
;
6632 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
6633 if (ndr_flags
& NDR_SCALARS
) {
6634 NDR_CHECK(ndr_push_align(ndr
, 4));
6635 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
6636 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
6637 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
6639 if (ndr_flags
& NDR_BUFFERS
) {
6641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/ 2));
6642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
/ 2));
6644 for (cntr_data_1
= 0; cntr_data_1
< r
->length
/ 2; cntr_data_1
++) {
6645 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->data
[cntr_data_1
]));
6649 ndr
->flags
= _flags_save_STRUCT
;
6651 return NDR_ERR_SUCCESS
;
6654 static enum ndr_err_code
ndr_pull_netr_BinaryString(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_BinaryString
*r
)
6657 uint32_t cntr_data_1
;
6658 TALLOC_CTX
*_mem_save_data_0
;
6659 TALLOC_CTX
*_mem_save_data_1
;
6661 uint32_t _flags_save_STRUCT
= ndr
->flags
;
6662 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
6663 if (ndr_flags
& NDR_SCALARS
) {
6664 NDR_CHECK(ndr_pull_align(ndr
, 4));
6665 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
6666 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
6667 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6669 NDR_PULL_ALLOC(ndr
, r
->data
);
6674 if (ndr_flags
& NDR_BUFFERS
) {
6676 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6677 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6678 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6679 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
6680 if (ndr_get_array_length(ndr
, &r
->data
) > ndr_get_array_size(ndr
, &r
->data
)) {
6681 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
));
6683 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
6684 _mem_save_data_1
= NDR_PULL_GET_MEM_CTX(ndr
);
6685 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6686 for (cntr_data_1
= 0; cntr_data_1
< r
->length
/ 2; cntr_data_1
++) {
6687 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->data
[cntr_data_1
]));
6689 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_1
, 0);
6690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6693 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->size
/ 2));
6696 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->length
/ 2));
6699 ndr
->flags
= _flags_save_STRUCT
;
6701 return NDR_ERR_SUCCESS
;
6704 _PUBLIC_
void ndr_print_netr_BinaryString(struct ndr_print
*ndr
, const char *name
, const struct netr_BinaryString
*r
)
6706 uint32_t cntr_data_1
;
6707 ndr_print_struct(ndr
, name
, "netr_BinaryString");
6709 uint32_t _flags_save_STRUCT
= ndr
->flags
;
6710 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
6712 ndr_print_uint16(ndr
, "length", r
->length
);
6713 ndr_print_uint16(ndr
, "size", r
->size
);
6714 ndr_print_ptr(ndr
, "data", r
->data
);
6717 ndr
->print(ndr
, "%s: ARRAY(%d)", "data", (int)r
->length
/ 2);
6719 for (cntr_data_1
=0;cntr_data_1
<r
->length
/ 2;cntr_data_1
++) {
6721 if (asprintf(&idx_1
, "[%d]", cntr_data_1
) != -1) {
6722 ndr_print_uint16(ndr
, "data", r
->data
[cntr_data_1
]);
6730 ndr
->flags
= _flags_save_STRUCT
;
6734 static enum ndr_err_code
ndr_push_netr_DomainQuery1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainQuery1
*r
)
6736 uint32_t cntr_unknown7_0
;
6737 if (ndr_flags
& NDR_SCALARS
) {
6738 NDR_CHECK(ndr_push_align(ndr
, 4));
6739 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
, &r
->blob
));
6740 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_domain
));
6741 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_site
));
6742 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown1
));
6743 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown2
));
6744 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown3
));
6745 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown4
));
6746 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->blob2
));
6747 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->product
));
6748 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown5
));
6749 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown6
));
6750 for (cntr_unknown7_0
= 0; cntr_unknown7_0
< 4; cntr_unknown7_0
++) {
6751 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
[cntr_unknown7_0
]));
6754 if (ndr_flags
& NDR_BUFFERS
) {
6755 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_BUFFERS
, &r
->blob
));
6756 if (r
->workstation_domain
) {
6757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
)));
6758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
)));
6760 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->workstation_domain
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6762 if (r
->workstation_site
) {
6763 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_site
, CH_UTF16
)));
6764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6765 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_site
, CH_UTF16
)));
6766 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->workstation_site
, ndr_charset_length(r
->workstation_site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6769 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown1
, CH_UTF16
)));
6770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown1
, CH_UTF16
)));
6772 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown1
, ndr_charset_length(r
->unknown1
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6775 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown2
, CH_UTF16
)));
6776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6777 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown2
, CH_UTF16
)));
6778 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown2
, ndr_charset_length(r
->unknown2
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6781 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown3
, CH_UTF16
)));
6782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown3
, CH_UTF16
)));
6784 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown3
, ndr_charset_length(r
->unknown3
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown4
, CH_UTF16
)));
6788 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6789 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown4
, CH_UTF16
)));
6790 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown4
, ndr_charset_length(r
->unknown4
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6792 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->blob2
));
6793 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->product
));
6794 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown5
));
6795 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown6
));
6797 return NDR_ERR_SUCCESS
;
6800 static enum ndr_err_code
ndr_pull_netr_DomainQuery1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainQuery1
*r
)
6802 uint32_t _ptr_workstation_domain
;
6803 TALLOC_CTX
*_mem_save_workstation_domain_0
;
6804 uint32_t _ptr_workstation_site
;
6805 TALLOC_CTX
*_mem_save_workstation_site_0
;
6806 uint32_t _ptr_unknown1
;
6807 TALLOC_CTX
*_mem_save_unknown1_0
;
6808 uint32_t _ptr_unknown2
;
6809 TALLOC_CTX
*_mem_save_unknown2_0
;
6810 uint32_t _ptr_unknown3
;
6811 TALLOC_CTX
*_mem_save_unknown3_0
;
6812 uint32_t _ptr_unknown4
;
6813 TALLOC_CTX
*_mem_save_unknown4_0
;
6814 uint32_t cntr_unknown7_0
;
6815 if (ndr_flags
& NDR_SCALARS
) {
6816 NDR_CHECK(ndr_pull_align(ndr
, 4));
6817 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
, &r
->blob
));
6818 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_domain
));
6819 if (_ptr_workstation_domain
) {
6820 NDR_PULL_ALLOC(ndr
, r
->workstation_domain
);
6822 r
->workstation_domain
= NULL
;
6824 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_site
));
6825 if (_ptr_workstation_site
) {
6826 NDR_PULL_ALLOC(ndr
, r
->workstation_site
);
6828 r
->workstation_site
= NULL
;
6830 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown1
));
6831 if (_ptr_unknown1
) {
6832 NDR_PULL_ALLOC(ndr
, r
->unknown1
);
6836 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown2
));
6837 if (_ptr_unknown2
) {
6838 NDR_PULL_ALLOC(ndr
, r
->unknown2
);
6842 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown3
));
6843 if (_ptr_unknown3
) {
6844 NDR_PULL_ALLOC(ndr
, r
->unknown3
);
6848 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown4
));
6849 if (_ptr_unknown4
) {
6850 NDR_PULL_ALLOC(ndr
, r
->unknown4
);
6854 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->blob2
));
6855 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->product
));
6856 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown5
));
6857 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown6
));
6858 for (cntr_unknown7_0
= 0; cntr_unknown7_0
< 4; cntr_unknown7_0
++) {
6859 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
[cntr_unknown7_0
]));
6862 if (ndr_flags
& NDR_BUFFERS
) {
6863 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_BUFFERS
, &r
->blob
));
6864 if (r
->workstation_domain
) {
6865 _mem_save_workstation_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6866 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_domain
, 0);
6867 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->workstation_domain
));
6868 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->workstation_domain
));
6869 if (ndr_get_array_length(ndr
, &r
->workstation_domain
) > ndr_get_array_size(ndr
, &r
->workstation_domain
)) {
6870 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
));
6872 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->workstation_domain
), sizeof(uint16_t)));
6873 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->workstation_domain
, ndr_get_array_length(ndr
, &r
->workstation_domain
), sizeof(uint16_t), CH_UTF16
));
6874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_domain_0
, 0);
6876 if (r
->workstation_site
) {
6877 _mem_save_workstation_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6878 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_site
, 0);
6879 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->workstation_site
));
6880 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->workstation_site
));
6881 if (ndr_get_array_length(ndr
, &r
->workstation_site
) > ndr_get_array_size(ndr
, &r
->workstation_site
)) {
6882 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
));
6884 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->workstation_site
), sizeof(uint16_t)));
6885 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->workstation_site
, ndr_get_array_length(ndr
, &r
->workstation_site
), sizeof(uint16_t), CH_UTF16
));
6886 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_site_0
, 0);
6889 _mem_save_unknown1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6890 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown1
, 0);
6891 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown1
));
6892 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown1
));
6893 if (ndr_get_array_length(ndr
, &r
->unknown1
) > ndr_get_array_size(ndr
, &r
->unknown1
)) {
6894 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
));
6896 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown1
), sizeof(uint16_t)));
6897 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown1
, ndr_get_array_length(ndr
, &r
->unknown1
), sizeof(uint16_t), CH_UTF16
));
6898 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown1_0
, 0);
6901 _mem_save_unknown2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6902 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown2
, 0);
6903 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown2
));
6904 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown2
));
6905 if (ndr_get_array_length(ndr
, &r
->unknown2
) > ndr_get_array_size(ndr
, &r
->unknown2
)) {
6906 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
));
6908 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown2
), sizeof(uint16_t)));
6909 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown2
, ndr_get_array_length(ndr
, &r
->unknown2
), sizeof(uint16_t), CH_UTF16
));
6910 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown2_0
, 0);
6913 _mem_save_unknown3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6914 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown3
, 0);
6915 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown3
));
6916 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown3
));
6917 if (ndr_get_array_length(ndr
, &r
->unknown3
) > ndr_get_array_size(ndr
, &r
->unknown3
)) {
6918 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
));
6920 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown3
), sizeof(uint16_t)));
6921 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown3
, ndr_get_array_length(ndr
, &r
->unknown3
), sizeof(uint16_t), CH_UTF16
));
6922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown3_0
, 0);
6925 _mem_save_unknown4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6926 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown4
, 0);
6927 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown4
));
6928 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown4
));
6929 if (ndr_get_array_length(ndr
, &r
->unknown4
) > ndr_get_array_size(ndr
, &r
->unknown4
)) {
6930 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
));
6932 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown4
), sizeof(uint16_t)));
6933 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown4
, ndr_get_array_length(ndr
, &r
->unknown4
), sizeof(uint16_t), CH_UTF16
));
6934 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown4_0
, 0);
6936 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->blob2
));
6937 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->product
));
6938 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown5
));
6939 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown6
));
6941 return NDR_ERR_SUCCESS
;
6944 _PUBLIC_
void ndr_print_netr_DomainQuery1(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainQuery1
*r
)
6946 uint32_t cntr_unknown7_0
;
6947 ndr_print_struct(ndr
, name
, "netr_DomainQuery1");
6949 ndr_print_netr_Blob(ndr
, "blob", &r
->blob
);
6950 ndr_print_ptr(ndr
, "workstation_domain", r
->workstation_domain
);
6952 if (r
->workstation_domain
) {
6953 ndr_print_string(ndr
, "workstation_domain", r
->workstation_domain
);
6956 ndr_print_ptr(ndr
, "workstation_site", r
->workstation_site
);
6958 if (r
->workstation_site
) {
6959 ndr_print_string(ndr
, "workstation_site", r
->workstation_site
);
6962 ndr_print_ptr(ndr
, "unknown1", r
->unknown1
);
6965 ndr_print_string(ndr
, "unknown1", r
->unknown1
);
6968 ndr_print_ptr(ndr
, "unknown2", r
->unknown2
);
6971 ndr_print_string(ndr
, "unknown2", r
->unknown2
);
6974 ndr_print_ptr(ndr
, "unknown3", r
->unknown3
);
6977 ndr_print_string(ndr
, "unknown3", r
->unknown3
);
6980 ndr_print_ptr(ndr
, "unknown4", r
->unknown4
);
6983 ndr_print_string(ndr
, "unknown4", r
->unknown4
);
6986 ndr_print_netr_BinaryString(ndr
, "blob2", &r
->blob2
);
6987 ndr_print_lsa_String(ndr
, "product", &r
->product
);
6988 ndr_print_lsa_String(ndr
, "unknown5", &r
->unknown5
);
6989 ndr_print_lsa_String(ndr
, "unknown6", &r
->unknown6
);
6990 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown7", (int)4);
6992 for (cntr_unknown7_0
=0;cntr_unknown7_0
<4;cntr_unknown7_0
++) {
6994 if (asprintf(&idx_0
, "[%d]", cntr_unknown7_0
) != -1) {
6995 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
[cntr_unknown7_0
]);
7003 static enum ndr_err_code
ndr_push_netr_DomainQuery(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainQuery
*r
)
7005 if (ndr_flags
& NDR_SCALARS
) {
7006 int level
= ndr_push_get_switch_value(ndr
, r
);
7007 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7010 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->query1
));
7014 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->query1
));
7018 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7021 if (ndr_flags
& NDR_BUFFERS
) {
7022 int level
= ndr_push_get_switch_value(ndr
, r
);
7026 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
7032 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
7037 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7040 return NDR_ERR_SUCCESS
;
7043 static enum ndr_err_code
ndr_pull_netr_DomainQuery(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainQuery
*r
)
7047 TALLOC_CTX
*_mem_save_query1_0
;
7048 level
= ndr_pull_get_switch_value(ndr
, r
);
7049 if (ndr_flags
& NDR_SCALARS
) {
7050 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7051 if (_level
!= level
) {
7052 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
7056 uint32_t _ptr_query1
;
7057 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_query1
));
7059 NDR_PULL_ALLOC(ndr
, r
->query1
);
7066 uint32_t _ptr_query1
;
7067 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_query1
));
7069 NDR_PULL_ALLOC(ndr
, r
->query1
);
7076 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7079 if (ndr_flags
& NDR_BUFFERS
) {
7083 _mem_save_query1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7084 NDR_PULL_SET_MEM_CTX(ndr
, r
->query1
, 0);
7085 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
7086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query1_0
, 0);
7092 _mem_save_query1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7093 NDR_PULL_SET_MEM_CTX(ndr
, r
->query1
, 0);
7094 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
7095 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query1_0
, 0);
7100 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7103 return NDR_ERR_SUCCESS
;
7106 _PUBLIC_
void ndr_print_netr_DomainQuery(struct ndr_print
*ndr
, const char *name
, const union netr_DomainQuery
*r
)
7109 level
= ndr_print_get_switch_value(ndr
, r
);
7110 ndr_print_union(ndr
, name
, level
, "netr_DomainQuery");
7113 ndr_print_ptr(ndr
, "query1", r
->query1
);
7116 ndr_print_netr_DomainQuery1(ndr
, "query1", r
->query1
);
7122 ndr_print_ptr(ndr
, "query1", r
->query1
);
7125 ndr_print_netr_DomainQuery1(ndr
, "query1", r
->query1
);
7131 ndr_print_bad_level(ndr
, name
, level
);
7135 static enum ndr_err_code
ndr_push_netr_DomainTrustInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustInfo
*r
)
7137 uint32_t cntr_unknown1_0
;
7138 uint32_t cntr_unknown_0
;
7139 if (ndr_flags
& NDR_SCALARS
) {
7140 NDR_CHECK(ndr_push_align(ndr
, 4));
7141 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
7142 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->fulldomainname
));
7143 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
7144 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7145 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
7146 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
7147 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->unknown1
[cntr_unknown1_0
]));
7149 for (cntr_unknown_0
= 0; cntr_unknown_0
< 4; cntr_unknown_0
++) {
7150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
7153 if (ndr_flags
& NDR_BUFFERS
) {
7154 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
7155 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->fulldomainname
));
7156 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
7158 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7160 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
7161 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->unknown1
[cntr_unknown1_0
]));
7164 return NDR_ERR_SUCCESS
;
7167 static enum ndr_err_code
ndr_pull_netr_DomainTrustInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustInfo
*r
)
7170 TALLOC_CTX
*_mem_save_sid_0
;
7171 uint32_t cntr_unknown1_0
;
7172 uint32_t cntr_unknown_0
;
7173 if (ndr_flags
& NDR_SCALARS
) {
7174 NDR_CHECK(ndr_pull_align(ndr
, 4));
7175 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
7176 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->fulldomainname
));
7177 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
7178 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7179 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
7181 NDR_PULL_ALLOC(ndr
, r
->sid
);
7185 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
7186 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->unknown1
[cntr_unknown1_0
]));
7188 for (cntr_unknown_0
= 0; cntr_unknown_0
< 4; cntr_unknown_0
++) {
7189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
7192 if (ndr_flags
& NDR_BUFFERS
) {
7193 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
7194 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->fulldomainname
));
7195 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
7197 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7198 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
7199 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7200 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
7202 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
7203 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->unknown1
[cntr_unknown1_0
]));
7206 return NDR_ERR_SUCCESS
;
7209 _PUBLIC_
void ndr_print_netr_DomainTrustInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustInfo
*r
)
7211 uint32_t cntr_unknown1_0
;
7212 uint32_t cntr_unknown_0
;
7213 ndr_print_struct(ndr
, name
, "netr_DomainTrustInfo");
7215 ndr_print_lsa_String(ndr
, "domainname", &r
->domainname
);
7216 ndr_print_lsa_String(ndr
, "fulldomainname", &r
->fulldomainname
);
7217 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
7218 ndr_print_GUID(ndr
, "guid", &r
->guid
);
7219 ndr_print_ptr(ndr
, "sid", r
->sid
);
7222 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
7225 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown1", (int)4);
7227 for (cntr_unknown1_0
=0;cntr_unknown1_0
<4;cntr_unknown1_0
++) {
7229 if (asprintf(&idx_0
, "[%d]", cntr_unknown1_0
) != -1) {
7230 ndr_print_netr_BinaryString(ndr
, "unknown1", &r
->unknown1
[cntr_unknown1_0
]);
7235 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", (int)4);
7237 for (cntr_unknown_0
=0;cntr_unknown_0
<4;cntr_unknown_0
++) {
7239 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
7240 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
7248 static enum ndr_err_code
ndr_push_netr_DomainInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainInfo1
*r
)
7250 uint32_t cntr_trusts_1
;
7251 uint32_t cntr_unknown_0
;
7252 if (ndr_flags
& NDR_SCALARS
) {
7253 NDR_CHECK(ndr_push_align(ndr
, 4));
7254 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->domaininfo
));
7255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_trusts
));
7256 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusts
));
7257 for (cntr_unknown_0
= 0; cntr_unknown_0
< 14; cntr_unknown_0
++) {
7258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
7261 if (ndr_flags
& NDR_BUFFERS
) {
7262 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->domaininfo
));
7264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_trusts
));
7265 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
7266 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->trusts
[cntr_trusts_1
]));
7268 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
7269 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->trusts
[cntr_trusts_1
]));
7273 return NDR_ERR_SUCCESS
;
7276 static enum ndr_err_code
ndr_pull_netr_DomainInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainInfo1
*r
)
7278 uint32_t _ptr_trusts
;
7279 uint32_t cntr_trusts_1
;
7280 TALLOC_CTX
*_mem_save_trusts_0
;
7281 TALLOC_CTX
*_mem_save_trusts_1
;
7282 uint32_t cntr_unknown_0
;
7283 if (ndr_flags
& NDR_SCALARS
) {
7284 NDR_CHECK(ndr_pull_align(ndr
, 4));
7285 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->domaininfo
));
7286 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_trusts
));
7287 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusts
));
7289 NDR_PULL_ALLOC(ndr
, r
->trusts
);
7293 for (cntr_unknown_0
= 0; cntr_unknown_0
< 14; cntr_unknown_0
++) {
7294 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
7297 if (ndr_flags
& NDR_BUFFERS
) {
7298 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->domaininfo
));
7300 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7301 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusts
, 0);
7302 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusts
));
7303 NDR_PULL_ALLOC_N(ndr
, r
->trusts
, ndr_get_array_size(ndr
, &r
->trusts
));
7304 _mem_save_trusts_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7305 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusts
, 0);
7306 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
7307 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->trusts
[cntr_trusts_1
]));
7309 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
7310 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->trusts
[cntr_trusts_1
]));
7312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_1
, 0);
7313 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, 0);
7316 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->trusts
, r
->num_trusts
));
7319 return NDR_ERR_SUCCESS
;
7322 _PUBLIC_
void ndr_print_netr_DomainInfo1(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainInfo1
*r
)
7324 uint32_t cntr_trusts_1
;
7325 uint32_t cntr_unknown_0
;
7326 ndr_print_struct(ndr
, name
, "netr_DomainInfo1");
7328 ndr_print_netr_DomainTrustInfo(ndr
, "domaininfo", &r
->domaininfo
);
7329 ndr_print_uint32(ndr
, "num_trusts", r
->num_trusts
);
7330 ndr_print_ptr(ndr
, "trusts", r
->trusts
);
7333 ndr
->print(ndr
, "%s: ARRAY(%d)", "trusts", (int)r
->num_trusts
);
7335 for (cntr_trusts_1
=0;cntr_trusts_1
<r
->num_trusts
;cntr_trusts_1
++) {
7337 if (asprintf(&idx_1
, "[%d]", cntr_trusts_1
) != -1) {
7338 ndr_print_netr_DomainTrustInfo(ndr
, "trusts", &r
->trusts
[cntr_trusts_1
]);
7345 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", (int)14);
7347 for (cntr_unknown_0
=0;cntr_unknown_0
<14;cntr_unknown_0
++) {
7349 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
7350 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
7358 static enum ndr_err_code
ndr_push_netr_DomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainInfo
*r
)
7360 if (ndr_flags
& NDR_SCALARS
) {
7361 int level
= ndr_push_get_switch_value(ndr
, r
);
7362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7365 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7369 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7373 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7376 if (ndr_flags
& NDR_BUFFERS
) {
7377 int level
= ndr_push_get_switch_value(ndr
, r
);
7381 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7387 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7392 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7395 return NDR_ERR_SUCCESS
;
7398 static enum ndr_err_code
ndr_pull_netr_DomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainInfo
*r
)
7402 TALLOC_CTX
*_mem_save_info1_0
;
7403 level
= ndr_pull_get_switch_value(ndr
, r
);
7404 if (ndr_flags
& NDR_SCALARS
) {
7405 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7406 if (_level
!= level
) {
7407 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
7411 uint32_t _ptr_info1
;
7412 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7414 NDR_PULL_ALLOC(ndr
, r
->info1
);
7421 uint32_t _ptr_info1
;
7422 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7424 NDR_PULL_ALLOC(ndr
, r
->info1
);
7431 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7434 if (ndr_flags
& NDR_BUFFERS
) {
7438 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7439 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7440 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7441 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7447 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7448 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7449 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7455 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7458 return NDR_ERR_SUCCESS
;
7461 _PUBLIC_
void ndr_print_netr_DomainInfo(struct ndr_print
*ndr
, const char *name
, const union netr_DomainInfo
*r
)
7464 level
= ndr_print_get_switch_value(ndr
, r
);
7465 ndr_print_union(ndr
, name
, level
, "netr_DomainInfo");
7468 ndr_print_ptr(ndr
, "info1", r
->info1
);
7471 ndr_print_netr_DomainInfo1(ndr
, "info1", r
->info1
);
7477 ndr_print_ptr(ndr
, "info1", r
->info1
);
7480 ndr_print_netr_DomainInfo1(ndr
, "info1", r
->info1
);
7486 ndr_print_bad_level(ndr
, name
, level
);
7490 static enum ndr_err_code
ndr_push_netr_CryptPassword(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CryptPassword
*r
)
7493 uint32_t _flags_save_STRUCT
= ndr
->flags
;
7494 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
7495 if (ndr_flags
& NDR_SCALARS
) {
7496 NDR_CHECK(ndr_push_align(ndr
, 4));
7497 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
7498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
7500 if (ndr_flags
& NDR_BUFFERS
) {
7502 ndr
->flags
= _flags_save_STRUCT
;
7504 return NDR_ERR_SUCCESS
;
7507 static enum ndr_err_code
ndr_pull_netr_CryptPassword(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CryptPassword
*r
)
7510 uint32_t _flags_save_STRUCT
= ndr
->flags
;
7511 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
7512 if (ndr_flags
& NDR_SCALARS
) {
7513 NDR_CHECK(ndr_pull_align(ndr
, 4));
7514 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
7515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7517 if (ndr_flags
& NDR_BUFFERS
) {
7519 ndr
->flags
= _flags_save_STRUCT
;
7521 return NDR_ERR_SUCCESS
;
7524 _PUBLIC_
void ndr_print_netr_CryptPassword(struct ndr_print
*ndr
, const char *name
, const struct netr_CryptPassword
*r
)
7526 ndr_print_struct(ndr
, name
, "netr_CryptPassword");
7528 uint32_t _flags_save_STRUCT
= ndr
->flags
;
7529 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
7531 ndr_print_array_uint8(ndr
, "data", r
->data
, 512);
7532 ndr_print_uint32(ndr
, "length", r
->length
);
7534 ndr
->flags
= _flags_save_STRUCT
;
7538 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
7540 uint32_t cntr_sitename_1
;
7541 if (ndr_flags
& NDR_SCALARS
) {
7542 NDR_CHECK(ndr_push_align(ndr
, 4));
7543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7544 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
7546 if (ndr_flags
& NDR_BUFFERS
) {
7548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7549 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7550 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
7552 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7553 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
7557 return NDR_ERR_SUCCESS
;
7560 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesWCtr
*r
)
7562 uint32_t _ptr_sitename
;
7563 uint32_t cntr_sitename_1
;
7564 TALLOC_CTX
*_mem_save_sitename_0
;
7565 TALLOC_CTX
*_mem_save_sitename_1
;
7566 if (ndr_flags
& NDR_SCALARS
) {
7567 NDR_CHECK(ndr_pull_align(ndr
, 4));
7568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
7569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
7570 if (_ptr_sitename
) {
7571 NDR_PULL_ALLOC(ndr
, r
->sitename
);
7576 if (ndr_flags
& NDR_BUFFERS
) {
7578 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7579 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
7580 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
7581 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
7582 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7583 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
7584 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7585 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
7587 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7588 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
7590 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
7591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
7594 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
7597 return NDR_ERR_SUCCESS
;
7600 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
7602 uint32_t cntr_sitename_1
;
7603 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesWCtr");
7605 ndr_print_uint32(ndr
, "count", r
->count
);
7606 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
7609 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
7611 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
7613 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
7614 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
7624 static enum ndr_err_code
ndr_push_netr_DsRAddress(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddress
*r
)
7626 if (ndr_flags
& NDR_SCALARS
) {
7627 NDR_CHECK(ndr_push_align(ndr
, 4));
7628 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->buffer
));
7629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
7631 if (ndr_flags
& NDR_BUFFERS
) {
7633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
7634 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, r
->size
));
7637 return NDR_ERR_SUCCESS
;
7640 static enum ndr_err_code
ndr_pull_netr_DsRAddress(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddress
*r
)
7642 uint32_t _ptr_buffer
;
7643 TALLOC_CTX
*_mem_save_buffer_0
;
7644 if (ndr_flags
& NDR_SCALARS
) {
7645 NDR_CHECK(ndr_pull_align(ndr
, 4));
7646 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
7648 NDR_PULL_ALLOC(ndr
, r
->buffer
);
7652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
7654 if (ndr_flags
& NDR_BUFFERS
) {
7656 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7657 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffer
, 0);
7658 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->buffer
));
7659 NDR_PULL_ALLOC_N(ndr
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
));
7660 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
)));
7661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
7664 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->buffer
, r
->size
));
7667 return NDR_ERR_SUCCESS
;
7670 _PUBLIC_
void ndr_print_netr_DsRAddress(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddress
*r
)
7672 ndr_print_struct(ndr
, name
, "netr_DsRAddress");
7674 ndr_print_ptr(ndr
, "buffer", r
->buffer
);
7677 ndr_print_array_uint8(ndr
, "buffer", r
->buffer
, r
->size
);
7680 ndr_print_uint32(ndr
, "size", r
->size
);
7684 static enum ndr_err_code
ndr_push_netr_TrustFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7687 return NDR_ERR_SUCCESS
;
7690 static enum ndr_err_code
ndr_pull_netr_TrustFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7693 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7695 return NDR_ERR_SUCCESS
;
7698 _PUBLIC_
void ndr_print_netr_TrustFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7700 ndr_print_uint32(ndr
, name
, r
);
7702 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST
, r
);
7703 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND
, r
);
7704 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT
, r
);
7705 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY
, r
);
7706 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE
, r
);
7707 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND
, r
);
7711 static enum ndr_err_code
ndr_push_netr_TrustType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_TrustType r
)
7713 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7714 return NDR_ERR_SUCCESS
;
7717 static enum ndr_err_code
ndr_pull_netr_TrustType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_TrustType
*r
)
7720 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7722 return NDR_ERR_SUCCESS
;
7725 _PUBLIC_
void ndr_print_netr_TrustType(struct ndr_print
*ndr
, const char *name
, enum netr_TrustType r
)
7727 const char *val
= NULL
;
7730 case NETR_TRUST_TYPE_DOWNLEVEL
: val
= "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7731 case NETR_TRUST_TYPE_UPLEVEL
: val
= "NETR_TRUST_TYPE_UPLEVEL"; break;
7732 case NETR_TRUST_TYPE_MIT
: val
= "NETR_TRUST_TYPE_MIT"; break;
7733 case NETR_TRUST_TYPE_DCE
: val
= "NETR_TRUST_TYPE_DCE"; break;
7735 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
7738 static enum ndr_err_code
ndr_push_netr_TrustAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7741 return NDR_ERR_SUCCESS
;
7744 static enum ndr_err_code
ndr_pull_netr_TrustAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7747 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7749 return NDR_ERR_SUCCESS
;
7752 _PUBLIC_
void ndr_print_netr_TrustAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7754 ndr_print_uint32(ndr
, name
, r
);
7756 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE
, r
);
7757 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY
, r
);
7758 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN
, r
);
7759 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE
, r
);
7760 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION
, r
);
7761 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST
, r
);
7762 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL
, r
);
7766 static enum ndr_err_code
ndr_push_netr_DomainTrust(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrust
*r
)
7768 if (ndr_flags
& NDR_SCALARS
) {
7769 NDR_CHECK(ndr_push_align(ndr
, 4));
7770 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
7771 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
7772 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->trust_flags
));
7773 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
7774 NDR_CHECK(ndr_push_netr_TrustType(ndr
, NDR_SCALARS
, r
->trust_type
));
7775 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr
, NDR_SCALARS
, r
->trust_attributes
));
7776 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
7777 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7779 if (ndr_flags
& NDR_BUFFERS
) {
7780 if (r
->netbios_name
) {
7781 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
7782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
7784 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
7788 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7789 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
7790 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7793 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7796 return NDR_ERR_SUCCESS
;
7799 static enum ndr_err_code
ndr_pull_netr_DomainTrust(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrust
*r
)
7801 uint32_t _ptr_netbios_name
;
7802 TALLOC_CTX
*_mem_save_netbios_name_0
;
7803 uint32_t _ptr_dns_name
;
7804 TALLOC_CTX
*_mem_save_dns_name_0
;
7806 TALLOC_CTX
*_mem_save_sid_0
;
7807 if (ndr_flags
& NDR_SCALARS
) {
7808 NDR_CHECK(ndr_pull_align(ndr
, 4));
7809 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
7810 if (_ptr_netbios_name
) {
7811 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
7813 r
->netbios_name
= NULL
;
7815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
7816 if (_ptr_dns_name
) {
7817 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
7821 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->trust_flags
));
7822 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
7823 NDR_CHECK(ndr_pull_netr_TrustType(ndr
, NDR_SCALARS
, &r
->trust_type
));
7824 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
7825 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
7827 NDR_PULL_ALLOC(ndr
, r
->sid
);
7831 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7833 if (ndr_flags
& NDR_BUFFERS
) {
7834 if (r
->netbios_name
) {
7835 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7836 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
7837 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
7838 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
7839 if (ndr_get_array_length(ndr
, &r
->netbios_name
) > ndr_get_array_size(ndr
, &r
->netbios_name
)) {
7840 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
));
7842 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t)));
7843 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t), CH_UTF16
));
7844 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
7847 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7848 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
7849 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
7850 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
7851 if (ndr_get_array_length(ndr
, &r
->dns_name
) > ndr_get_array_size(ndr
, &r
->dns_name
)) {
7852 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
));
7854 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t)));
7855 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t), CH_UTF16
));
7856 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
7859 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7860 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
7861 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7862 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
7865 return NDR_ERR_SUCCESS
;
7868 _PUBLIC_
void ndr_print_netr_DomainTrust(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrust
*r
)
7870 ndr_print_struct(ndr
, name
, "netr_DomainTrust");
7872 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
7874 if (r
->netbios_name
) {
7875 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
7878 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
7881 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
7884 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->trust_flags
);
7885 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
7886 ndr_print_netr_TrustType(ndr
, "trust_type", r
->trust_type
);
7887 ndr_print_netr_TrustAttributes(ndr
, "trust_attributes", r
->trust_attributes
);
7888 ndr_print_ptr(ndr
, "sid", r
->sid
);
7891 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
7894 ndr_print_GUID(ndr
, "guid", &r
->guid
);
7898 static enum ndr_err_code
ndr_push_netr_DomainTrustList(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustList
*r
)
7900 uint32_t cntr_array_1
;
7901 if (ndr_flags
& NDR_SCALARS
) {
7902 NDR_CHECK(ndr_push_align(ndr
, 4));
7903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7904 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
7906 if (ndr_flags
& NDR_BUFFERS
) {
7908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7909 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7910 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
7912 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7913 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
7917 return NDR_ERR_SUCCESS
;
7920 static enum ndr_err_code
ndr_pull_netr_DomainTrustList(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustList
*r
)
7922 uint32_t _ptr_array
;
7923 uint32_t cntr_array_1
;
7924 TALLOC_CTX
*_mem_save_array_0
;
7925 TALLOC_CTX
*_mem_save_array_1
;
7926 if (ndr_flags
& NDR_SCALARS
) {
7927 NDR_CHECK(ndr_pull_align(ndr
, 4));
7928 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
7929 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
7931 NDR_PULL_ALLOC(ndr
, r
->array
);
7936 if (ndr_flags
& NDR_BUFFERS
) {
7938 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7939 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
7940 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
7941 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
7942 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7943 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
7944 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7945 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
7947 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7948 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
7950 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
7951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
7954 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
7957 return NDR_ERR_SUCCESS
;
7960 _PUBLIC_
void ndr_print_netr_DomainTrustList(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustList
*r
)
7962 uint32_t cntr_array_1
;
7963 ndr_print_struct(ndr
, name
, "netr_DomainTrustList");
7965 ndr_print_uint32(ndr
, "count", r
->count
);
7966 ndr_print_ptr(ndr
, "array", r
->array
);
7969 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
7971 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
7973 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
7974 ndr_print_netr_DomainTrust(ndr
, "array", &r
->array
[cntr_array_1
]);
7984 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
7986 uint32_t cntr_sitename_1
;
7987 uint32_t cntr_subnetname_1
;
7988 if (ndr_flags
& NDR_SCALARS
) {
7989 NDR_CHECK(ndr_push_align(ndr
, 4));
7990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7991 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
7992 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->subnetname
));
7994 if (ndr_flags
& NDR_BUFFERS
) {
7996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7997 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7998 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8000 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8001 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8004 if (r
->subnetname
) {
8005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8006 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8007 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
8009 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8010 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
8014 return NDR_ERR_SUCCESS
;
8017 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesExWCtr
*r
)
8019 uint32_t _ptr_sitename
;
8020 uint32_t cntr_sitename_1
;
8021 TALLOC_CTX
*_mem_save_sitename_0
;
8022 TALLOC_CTX
*_mem_save_sitename_1
;
8023 uint32_t _ptr_subnetname
;
8024 uint32_t cntr_subnetname_1
;
8025 TALLOC_CTX
*_mem_save_subnetname_0
;
8026 TALLOC_CTX
*_mem_save_subnetname_1
;
8027 if (ndr_flags
& NDR_SCALARS
) {
8028 NDR_CHECK(ndr_pull_align(ndr
, 4));
8029 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8030 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8031 if (_ptr_sitename
) {
8032 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8036 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_subnetname
));
8037 if (_ptr_subnetname
) {
8038 NDR_PULL_ALLOC(ndr
, r
->subnetname
);
8040 r
->subnetname
= NULL
;
8043 if (ndr_flags
& NDR_BUFFERS
) {
8045 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8046 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8047 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
8048 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
8049 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8050 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8051 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8052 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8054 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8055 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8057 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
8058 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
8060 if (r
->subnetname
) {
8061 _mem_save_subnetname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8062 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
8063 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->subnetname
));
8064 NDR_PULL_ALLOC_N(ndr
, r
->subnetname
, ndr_get_array_size(ndr
, &r
->subnetname
));
8065 _mem_save_subnetname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8066 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
8067 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8068 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
8070 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8071 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
8073 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_1
, 0);
8074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_0
, 0);
8077 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
8079 if (r
->subnetname
) {
8080 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->subnetname
, r
->count
));
8083 return NDR_ERR_SUCCESS
;
8086 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
8088 uint32_t cntr_sitename_1
;
8089 uint32_t cntr_subnetname_1
;
8090 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExWCtr");
8092 ndr_print_uint32(ndr
, "count", r
->count
);
8093 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
8096 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
8098 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
8100 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
8101 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
8108 ndr_print_ptr(ndr
, "subnetname", r
->subnetname
);
8110 if (r
->subnetname
) {
8111 ndr
->print(ndr
, "%s: ARRAY(%d)", "subnetname", (int)r
->count
);
8113 for (cntr_subnetname_1
=0;cntr_subnetname_1
<r
->count
;cntr_subnetname_1
++) {
8115 if (asprintf(&idx_1
, "[%d]", cntr_subnetname_1
) != -1) {
8116 ndr_print_lsa_String(ndr
, "subnetname", &r
->subnetname
[cntr_subnetname_1
]);
8126 static enum ndr_err_code
ndr_push_DcSitesCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct DcSitesCtr
*r
)
8128 uint32_t cntr_sites_1
;
8129 if (ndr_flags
& NDR_SCALARS
) {
8130 NDR_CHECK(ndr_push_align(ndr
, 4));
8131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
8132 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sites
));
8134 if (ndr_flags
& NDR_BUFFERS
) {
8136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
8137 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
8138 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
8140 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
8141 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
8145 return NDR_ERR_SUCCESS
;
8148 static enum ndr_err_code
ndr_pull_DcSitesCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct DcSitesCtr
*r
)
8150 uint32_t _ptr_sites
;
8151 uint32_t cntr_sites_1
;
8152 TALLOC_CTX
*_mem_save_sites_0
;
8153 TALLOC_CTX
*_mem_save_sites_1
;
8154 if (ndr_flags
& NDR_SCALARS
) {
8155 NDR_CHECK(ndr_pull_align(ndr
, 4));
8156 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_sites
));
8157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sites
));
8159 NDR_PULL_ALLOC(ndr
, r
->sites
);
8164 if (ndr_flags
& NDR_BUFFERS
) {
8166 _mem_save_sites_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8167 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
8168 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sites
));
8169 NDR_PULL_ALLOC_N(ndr
, r
->sites
, ndr_get_array_size(ndr
, &r
->sites
));
8170 _mem_save_sites_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8171 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
8172 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
8173 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
8175 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
8176 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
8178 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_1
, 0);
8179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_0
, 0);
8182 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sites
, r
->num_sites
));
8185 return NDR_ERR_SUCCESS
;
8188 _PUBLIC_
void ndr_print_DcSitesCtr(struct ndr_print
*ndr
, const char *name
, const struct DcSitesCtr
*r
)
8190 uint32_t cntr_sites_1
;
8191 ndr_print_struct(ndr
, name
, "DcSitesCtr");
8193 ndr_print_uint32(ndr
, "num_sites", r
->num_sites
);
8194 ndr_print_ptr(ndr
, "sites", r
->sites
);
8197 ndr
->print(ndr
, "%s: ARRAY(%d)", "sites", (int)r
->num_sites
);
8199 for (cntr_sites_1
=0;cntr_sites_1
<r
->num_sites
;cntr_sites_1
++) {
8201 if (asprintf(&idx_1
, "[%d]", cntr_sites_1
) != -1) {
8202 ndr_print_lsa_String(ndr
, "sites", &r
->sites
[cntr_sites_1
]);
8212 static enum ndr_err_code
ndr_push_netr_LogonUasLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogon
*r
)
8214 if (flags
& NDR_IN
) {
8215 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8216 if (r
->in
.server_name
) {
8217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8218 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8220 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
));
8222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8223 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8224 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8225 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
));
8226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
8227 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8228 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
8229 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8231 if (flags
& NDR_OUT
) {
8232 if (r
->out
.info
== NULL
) {
8233 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8235 NDR_CHECK(ndr_push_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
8236 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
8238 return NDR_ERR_SUCCESS
;
8241 static enum ndr_err_code
ndr_pull_netr_LogonUasLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogon
*r
)
8243 uint32_t _ptr_server_name
;
8244 TALLOC_CTX
*_mem_save_server_name_0
;
8245 TALLOC_CTX
*_mem_save_info_0
;
8246 if (flags
& NDR_IN
) {
8247 ZERO_STRUCT(r
->out
);
8249 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8250 if (_ptr_server_name
) {
8251 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8253 r
->in
.server_name
= NULL
;
8255 if (r
->in
.server_name
) {
8256 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8257 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8258 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8259 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8260 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8261 return 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
));
8263 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8264 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
));
8265 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8267 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
8268 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
8269 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
8270 return 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
));
8272 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
8273 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
));
8274 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
8275 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
8276 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
8277 return 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
));
8279 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
8280 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
8281 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8282 ZERO_STRUCTP(r
->out
.info
);
8284 if (flags
& NDR_OUT
) {
8285 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8286 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8288 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8289 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
8290 NDR_CHECK(ndr_pull_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
8291 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
8292 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
8294 return NDR_ERR_SUCCESS
;
8297 _PUBLIC_
void ndr_print_netr_LogonUasLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogon
*r
)
8299 ndr_print_struct(ndr
, name
, "netr_LogonUasLogon");
8301 if (flags
& NDR_SET_VALUES
) {
8302 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8304 if (flags
& NDR_IN
) {
8305 ndr_print_struct(ndr
, "in", "netr_LogonUasLogon");
8307 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8309 if (r
->in
.server_name
) {
8310 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8313 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
8314 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
8317 if (flags
& NDR_OUT
) {
8318 ndr_print_struct(ndr
, "out", "netr_LogonUasLogon");
8320 ndr_print_ptr(ndr
, "info", r
->out
.info
);
8322 ndr_print_netr_UasInfo(ndr
, "info", r
->out
.info
);
8324 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
8330 static enum ndr_err_code
ndr_push_netr_LogonUasLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogoff
*r
)
8332 if (flags
& NDR_IN
) {
8333 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8334 if (r
->in
.server_name
) {
8335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8338 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
));
8340 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8343 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
));
8344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
8345 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8346 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
8347 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8349 if (flags
& NDR_OUT
) {
8350 if (r
->out
.info
== NULL
) {
8351 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8353 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
8354 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
8356 return NDR_ERR_SUCCESS
;
8359 static enum ndr_err_code
ndr_pull_netr_LogonUasLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogoff
*r
)
8361 uint32_t _ptr_server_name
;
8362 TALLOC_CTX
*_mem_save_server_name_0
;
8363 TALLOC_CTX
*_mem_save_info_0
;
8364 if (flags
& NDR_IN
) {
8365 ZERO_STRUCT(r
->out
);
8367 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8368 if (_ptr_server_name
) {
8369 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8371 r
->in
.server_name
= NULL
;
8373 if (r
->in
.server_name
) {
8374 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8375 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8376 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8377 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8378 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8379 return 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
));
8381 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8382 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
));
8383 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8385 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
8386 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
8387 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
8388 return 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
));
8390 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
8391 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
));
8392 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
8393 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
8394 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
8395 return 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
));
8397 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
8398 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
8399 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8400 ZERO_STRUCTP(r
->out
.info
);
8402 if (flags
& NDR_OUT
) {
8403 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8404 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8406 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8407 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
8408 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
8409 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
8410 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
8412 return NDR_ERR_SUCCESS
;
8415 _PUBLIC_
void ndr_print_netr_LogonUasLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogoff
*r
)
8417 ndr_print_struct(ndr
, name
, "netr_LogonUasLogoff");
8419 if (flags
& NDR_SET_VALUES
) {
8420 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8422 if (flags
& NDR_IN
) {
8423 ndr_print_struct(ndr
, "in", "netr_LogonUasLogoff");
8425 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8427 if (r
->in
.server_name
) {
8428 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8431 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
8432 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
8435 if (flags
& NDR_OUT
) {
8436 ndr_print_struct(ndr
, "out", "netr_LogonUasLogoff");
8438 ndr_print_ptr(ndr
, "info", r
->out
.info
);
8440 ndr_print_netr_UasLogoffInfo(ndr
, "info", r
->out
.info
);
8442 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
8448 static enum ndr_err_code
ndr_push_netr_LogonSamLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogon
*r
)
8450 if (flags
& NDR_IN
) {
8451 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8452 if (r
->in
.server_name
) {
8453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8456 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
));
8458 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
8459 if (r
->in
.computer_name
) {
8460 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8463 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
));
8465 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
8466 if (r
->in
.credential
) {
8467 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
8469 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
8470 if (r
->in
.return_authenticator
) {
8471 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8473 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
8474 if (r
->in
.logon
== NULL
) {
8475 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8477 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
8478 NDR_CHECK(ndr_push_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
8479 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
8481 if (flags
& NDR_OUT
) {
8482 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
8483 if (r
->out
.return_authenticator
) {
8484 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8486 if (r
->out
.validation
== NULL
) {
8487 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8489 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
8490 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
8491 if (r
->out
.authoritative
== NULL
) {
8492 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8494 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
8495 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8497 return NDR_ERR_SUCCESS
;
8500 static enum ndr_err_code
ndr_pull_netr_LogonSamLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogon
*r
)
8502 uint32_t _ptr_server_name
;
8503 uint32_t _ptr_computer_name
;
8504 uint32_t _ptr_credential
;
8505 uint32_t _ptr_return_authenticator
;
8506 TALLOC_CTX
*_mem_save_server_name_0
;
8507 TALLOC_CTX
*_mem_save_computer_name_0
;
8508 TALLOC_CTX
*_mem_save_credential_0
;
8509 TALLOC_CTX
*_mem_save_return_authenticator_0
;
8510 TALLOC_CTX
*_mem_save_logon_0
;
8511 TALLOC_CTX
*_mem_save_validation_0
;
8512 TALLOC_CTX
*_mem_save_authoritative_0
;
8513 if (flags
& NDR_IN
) {
8514 ZERO_STRUCT(r
->out
);
8516 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8517 if (_ptr_server_name
) {
8518 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8520 r
->in
.server_name
= NULL
;
8522 if (r
->in
.server_name
) {
8523 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8524 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8525 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8526 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8527 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8528 return 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
));
8530 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8531 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
));
8532 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8534 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
8535 if (_ptr_computer_name
) {
8536 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
8538 r
->in
.computer_name
= NULL
;
8540 if (r
->in
.computer_name
) {
8541 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8542 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
8543 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
8544 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
8545 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
8546 return 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
));
8548 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
8549 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
));
8550 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
8552 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
8553 if (_ptr_credential
) {
8554 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
8556 r
->in
.credential
= NULL
;
8558 if (r
->in
.credential
) {
8559 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8560 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
8561 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
8562 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
8564 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
8565 if (_ptr_return_authenticator
) {
8566 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
8568 r
->in
.return_authenticator
= NULL
;
8570 if (r
->in
.return_authenticator
) {
8571 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8572 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
8573 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
8576 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
8577 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8578 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
8580 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8581 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
8582 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
8583 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
8584 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
8585 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
8586 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
8587 ZERO_STRUCTP(r
->out
.validation
);
8588 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
8589 ZERO_STRUCTP(r
->out
.authoritative
);
8591 if (flags
& NDR_OUT
) {
8592 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
8593 if (_ptr_return_authenticator
) {
8594 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8596 r
->out
.return_authenticator
= NULL
;
8598 if (r
->out
.return_authenticator
) {
8599 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8600 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
8601 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
8604 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8605 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
8607 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8608 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
8609 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
8610 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
8611 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
8612 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8613 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
8615 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8616 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
8617 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
8618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
8619 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8621 return NDR_ERR_SUCCESS
;
8624 _PUBLIC_
void ndr_print_netr_LogonSamLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogon
*r
)
8626 ndr_print_struct(ndr
, name
, "netr_LogonSamLogon");
8628 if (flags
& NDR_SET_VALUES
) {
8629 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8631 if (flags
& NDR_IN
) {
8632 ndr_print_struct(ndr
, "in", "netr_LogonSamLogon");
8634 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8636 if (r
->in
.server_name
) {
8637 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8640 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
8642 if (r
->in
.computer_name
) {
8643 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
8646 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
8648 if (r
->in
.credential
) {
8649 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
8652 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8654 if (r
->in
.return_authenticator
) {
8655 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8658 ndr_print_netr_LogonLevel(ndr
, "logon_level", r
->in
.logon_level
);
8659 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
8661 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
8662 ndr_print_netr_LogonInfo(ndr
, "logon", r
->in
.logon
);
8664 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
8667 if (flags
& NDR_OUT
) {
8668 ndr_print_struct(ndr
, "out", "netr_LogonSamLogon");
8670 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8672 if (r
->out
.return_authenticator
) {
8673 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8676 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
8678 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
8679 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
8681 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
8683 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
8685 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8691 static enum ndr_err_code
ndr_push_netr_LogonSamLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogoff
*r
)
8693 if (flags
& NDR_IN
) {
8694 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8695 if (r
->in
.server_name
) {
8696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8697 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8698 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8699 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
));
8701 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
8702 if (r
->in
.computer_name
) {
8703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8704 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8706 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
));
8708 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
8709 if (r
->in
.credential
) {
8710 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
8712 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
8713 if (r
->in
.return_authenticator
) {
8714 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8716 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
8717 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
8718 NDR_CHECK(ndr_push_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
8720 if (flags
& NDR_OUT
) {
8721 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
8722 if (r
->out
.return_authenticator
) {
8723 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8725 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8727 return NDR_ERR_SUCCESS
;
8730 static enum ndr_err_code
ndr_pull_netr_LogonSamLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogoff
*r
)
8732 uint32_t _ptr_server_name
;
8733 uint32_t _ptr_computer_name
;
8734 uint32_t _ptr_credential
;
8735 uint32_t _ptr_return_authenticator
;
8736 TALLOC_CTX
*_mem_save_server_name_0
;
8737 TALLOC_CTX
*_mem_save_computer_name_0
;
8738 TALLOC_CTX
*_mem_save_credential_0
;
8739 TALLOC_CTX
*_mem_save_return_authenticator_0
;
8740 if (flags
& NDR_IN
) {
8741 ZERO_STRUCT(r
->out
);
8743 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8744 if (_ptr_server_name
) {
8745 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8747 r
->in
.server_name
= NULL
;
8749 if (r
->in
.server_name
) {
8750 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8751 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8752 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8753 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8754 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8755 return 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
));
8757 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8758 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
));
8759 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8761 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
8762 if (_ptr_computer_name
) {
8763 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
8765 r
->in
.computer_name
= NULL
;
8767 if (r
->in
.computer_name
) {
8768 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8769 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
8770 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
8771 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
8772 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
8773 return 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
));
8775 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
8776 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
));
8777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
8779 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
8780 if (_ptr_credential
) {
8781 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
8783 r
->in
.credential
= NULL
;
8785 if (r
->in
.credential
) {
8786 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8787 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
8788 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
8789 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
8791 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
8792 if (_ptr_return_authenticator
) {
8793 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
8795 r
->in
.return_authenticator
= NULL
;
8797 if (r
->in
.return_authenticator
) {
8798 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8799 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
8800 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
8803 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
8804 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
8805 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
8807 if (flags
& NDR_OUT
) {
8808 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
8809 if (_ptr_return_authenticator
) {
8810 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8812 r
->out
.return_authenticator
= NULL
;
8814 if (r
->out
.return_authenticator
) {
8815 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8816 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
8817 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8818 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
8820 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8822 return NDR_ERR_SUCCESS
;
8825 _PUBLIC_
void ndr_print_netr_LogonSamLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogoff
*r
)
8827 ndr_print_struct(ndr
, name
, "netr_LogonSamLogoff");
8829 if (flags
& NDR_SET_VALUES
) {
8830 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8832 if (flags
& NDR_IN
) {
8833 ndr_print_struct(ndr
, "in", "netr_LogonSamLogoff");
8835 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8837 if (r
->in
.server_name
) {
8838 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8841 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
8843 if (r
->in
.computer_name
) {
8844 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
8847 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
8849 if (r
->in
.credential
) {
8850 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
8853 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8855 if (r
->in
.return_authenticator
) {
8856 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8859 ndr_print_netr_LogonLevel(ndr
, "logon_level", r
->in
.logon_level
);
8860 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
8861 ndr_print_netr_LogonInfo(ndr
, "logon", &r
->in
.logon
);
8864 if (flags
& NDR_OUT
) {
8865 ndr_print_struct(ndr
, "out", "netr_LogonSamLogoff");
8867 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8869 if (r
->out
.return_authenticator
) {
8870 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8873 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8879 static enum ndr_err_code
ndr_push_netr_ServerReqChallenge(struct ndr_push
*ndr
, int flags
, const struct netr_ServerReqChallenge
*r
)
8881 if (flags
& NDR_IN
) {
8882 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8883 if (r
->in
.server_name
) {
8884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8885 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8886 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8887 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
));
8889 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8891 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8892 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
));
8893 if (r
->in
.credentials
== NULL
) {
8894 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8896 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
8898 if (flags
& NDR_OUT
) {
8899 if (r
->out
.return_credentials
== NULL
) {
8900 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8902 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
8903 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8905 return NDR_ERR_SUCCESS
;
8908 static enum ndr_err_code
ndr_pull_netr_ServerReqChallenge(struct ndr_pull
*ndr
, int flags
, struct netr_ServerReqChallenge
*r
)
8910 uint32_t _ptr_server_name
;
8911 TALLOC_CTX
*_mem_save_server_name_0
;
8912 TALLOC_CTX
*_mem_save_credentials_0
;
8913 TALLOC_CTX
*_mem_save_return_credentials_0
;
8914 if (flags
& NDR_IN
) {
8915 ZERO_STRUCT(r
->out
);
8917 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8918 if (_ptr_server_name
) {
8919 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8921 r
->in
.server_name
= NULL
;
8923 if (r
->in
.server_name
) {
8924 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8925 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8926 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8927 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8928 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8929 return 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
));
8931 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8932 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
));
8933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8935 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
8936 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
8937 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
8938 return 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
));
8940 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
8941 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
));
8942 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8943 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
8945 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8946 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
8947 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
8948 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
8949 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
8950 ZERO_STRUCTP(r
->out
.return_credentials
);
8952 if (flags
& NDR_OUT
) {
8953 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8954 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
8956 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8957 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
8958 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
8959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
8960 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8962 return NDR_ERR_SUCCESS
;
8965 _PUBLIC_
void ndr_print_netr_ServerReqChallenge(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerReqChallenge
*r
)
8967 ndr_print_struct(ndr
, name
, "netr_ServerReqChallenge");
8969 if (flags
& NDR_SET_VALUES
) {
8970 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8972 if (flags
& NDR_IN
) {
8973 ndr_print_struct(ndr
, "in", "netr_ServerReqChallenge");
8975 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8977 if (r
->in
.server_name
) {
8978 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8981 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
8982 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
8984 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
8988 if (flags
& NDR_OUT
) {
8989 ndr_print_struct(ndr
, "out", "netr_ServerReqChallenge");
8991 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
8993 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
8995 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9001 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate
*r
)
9003 if (flags
& NDR_IN
) {
9004 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9005 if (r
->in
.server_name
) {
9006 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9007 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9008 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9009 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
));
9011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9012 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9013 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9014 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
));
9015 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
9016 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9019 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
));
9020 if (r
->in
.credentials
== NULL
) {
9021 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9023 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
9025 if (flags
& NDR_OUT
) {
9026 if (r
->out
.return_credentials
== NULL
) {
9027 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9029 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
9030 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9032 return NDR_ERR_SUCCESS
;
9035 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate
*r
)
9037 uint32_t _ptr_server_name
;
9038 TALLOC_CTX
*_mem_save_server_name_0
;
9039 TALLOC_CTX
*_mem_save_credentials_0
;
9040 TALLOC_CTX
*_mem_save_return_credentials_0
;
9041 if (flags
& NDR_IN
) {
9042 ZERO_STRUCT(r
->out
);
9044 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9045 if (_ptr_server_name
) {
9046 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9048 r
->in
.server_name
= NULL
;
9050 if (r
->in
.server_name
) {
9051 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9052 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9053 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9054 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9055 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9056 return 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
));
9058 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9059 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
));
9060 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9062 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9063 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9064 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9065 return 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
));
9067 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9068 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
));
9069 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
9070 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9071 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9072 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9073 return 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
));
9075 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9076 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
));
9077 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9078 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
9080 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9081 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
9082 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
9083 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
9084 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
9085 ZERO_STRUCTP(r
->out
.return_credentials
);
9087 if (flags
& NDR_OUT
) {
9088 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9089 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
9091 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9092 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
9093 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
9094 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
9095 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9097 return NDR_ERR_SUCCESS
;
9100 _PUBLIC_
void ndr_print_netr_ServerAuthenticate(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate
*r
)
9102 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate");
9104 if (flags
& NDR_SET_VALUES
) {
9105 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9107 if (flags
& NDR_IN
) {
9108 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate");
9110 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9112 if (r
->in
.server_name
) {
9113 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9116 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9117 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
9118 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9119 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
9121 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
9125 if (flags
& NDR_OUT
) {
9126 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate");
9128 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
9130 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
9132 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9138 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet
*r
)
9140 if (flags
& NDR_IN
) {
9141 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9142 if (r
->in
.server_name
) {
9143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9146 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
));
9148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9151 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
));
9152 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
9153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9155 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9156 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
));
9157 if (r
->in
.credential
== NULL
) {
9158 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9160 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9161 if (r
->in
.new_password
== NULL
) {
9162 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9164 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
9166 if (flags
& NDR_OUT
) {
9167 if (r
->out
.return_authenticator
== NULL
) {
9168 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9170 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9171 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9173 return NDR_ERR_SUCCESS
;
9176 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet
*r
)
9178 uint32_t _ptr_server_name
;
9179 TALLOC_CTX
*_mem_save_server_name_0
;
9180 TALLOC_CTX
*_mem_save_credential_0
;
9181 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9182 TALLOC_CTX
*_mem_save_new_password_0
;
9183 if (flags
& NDR_IN
) {
9184 ZERO_STRUCT(r
->out
);
9186 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9187 if (_ptr_server_name
) {
9188 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9190 r
->in
.server_name
= NULL
;
9192 if (r
->in
.server_name
) {
9193 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9194 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9195 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9196 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9197 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
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
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
9200 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9201 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
));
9202 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9204 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9205 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9206 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9207 return 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
));
9209 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9210 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
));
9211 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
9212 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9213 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9214 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9215 return 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
));
9217 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9218 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
));
9219 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9220 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9222 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9223 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
9224 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9225 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
9226 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9227 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
9229 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9230 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
9231 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
9232 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
9233 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9234 ZERO_STRUCTP(r
->out
.return_authenticator
);
9236 if (flags
& NDR_OUT
) {
9237 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9238 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9240 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9241 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9242 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9243 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9244 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9246 return NDR_ERR_SUCCESS
;
9249 _PUBLIC_
void ndr_print_netr_ServerPasswordSet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet
*r
)
9251 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet");
9253 if (flags
& NDR_SET_VALUES
) {
9254 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9256 if (flags
& NDR_IN
) {
9257 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet");
9259 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9261 if (r
->in
.server_name
) {
9262 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9265 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9266 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
9267 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9268 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9270 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9272 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
9274 ndr_print_samr_Password(ndr
, "new_password", r
->in
.new_password
);
9278 if (flags
& NDR_OUT
) {
9279 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet");
9281 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9283 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9285 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9291 static enum ndr_err_code
ndr_push_netr_DatabaseDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseDeltas
*r
)
9293 if (flags
& NDR_IN
) {
9294 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9297 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
));
9298 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9300 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9301 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9302 if (r
->in
.credential
== NULL
) {
9303 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9305 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9306 if (r
->in
.return_authenticator
== NULL
) {
9307 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9309 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9310 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
9311 if (r
->in
.sequence_num
== NULL
) {
9312 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9314 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->in
.sequence_num
));
9315 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
9317 if (flags
& NDR_OUT
) {
9318 if (r
->out
.return_authenticator
== NULL
) {
9319 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9321 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9322 if (r
->out
.sequence_num
== NULL
) {
9323 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9325 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->out
.sequence_num
));
9326 if (r
->out
.delta_enum_array
== NULL
) {
9327 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9329 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
9330 if (*r
->out
.delta_enum_array
) {
9331 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
9333 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9335 return NDR_ERR_SUCCESS
;
9338 static enum ndr_err_code
ndr_pull_netr_DatabaseDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseDeltas
*r
)
9340 uint32_t _ptr_delta_enum_array
;
9341 TALLOC_CTX
*_mem_save_credential_0
;
9342 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9343 TALLOC_CTX
*_mem_save_sequence_num_0
;
9344 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
9345 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
9346 if (flags
& NDR_IN
) {
9347 ZERO_STRUCT(r
->out
);
9349 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9350 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9351 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9352 return 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
));
9354 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9355 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
));
9356 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
9357 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
9358 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
9359 return 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
));
9361 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
9362 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
9363 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9364 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9366 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9367 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
9368 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
9370 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9371 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9373 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9374 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9375 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9376 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9377 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
9378 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9379 NDR_PULL_ALLOC(ndr
, r
->in
.sequence_num
);
9381 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9382 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
9383 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->in
.sequence_num
));
9384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
9385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
9386 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9387 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
9388 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
9389 *r
->out
.sequence_num
= *r
->in
.sequence_num
;
9390 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
9391 ZERO_STRUCTP(r
->out
.delta_enum_array
);
9393 if (flags
& NDR_OUT
) {
9394 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9395 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9397 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9398 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9399 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9401 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9402 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
9404 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9405 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
9406 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->out
.sequence_num
));
9407 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
9408 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9409 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
9411 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9412 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
9413 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
9414 if (_ptr_delta_enum_array
) {
9415 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
9417 *r
->out
.delta_enum_array
= NULL
;
9419 if (*r
->out
.delta_enum_array
) {
9420 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9421 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
9422 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
9423 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
9425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
9426 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9428 return NDR_ERR_SUCCESS
;
9431 _PUBLIC_
void ndr_print_netr_DatabaseDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseDeltas
*r
)
9433 ndr_print_struct(ndr
, name
, "netr_DatabaseDeltas");
9435 if (flags
& NDR_SET_VALUES
) {
9436 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9438 if (flags
& NDR_IN
) {
9439 ndr_print_struct(ndr
, "in", "netr_DatabaseDeltas");
9441 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9442 ndr_print_string(ndr
, "computername", r
->in
.computername
);
9443 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9445 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9447 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9449 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9451 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
9452 ndr_print_ptr(ndr
, "sequence_num", r
->in
.sequence_num
);
9454 ndr_print_udlong(ndr
, "sequence_num", *r
->in
.sequence_num
);
9456 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
9459 if (flags
& NDR_OUT
) {
9460 ndr_print_struct(ndr
, "out", "netr_DatabaseDeltas");
9462 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9464 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9466 ndr_print_ptr(ndr
, "sequence_num", r
->out
.sequence_num
);
9468 ndr_print_udlong(ndr
, "sequence_num", *r
->out
.sequence_num
);
9470 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
9472 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
9474 if (*r
->out
.delta_enum_array
) {
9475 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
9479 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9485 static enum ndr_err_code
ndr_push_netr_DatabaseSync(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync
*r
)
9487 if (flags
& NDR_IN
) {
9488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9491 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
));
9492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9495 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9496 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9497 if (r
->in
.return_authenticator
== NULL
) {
9498 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9500 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9501 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
9502 if (r
->in
.sync_context
== NULL
) {
9503 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
9506 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
9508 if (flags
& NDR_OUT
) {
9509 if (r
->out
.return_authenticator
== NULL
) {
9510 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9512 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9513 if (r
->out
.sync_context
== NULL
) {
9514 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
9517 if (r
->out
.delta_enum_array
== NULL
) {
9518 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9520 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
9521 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9523 return NDR_ERR_SUCCESS
;
9526 static enum ndr_err_code
ndr_pull_netr_DatabaseSync(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync
*r
)
9528 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9529 TALLOC_CTX
*_mem_save_sync_context_0
;
9530 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
9531 if (flags
& NDR_IN
) {
9532 ZERO_STRUCT(r
->out
);
9534 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9535 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9536 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9537 return 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
));
9539 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9540 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
));
9541 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
9542 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
9543 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
9544 return 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
));
9546 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
9547 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
9548 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9549 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9550 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9552 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9553 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9554 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9555 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9556 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
9557 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9558 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
9560 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9561 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
9562 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
9563 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
9564 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
9565 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9566 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
9567 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
9568 *r
->out
.sync_context
= *r
->in
.sync_context
;
9569 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
9570 ZERO_STRUCTP(r
->out
.delta_enum_array
);
9572 if (flags
& NDR_OUT
) {
9573 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9574 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9576 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9577 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9578 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9579 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9580 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9581 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
9583 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9584 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
9585 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
9586 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
9587 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9588 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
9590 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9591 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
9592 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
9593 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
9594 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9596 return NDR_ERR_SUCCESS
;
9599 _PUBLIC_
void ndr_print_netr_DatabaseSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync
*r
)
9601 ndr_print_struct(ndr
, name
, "netr_DatabaseSync");
9603 if (flags
& NDR_SET_VALUES
) {
9604 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9606 if (flags
& NDR_IN
) {
9607 ndr_print_struct(ndr
, "in", "netr_DatabaseSync");
9609 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9610 ndr_print_string(ndr
, "computername", r
->in
.computername
);
9611 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
9612 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9614 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9616 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
9617 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
9619 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
9621 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
9624 if (flags
& NDR_OUT
) {
9625 ndr_print_struct(ndr
, "out", "netr_DatabaseSync");
9627 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9629 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9631 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
9633 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
9635 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
9637 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
9639 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9645 static enum ndr_err_code
ndr_push_netr_AccountDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_AccountDeltas
*r
)
9647 if (flags
& NDR_IN
) {
9648 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
9649 if (r
->in
.logon_server
) {
9650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9653 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
));
9655 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9656 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9658 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9659 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9660 if (r
->in
.return_authenticator
== NULL
) {
9661 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9663 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9664 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
9665 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
9666 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
9667 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
9669 if (flags
& NDR_OUT
) {
9670 if (r
->out
.return_authenticator
== NULL
) {
9671 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9673 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9674 if (r
->out
.buffer
== NULL
) {
9675 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9678 struct ndr_push
*_ndr_buffer
;
9679 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
9680 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
9681 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
9683 if (r
->out
.count_returned
== NULL
) {
9684 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
9687 if (r
->out
.total_entries
== NULL
) {
9688 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9690 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
9691 if (r
->out
.recordid
== NULL
) {
9692 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9694 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
9695 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9697 return NDR_ERR_SUCCESS
;
9700 static enum ndr_err_code
ndr_pull_netr_AccountDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_AccountDeltas
*r
)
9702 uint32_t _ptr_logon_server
;
9703 TALLOC_CTX
*_mem_save_logon_server_0
;
9704 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9705 TALLOC_CTX
*_mem_save_buffer_0
;
9706 TALLOC_CTX
*_mem_save_count_returned_0
;
9707 TALLOC_CTX
*_mem_save_total_entries_0
;
9708 TALLOC_CTX
*_mem_save_recordid_0
;
9709 if (flags
& NDR_IN
) {
9710 ZERO_STRUCT(r
->out
);
9712 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
9713 if (_ptr_logon_server
) {
9714 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
9716 r
->in
.logon_server
= NULL
;
9718 if (r
->in
.logon_server
) {
9719 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9720 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
9721 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9722 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9723 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9724 return 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
));
9726 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9727 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
));
9728 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
9730 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
9731 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
9732 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
9733 return 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
));
9735 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
9736 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
9737 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9738 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9739 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9741 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9742 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9743 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9744 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9745 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
9746 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
9747 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
9748 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
9749 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9750 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
9751 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
9752 ZERO_STRUCTP(r
->out
.buffer
);
9753 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
9754 ZERO_STRUCTP(r
->out
.count_returned
);
9755 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
9756 ZERO_STRUCTP(r
->out
.total_entries
);
9757 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
9758 ZERO_STRUCTP(r
->out
.recordid
);
9760 if (flags
& NDR_OUT
) {
9761 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9762 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9764 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9765 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9766 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9768 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9769 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
9771 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9772 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
9774 struct ndr_pull
*_ndr_buffer
;
9775 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
9776 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
9777 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
9779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
9780 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9781 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
9783 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9784 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
9785 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
9786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
9787 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9788 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
9790 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9791 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
9792 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
9793 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
9794 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9795 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
9797 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9798 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
9799 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
9800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
9801 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9803 return NDR_ERR_SUCCESS
;
9806 _PUBLIC_
void ndr_print_netr_AccountDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountDeltas
*r
)
9808 ndr_print_struct(ndr
, name
, "netr_AccountDeltas");
9810 if (flags
& NDR_SET_VALUES
) {
9811 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9813 if (flags
& NDR_IN
) {
9814 ndr_print_struct(ndr
, "in", "netr_AccountDeltas");
9816 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
9818 if (r
->in
.logon_server
) {
9819 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9822 ndr_print_string(ndr
, "computername", r
->in
.computername
);
9823 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
9824 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9826 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9828 ndr_print_netr_UAS_INFO_0(ndr
, "uas", &r
->in
.uas
);
9829 ndr_print_uint32(ndr
, "count", r
->in
.count
);
9830 ndr_print_uint32(ndr
, "level", r
->in
.level
);
9831 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
9834 if (flags
& NDR_OUT
) {
9835 ndr_print_struct(ndr
, "out", "netr_AccountDeltas");
9837 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9839 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9841 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
9843 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
9845 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
9847 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
9849 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
9851 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
9853 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
9855 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
9857 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9863 static enum ndr_err_code
ndr_push_netr_AccountSync(struct ndr_push
*ndr
, int flags
, const struct netr_AccountSync
*r
)
9865 if (flags
& NDR_IN
) {
9866 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
9867 if (r
->in
.logon_server
) {
9868 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9869 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9870 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9871 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
));
9873 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9876 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9877 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9878 if (r
->in
.return_authenticator
== NULL
) {
9879 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9881 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reference
));
9883 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
9884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
9885 if (r
->in
.recordid
== NULL
) {
9886 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9888 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
9890 if (flags
& NDR_OUT
) {
9891 if (r
->out
.return_authenticator
== NULL
) {
9892 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9894 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9895 if (r
->out
.buffer
== NULL
) {
9896 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9899 struct ndr_push
*_ndr_buffer
;
9900 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
9901 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
9902 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
9904 if (r
->out
.count_returned
== NULL
) {
9905 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
9908 if (r
->out
.total_entries
== NULL
) {
9909 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
9912 if (r
->out
.next_reference
== NULL
) {
9913 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.next_reference
));
9916 if (r
->out
.recordid
== NULL
) {
9917 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9919 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
9920 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9922 return NDR_ERR_SUCCESS
;
9925 static enum ndr_err_code
ndr_pull_netr_AccountSync(struct ndr_pull
*ndr
, int flags
, struct netr_AccountSync
*r
)
9927 uint32_t _ptr_logon_server
;
9928 TALLOC_CTX
*_mem_save_logon_server_0
;
9929 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9930 TALLOC_CTX
*_mem_save_buffer_0
;
9931 TALLOC_CTX
*_mem_save_count_returned_0
;
9932 TALLOC_CTX
*_mem_save_total_entries_0
;
9933 TALLOC_CTX
*_mem_save_next_reference_0
;
9934 TALLOC_CTX
*_mem_save_recordid_0
;
9935 if (flags
& NDR_IN
) {
9936 ZERO_STRUCT(r
->out
);
9938 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
9939 if (_ptr_logon_server
) {
9940 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
9942 r
->in
.logon_server
= NULL
;
9944 if (r
->in
.logon_server
) {
9945 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9946 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
9947 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9948 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9949 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9950 return 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
));
9952 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9953 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
));
9954 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
9956 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
9957 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
9958 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
9959 return 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
));
9961 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
9962 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
9963 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9964 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9965 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9967 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9968 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9969 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9971 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reference
));
9972 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
9973 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
9974 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9975 NDR_PULL_ALLOC(ndr
, r
->in
.recordid
);
9977 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9978 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
9979 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
9980 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
9981 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9982 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
9983 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
9984 ZERO_STRUCTP(r
->out
.buffer
);
9985 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
9986 ZERO_STRUCTP(r
->out
.count_returned
);
9987 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
9988 ZERO_STRUCTP(r
->out
.total_entries
);
9989 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
9990 ZERO_STRUCTP(r
->out
.next_reference
);
9991 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
9992 *r
->out
.recordid
= *r
->in
.recordid
;
9994 if (flags
& NDR_OUT
) {
9995 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9996 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9998 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9999 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10000 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10001 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10002 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10003 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
10005 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10006 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
10008 struct ndr_pull
*_ndr_buffer
;
10009 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
10010 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
10011 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
10013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
10014 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10015 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
10017 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10018 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
10019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
10020 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
10021 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10022 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
10024 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10025 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
10026 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
10027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
10028 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10029 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
10031 _mem_save_next_reference_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10032 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.next_reference
, LIBNDR_FLAG_REF_ALLOC
);
10033 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.next_reference
));
10034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_reference_0
, LIBNDR_FLAG_REF_ALLOC
);
10035 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10036 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
10038 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10039 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
10040 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
10041 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
10042 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10044 return NDR_ERR_SUCCESS
;
10047 _PUBLIC_
void ndr_print_netr_AccountSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountSync
*r
)
10049 ndr_print_struct(ndr
, name
, "netr_AccountSync");
10051 if (flags
& NDR_SET_VALUES
) {
10052 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10054 if (flags
& NDR_IN
) {
10055 ndr_print_struct(ndr
, "in", "netr_AccountSync");
10057 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10059 if (r
->in
.logon_server
) {
10060 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10063 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10064 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
10065 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10067 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10069 ndr_print_uint32(ndr
, "reference", r
->in
.reference
);
10070 ndr_print_uint32(ndr
, "level", r
->in
.level
);
10071 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
10072 ndr_print_ptr(ndr
, "recordid", r
->in
.recordid
);
10074 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->in
.recordid
);
10078 if (flags
& NDR_OUT
) {
10079 ndr_print_struct(ndr
, "out", "netr_AccountSync");
10081 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10083 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10085 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
10087 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
10089 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
10091 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
10093 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
10095 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
10097 ndr_print_ptr(ndr
, "next_reference", r
->out
.next_reference
);
10099 ndr_print_uint32(ndr
, "next_reference", *r
->out
.next_reference
);
10101 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
10103 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
10105 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10111 static enum ndr_err_code
ndr_push_netr_GetDcName(struct ndr_push
*ndr
, int flags
, const struct netr_GetDcName
*r
)
10113 if (flags
& NDR_IN
) {
10114 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10117 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
));
10118 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
10119 if (r
->in
.domainname
) {
10120 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
10121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
10123 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10126 if (flags
& NDR_OUT
) {
10127 if (r
->out
.dcname
== NULL
) {
10128 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10130 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
10131 if (*r
->out
.dcname
) {
10132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
10133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
10135 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10137 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10139 return NDR_ERR_SUCCESS
;
10142 static enum ndr_err_code
ndr_pull_netr_GetDcName(struct ndr_pull
*ndr
, int flags
, struct netr_GetDcName
*r
)
10144 uint32_t _ptr_domainname
;
10145 uint32_t _ptr_dcname
;
10146 TALLOC_CTX
*_mem_save_domainname_0
;
10147 TALLOC_CTX
*_mem_save_dcname_0
;
10148 TALLOC_CTX
*_mem_save_dcname_1
;
10149 if (flags
& NDR_IN
) {
10150 ZERO_STRUCT(r
->out
);
10152 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10153 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10154 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10155 return 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
));
10157 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10158 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
));
10159 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
10160 if (_ptr_domainname
) {
10161 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
10163 r
->in
.domainname
= NULL
;
10165 if (r
->in
.domainname
) {
10166 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10167 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
10168 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
10169 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
10170 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
10171 return 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
));
10173 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
10174 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
10175 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
10177 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
10178 ZERO_STRUCTP(r
->out
.dcname
);
10180 if (flags
& NDR_OUT
) {
10181 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10182 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
10184 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10185 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
10186 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
10188 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
10190 *r
->out
.dcname
= NULL
;
10192 if (*r
->out
.dcname
) {
10193 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10194 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
10195 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
10196 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
10197 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
10198 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
));
10200 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
10201 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
10202 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
10204 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
10205 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10207 return NDR_ERR_SUCCESS
;
10210 _PUBLIC_
void ndr_print_netr_GetDcName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetDcName
*r
)
10212 ndr_print_struct(ndr
, name
, "netr_GetDcName");
10214 if (flags
& NDR_SET_VALUES
) {
10215 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10217 if (flags
& NDR_IN
) {
10218 ndr_print_struct(ndr
, "in", "netr_GetDcName");
10220 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10221 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
10223 if (r
->in
.domainname
) {
10224 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
10229 if (flags
& NDR_OUT
) {
10230 ndr_print_struct(ndr
, "out", "netr_GetDcName");
10232 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
10234 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
10236 if (*r
->out
.dcname
) {
10237 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
10241 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10247 static enum ndr_err_code
ndr_push_netr_LogonControl(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl
*r
)
10249 if (flags
& NDR_IN
) {
10250 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10251 if (r
->in
.logon_server
) {
10252 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10254 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10255 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
));
10257 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
10258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
10260 if (flags
& NDR_OUT
) {
10261 if (r
->out
.info
== NULL
) {
10262 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10264 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
10265 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10266 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10268 return NDR_ERR_SUCCESS
;
10271 static enum ndr_err_code
ndr_pull_netr_LogonControl(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl
*r
)
10273 uint32_t _ptr_logon_server
;
10274 TALLOC_CTX
*_mem_save_logon_server_0
;
10275 TALLOC_CTX
*_mem_save_info_0
;
10276 if (flags
& NDR_IN
) {
10277 ZERO_STRUCT(r
->out
);
10279 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10280 if (_ptr_logon_server
) {
10281 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10283 r
->in
.logon_server
= NULL
;
10285 if (r
->in
.logon_server
) {
10286 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10287 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10288 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10289 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10290 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10291 return 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
));
10293 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10294 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
));
10295 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10297 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
10298 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
10299 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
10300 ZERO_STRUCTP(r
->out
.info
);
10302 if (flags
& NDR_OUT
) {
10303 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10304 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
10306 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10307 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
10308 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
10309 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10310 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
10311 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10313 return NDR_ERR_SUCCESS
;
10316 _PUBLIC_
void ndr_print_netr_LogonControl(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl
*r
)
10318 ndr_print_struct(ndr
, name
, "netr_LogonControl");
10320 if (flags
& NDR_SET_VALUES
) {
10321 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10323 if (flags
& NDR_IN
) {
10324 ndr_print_struct(ndr
, "in", "netr_LogonControl");
10326 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10328 if (r
->in
.logon_server
) {
10329 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10332 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
10333 ndr_print_uint32(ndr
, "level", r
->in
.level
);
10336 if (flags
& NDR_OUT
) {
10337 ndr_print_struct(ndr
, "out", "netr_LogonControl");
10339 ndr_print_ptr(ndr
, "info", r
->out
.info
);
10341 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
10342 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "info", r
->out
.info
);
10344 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10350 static enum ndr_err_code
ndr_push_netr_GetAnyDCName(struct ndr_push
*ndr
, int flags
, const struct netr_GetAnyDCName
*r
)
10352 if (flags
& NDR_IN
) {
10353 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10354 if (r
->in
.logon_server
) {
10355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10358 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
));
10360 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
10361 if (r
->in
.domainname
) {
10362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
10363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
10365 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10368 if (flags
& NDR_OUT
) {
10369 if (r
->out
.dcname
== NULL
) {
10370 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10372 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
10373 if (*r
->out
.dcname
) {
10374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
10375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
10377 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10379 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10381 return NDR_ERR_SUCCESS
;
10384 static enum ndr_err_code
ndr_pull_netr_GetAnyDCName(struct ndr_pull
*ndr
, int flags
, struct netr_GetAnyDCName
*r
)
10386 uint32_t _ptr_logon_server
;
10387 uint32_t _ptr_domainname
;
10388 uint32_t _ptr_dcname
;
10389 TALLOC_CTX
*_mem_save_logon_server_0
;
10390 TALLOC_CTX
*_mem_save_domainname_0
;
10391 TALLOC_CTX
*_mem_save_dcname_0
;
10392 TALLOC_CTX
*_mem_save_dcname_1
;
10393 if (flags
& NDR_IN
) {
10394 ZERO_STRUCT(r
->out
);
10396 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10397 if (_ptr_logon_server
) {
10398 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10400 r
->in
.logon_server
= NULL
;
10402 if (r
->in
.logon_server
) {
10403 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10404 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10405 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10406 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10407 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10408 return 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
));
10410 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10411 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
));
10412 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
10415 if (_ptr_domainname
) {
10416 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
10418 r
->in
.domainname
= NULL
;
10420 if (r
->in
.domainname
) {
10421 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10422 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
10423 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
10424 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
10425 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
10426 return 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
));
10428 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
10429 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
10430 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
10432 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
10433 ZERO_STRUCTP(r
->out
.dcname
);
10435 if (flags
& NDR_OUT
) {
10436 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10437 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
10439 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10440 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
10441 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
10443 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
10445 *r
->out
.dcname
= NULL
;
10447 if (*r
->out
.dcname
) {
10448 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10449 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
10450 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
10451 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
10452 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
10453 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
));
10455 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
10456 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
10457 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
10459 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
10460 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10462 return NDR_ERR_SUCCESS
;
10465 _PUBLIC_
void ndr_print_netr_GetAnyDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetAnyDCName
*r
)
10467 ndr_print_struct(ndr
, name
, "netr_GetAnyDCName");
10469 if (flags
& NDR_SET_VALUES
) {
10470 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10472 if (flags
& NDR_IN
) {
10473 ndr_print_struct(ndr
, "in", "netr_GetAnyDCName");
10475 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10477 if (r
->in
.logon_server
) {
10478 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10481 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
10483 if (r
->in
.domainname
) {
10484 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
10489 if (flags
& NDR_OUT
) {
10490 ndr_print_struct(ndr
, "out", "netr_GetAnyDCName");
10492 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
10494 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
10496 if (*r
->out
.dcname
) {
10497 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
10501 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10507 static enum ndr_err_code
ndr_push_netr_LogonControl2(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2
*r
)
10509 if (flags
& NDR_IN
) {
10510 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10511 if (r
->in
.logon_server
) {
10512 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10515 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
));
10517 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
10518 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
10519 if (r
->in
.data
== NULL
) {
10520 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10522 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
10523 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
10525 if (flags
& NDR_OUT
) {
10526 if (r
->out
.query
== NULL
) {
10527 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10529 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
10530 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
10531 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10533 return NDR_ERR_SUCCESS
;
10536 static enum ndr_err_code
ndr_pull_netr_LogonControl2(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2
*r
)
10538 uint32_t _ptr_logon_server
;
10539 TALLOC_CTX
*_mem_save_logon_server_0
;
10540 TALLOC_CTX
*_mem_save_data_0
;
10541 TALLOC_CTX
*_mem_save_query_0
;
10542 if (flags
& NDR_IN
) {
10543 ZERO_STRUCT(r
->out
);
10545 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10546 if (_ptr_logon_server
) {
10547 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10549 r
->in
.logon_server
= NULL
;
10551 if (r
->in
.logon_server
) {
10552 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10553 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10554 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10555 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10556 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10557 return 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
));
10559 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10560 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
));
10561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10563 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
10564 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
10565 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10566 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
10568 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10569 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
10570 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
10571 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
10572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
10573 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
10574 ZERO_STRUCTP(r
->out
.query
);
10576 if (flags
& NDR_OUT
) {
10577 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10578 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
10580 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10581 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
10582 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
10583 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
10584 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
10585 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10587 return NDR_ERR_SUCCESS
;
10590 _PUBLIC_
void ndr_print_netr_LogonControl2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2
*r
)
10592 ndr_print_struct(ndr
, name
, "netr_LogonControl2");
10594 if (flags
& NDR_SET_VALUES
) {
10595 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10597 if (flags
& NDR_IN
) {
10598 ndr_print_struct(ndr
, "in", "netr_LogonControl2");
10600 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10602 if (r
->in
.logon_server
) {
10603 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10606 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
10607 ndr_print_uint32(ndr
, "level", r
->in
.level
);
10608 ndr_print_ptr(ndr
, "data", r
->in
.data
);
10610 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
10611 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
10615 if (flags
& NDR_OUT
) {
10616 ndr_print_struct(ndr
, "out", "netr_LogonControl2");
10618 ndr_print_ptr(ndr
, "query", r
->out
.query
);
10620 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
10621 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
10623 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10629 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate2
*r
)
10631 if (flags
& NDR_IN
) {
10632 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10633 if (r
->in
.server_name
) {
10634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10635 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10637 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
));
10639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10640 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10642 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
));
10643 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10645 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10647 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
));
10648 if (r
->in
.credentials
== NULL
) {
10649 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10651 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10652 if (r
->in
.negotiate_flags
== NULL
) {
10653 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10655 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
10657 if (flags
& NDR_OUT
) {
10658 if (r
->out
.return_credentials
== NULL
) {
10659 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10661 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10662 if (r
->out
.negotiate_flags
== NULL
) {
10663 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10665 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
10666 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10668 return NDR_ERR_SUCCESS
;
10671 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate2
*r
)
10673 uint32_t _ptr_server_name
;
10674 TALLOC_CTX
*_mem_save_server_name_0
;
10675 TALLOC_CTX
*_mem_save_credentials_0
;
10676 TALLOC_CTX
*_mem_save_return_credentials_0
;
10677 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
10678 if (flags
& NDR_IN
) {
10679 ZERO_STRUCT(r
->out
);
10681 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10682 if (_ptr_server_name
) {
10683 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10685 r
->in
.server_name
= NULL
;
10687 if (r
->in
.server_name
) {
10688 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10689 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10690 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10691 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10692 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10693 return 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
));
10695 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10696 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
));
10697 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10699 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10700 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10701 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10702 return 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
));
10704 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10705 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
));
10706 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10707 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10708 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10709 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10710 return 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
));
10712 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10713 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
));
10714 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10715 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10717 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10718 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10719 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10720 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10721 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10722 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
10724 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10725 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
10726 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
10727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
10728 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10729 ZERO_STRUCTP(r
->out
.return_credentials
);
10730 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
10731 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
10733 if (flags
& NDR_OUT
) {
10734 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10735 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10737 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10738 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10739 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10741 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10742 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
10744 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10745 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
10746 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
10747 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
10748 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10750 return NDR_ERR_SUCCESS
;
10753 _PUBLIC_
void ndr_print_netr_ServerAuthenticate2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate2
*r
)
10755 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate2");
10757 if (flags
& NDR_SET_VALUES
) {
10758 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10760 if (flags
& NDR_IN
) {
10761 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate2");
10763 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10765 if (r
->in
.server_name
) {
10766 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10769 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10770 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10771 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10772 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10774 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10776 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
10778 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
10782 if (flags
& NDR_OUT
) {
10783 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate2");
10785 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10787 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10789 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
10791 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
10793 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10799 static enum ndr_err_code
ndr_push_netr_DatabaseSync2(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync2
*r
)
10801 if (flags
& NDR_IN
) {
10802 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10805 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
));
10806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10809 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10810 if (r
->in
.credential
== NULL
) {
10811 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10813 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10814 if (r
->in
.return_authenticator
== NULL
) {
10815 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10817 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10818 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10819 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.restart_state
));
10820 if (r
->in
.sync_context
== NULL
) {
10821 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10823 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
10824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10826 if (flags
& NDR_OUT
) {
10827 if (r
->out
.return_authenticator
== NULL
) {
10828 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10830 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10831 if (r
->out
.sync_context
== NULL
) {
10832 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
10835 if (r
->out
.delta_enum_array
== NULL
) {
10836 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10838 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10839 if (*r
->out
.delta_enum_array
) {
10840 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10842 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10844 return NDR_ERR_SUCCESS
;
10847 static enum ndr_err_code
ndr_pull_netr_DatabaseSync2(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync2
*r
)
10849 uint32_t _ptr_delta_enum_array
;
10850 TALLOC_CTX
*_mem_save_credential_0
;
10851 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10852 TALLOC_CTX
*_mem_save_sync_context_0
;
10853 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10854 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10855 if (flags
& NDR_IN
) {
10856 ZERO_STRUCT(r
->out
);
10858 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10859 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10860 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10861 return 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
));
10863 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10864 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
));
10865 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10866 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10867 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10868 return 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
));
10870 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10871 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10872 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10873 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10875 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10876 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10877 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10878 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10879 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10880 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10882 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10883 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10884 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10886 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10887 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.restart_state
));
10888 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10889 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
10891 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10892 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10893 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
10894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10895 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10896 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10897 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10898 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10899 *r
->out
.sync_context
= *r
->in
.sync_context
;
10900 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10901 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10903 if (flags
& NDR_OUT
) {
10904 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10905 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10907 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10908 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10909 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10910 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10911 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10912 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10914 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10915 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
10917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10918 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10919 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10921 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10922 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10924 if (_ptr_delta_enum_array
) {
10925 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10927 *r
->out
.delta_enum_array
= NULL
;
10929 if (*r
->out
.delta_enum_array
) {
10930 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10931 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10932 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10936 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10938 return NDR_ERR_SUCCESS
;
10941 _PUBLIC_
void ndr_print_netr_DatabaseSync2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync2
*r
)
10943 ndr_print_struct(ndr
, name
, "netr_DatabaseSync2");
10945 if (flags
& NDR_SET_VALUES
) {
10946 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10948 if (flags
& NDR_IN
) {
10949 ndr_print_struct(ndr
, "in", "netr_DatabaseSync2");
10951 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10952 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10953 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10955 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10957 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10959 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10961 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10962 ndr_print_uint16(ndr
, "restart_state", r
->in
.restart_state
);
10963 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
10965 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
10967 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10970 if (flags
& NDR_OUT
) {
10971 ndr_print_struct(ndr
, "out", "netr_DatabaseSync2");
10973 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10975 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10977 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
10979 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
10981 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10983 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10985 if (*r
->out
.delta_enum_array
) {
10986 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10990 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10996 static enum ndr_err_code
ndr_push_netr_DatabaseRedo(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseRedo
*r
)
10998 if (flags
& NDR_IN
) {
10999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11002 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
));
11003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11004 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11006 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11007 if (r
->in
.credential
== NULL
) {
11008 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11010 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
11011 if (r
->in
.return_authenticator
== NULL
) {
11012 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11014 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11016 struct ndr_push
*_ndr_change_log_entry
;
11017 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_change_log_entry
, 4, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->flags
)));
11018 NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
11019 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_change_log_entry
, 4, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->flags
)));
11021 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->flags
)));
11023 if (flags
& NDR_OUT
) {
11024 if (r
->out
.return_authenticator
== NULL
) {
11025 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11027 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11028 if (r
->out
.delta_enum_array
== NULL
) {
11029 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11031 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
11032 if (*r
->out
.delta_enum_array
) {
11033 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
11035 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11037 return NDR_ERR_SUCCESS
;
11040 static enum ndr_err_code
ndr_pull_netr_DatabaseRedo(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseRedo
*r
)
11042 uint32_t _ptr_delta_enum_array
;
11043 TALLOC_CTX
*_mem_save_credential_0
;
11044 TALLOC_CTX
*_mem_save_return_authenticator_0
;
11045 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
11046 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
11047 if (flags
& NDR_IN
) {
11048 ZERO_STRUCT(r
->out
);
11050 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11051 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11052 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11053 return 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
));
11055 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11056 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
));
11057 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
11058 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
11059 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
11060 return 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
));
11062 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
11063 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
11064 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11065 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
11067 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11068 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
11069 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
11070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
11071 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11072 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
11074 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11075 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11076 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11077 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11079 struct ndr_pull
*_ndr_change_log_entry
;
11080 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
11081 NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
11082 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
11084 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_log_entry_size
));
11085 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11086 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
11087 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
11088 ZERO_STRUCTP(r
->out
.delta_enum_array
);
11090 if (flags
& NDR_OUT
) {
11091 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11092 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11094 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11095 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11096 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11098 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11099 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
11101 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11102 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
11103 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
11104 if (_ptr_delta_enum_array
) {
11105 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
11107 *r
->out
.delta_enum_array
= NULL
;
11109 if (*r
->out
.delta_enum_array
) {
11110 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11111 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
11112 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
11113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
11115 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
11116 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11118 return NDR_ERR_SUCCESS
;
11121 _PUBLIC_
void ndr_print_netr_DatabaseRedo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseRedo
*r
)
11123 ndr_print_struct(ndr
, name
, "netr_DatabaseRedo");
11125 if (flags
& NDR_SET_VALUES
) {
11126 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11128 if (flags
& NDR_IN
) {
11129 ndr_print_struct(ndr
, "in", "netr_DatabaseRedo");
11131 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11132 ndr_print_string(ndr
, "computername", r
->in
.computername
);
11133 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
11135 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
11137 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11139 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11141 ndr_print_netr_ChangeLogEntry(ndr
, "change_log_entry", &r
->in
.change_log_entry
);
11142 ndr_print_uint32(ndr
, "change_log_entry_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->flags
):r
->in
.change_log_entry_size
);
11145 if (flags
& NDR_OUT
) {
11146 ndr_print_struct(ndr
, "out", "netr_DatabaseRedo");
11148 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11150 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11152 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
11154 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
11156 if (*r
->out
.delta_enum_array
) {
11157 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
11161 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11167 static enum ndr_err_code
ndr_push_netr_LogonControl2Ex(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2Ex
*r
)
11169 if (flags
& NDR_IN
) {
11170 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11171 if (r
->in
.logon_server
) {
11172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11175 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
));
11177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11179 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
));
11180 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
11182 if (flags
& NDR_OUT
) {
11183 if (r
->out
.query
== NULL
) {
11184 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11186 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11187 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11188 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11190 return NDR_ERR_SUCCESS
;
11193 static enum ndr_err_code
ndr_pull_netr_LogonControl2Ex(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2Ex
*r
)
11195 uint32_t _ptr_logon_server
;
11196 TALLOC_CTX
*_mem_save_logon_server_0
;
11197 TALLOC_CTX
*_mem_save_query_0
;
11198 if (flags
& NDR_IN
) {
11199 ZERO_STRUCT(r
->out
);
11201 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11202 if (_ptr_logon_server
) {
11203 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11205 r
->in
.logon_server
= NULL
;
11207 if (r
->in
.logon_server
) {
11208 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11209 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11210 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11211 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11212 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11213 return 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
));
11215 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11216 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
));
11217 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11219 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11220 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11221 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
));
11222 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
11223 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11224 ZERO_STRUCTP(r
->out
.query
);
11226 if (flags
& NDR_OUT
) {
11227 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11228 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11230 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11231 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11232 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11233 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11234 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11235 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11237 return NDR_ERR_SUCCESS
;
11240 _PUBLIC_
void ndr_print_netr_LogonControl2Ex(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2Ex
*r
)
11242 ndr_print_struct(ndr
, name
, "netr_LogonControl2Ex");
11244 if (flags
& NDR_SET_VALUES
) {
11245 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11247 if (flags
& NDR_IN
) {
11248 ndr_print_struct(ndr
, "in", "netr_LogonControl2Ex");
11250 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11252 if (r
->in
.logon_server
) {
11253 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11256 ndr_print_uint32(ndr
, "function_code", r
->in
.function_code
);
11257 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11258 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
);
11259 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", &r
->in
.data
);
11262 if (flags
& NDR_OUT
) {
11263 ndr_print_struct(ndr
, "out", "netr_LogonControl2Ex");
11265 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11267 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11268 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11270 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11276 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
11278 if (flags
& NDR_IN
) {
11279 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11280 if (r
->in
.server_name
) {
11281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11282 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11283 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11284 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
));
11287 if (flags
& NDR_OUT
) {
11288 if (r
->out
.trusted_domains_blob
== NULL
) {
11289 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11291 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
11292 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11294 return NDR_ERR_SUCCESS
;
11297 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomains
*r
)
11299 uint32_t _ptr_server_name
;
11300 TALLOC_CTX
*_mem_save_server_name_0
;
11301 TALLOC_CTX
*_mem_save_trusted_domains_blob_0
;
11302 if (flags
& NDR_IN
) {
11303 ZERO_STRUCT(r
->out
);
11305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11306 if (_ptr_server_name
) {
11307 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11309 r
->in
.server_name
= NULL
;
11311 if (r
->in
.server_name
) {
11312 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11313 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11314 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11315 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11316 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11317 return 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
));
11319 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11320 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
));
11321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11323 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
11324 ZERO_STRUCTP(r
->out
.trusted_domains_blob
);
11326 if (flags
& NDR_OUT
) {
11327 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11328 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
11330 _mem_save_trusted_domains_blob_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11331 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusted_domains_blob
, LIBNDR_FLAG_REF_ALLOC
);
11332 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
11333 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_blob_0
, LIBNDR_FLAG_REF_ALLOC
);
11334 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11336 return NDR_ERR_SUCCESS
;
11339 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
11341 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomains");
11343 if (flags
& NDR_SET_VALUES
) {
11344 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11346 if (flags
& NDR_IN
) {
11347 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomains");
11349 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
11351 if (r
->in
.server_name
) {
11352 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11357 if (flags
& NDR_OUT
) {
11358 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomains");
11360 ndr_print_ptr(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
11362 ndr_print_netr_Blob(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
11364 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11370 static enum ndr_err_code
ndr_push_netr_DsRGetDCName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCName
*r
)
11372 if (flags
& NDR_IN
) {
11373 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
11374 if (r
->in
.server_unc
) {
11375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
11376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
11378 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
));
11380 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
11381 if (r
->in
.domain_name
) {
11382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
11383 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
11385 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
));
11387 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
11388 if (r
->in
.domain_guid
) {
11389 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
11391 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_guid
));
11392 if (r
->in
.site_guid
) {
11393 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
11395 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
11397 if (flags
& NDR_OUT
) {
11398 if (r
->out
.info
== NULL
) {
11399 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11401 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
11402 if (*r
->out
.info
) {
11403 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
11405 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11407 return NDR_ERR_SUCCESS
;
11410 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCName
*r
)
11412 uint32_t _ptr_server_unc
;
11413 uint32_t _ptr_domain_name
;
11414 uint32_t _ptr_domain_guid
;
11415 uint32_t _ptr_site_guid
;
11416 uint32_t _ptr_info
;
11417 TALLOC_CTX
*_mem_save_server_unc_0
;
11418 TALLOC_CTX
*_mem_save_domain_name_0
;
11419 TALLOC_CTX
*_mem_save_domain_guid_0
;
11420 TALLOC_CTX
*_mem_save_site_guid_0
;
11421 TALLOC_CTX
*_mem_save_info_0
;
11422 TALLOC_CTX
*_mem_save_info_1
;
11423 if (flags
& NDR_IN
) {
11424 ZERO_STRUCT(r
->out
);
11426 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
11427 if (_ptr_server_unc
) {
11428 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
11430 r
->in
.server_unc
= NULL
;
11432 if (r
->in
.server_unc
) {
11433 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11434 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
11435 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
11436 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
11437 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
11438 return 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
));
11440 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
11441 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
));
11442 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
11444 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
11445 if (_ptr_domain_name
) {
11446 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
11448 r
->in
.domain_name
= NULL
;
11450 if (r
->in
.domain_name
) {
11451 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11452 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
11453 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
11454 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
11455 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
11456 return 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
));
11458 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
11459 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
));
11460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
11462 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
11463 if (_ptr_domain_guid
) {
11464 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
11466 r
->in
.domain_guid
= NULL
;
11468 if (r
->in
.domain_guid
) {
11469 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11470 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
11471 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
11472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
11474 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_guid
));
11475 if (_ptr_site_guid
) {
11476 NDR_PULL_ALLOC(ndr
, r
->in
.site_guid
);
11478 r
->in
.site_guid
= NULL
;
11480 if (r
->in
.site_guid
) {
11481 _mem_save_site_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11482 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_guid
, 0);
11483 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
11484 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_guid_0
, 0);
11486 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
11487 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11488 ZERO_STRUCTP(r
->out
.info
);
11490 if (flags
& NDR_OUT
) {
11491 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11492 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11494 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11495 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
11496 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
11498 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
11500 *r
->out
.info
= NULL
;
11502 if (*r
->out
.info
) {
11503 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11504 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
11505 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
11506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
11508 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
11509 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11511 return NDR_ERR_SUCCESS
;
11514 _PUBLIC_
void ndr_print_netr_DsRGetDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCName
*r
)
11516 ndr_print_struct(ndr
, name
, "netr_DsRGetDCName");
11518 if (flags
& NDR_SET_VALUES
) {
11519 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11521 if (flags
& NDR_IN
) {
11522 ndr_print_struct(ndr
, "in", "netr_DsRGetDCName");
11524 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
11526 if (r
->in
.server_unc
) {
11527 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
11530 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
11532 if (r
->in
.domain_name
) {
11533 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
11536 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
11538 if (r
->in
.domain_guid
) {
11539 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
11542 ndr_print_ptr(ndr
, "site_guid", r
->in
.site_guid
);
11544 if (r
->in
.site_guid
) {
11545 ndr_print_GUID(ndr
, "site_guid", r
->in
.site_guid
);
11548 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
11551 if (flags
& NDR_OUT
) {
11552 ndr_print_struct(ndr
, "out", "netr_DsRGetDCName");
11554 ndr_print_ptr(ndr
, "info", r
->out
.info
);
11556 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
11558 if (*r
->out
.info
) {
11559 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
11563 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11569 static enum ndr_err_code
ndr_push_netr_LogonGetCapabilities(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetCapabilities
*r
)
11571 if (flags
& NDR_IN
) {
11572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11574 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11575 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
));
11576 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
11577 if (r
->in
.computer_name
) {
11578 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11581 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
));
11583 if (r
->in
.credential
== NULL
) {
11584 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11586 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
11587 if (r
->in
.return_authenticator
== NULL
) {
11588 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11590 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.query_level
));
11593 if (flags
& NDR_OUT
) {
11594 if (r
->out
.return_authenticator
== NULL
) {
11595 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11597 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11598 if (r
->out
.capabilities
== NULL
) {
11599 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11601 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
11602 NDR_CHECK(ndr_push_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
11603 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11605 return NDR_ERR_SUCCESS
;
11608 static enum ndr_err_code
ndr_pull_netr_LogonGetCapabilities(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetCapabilities
*r
)
11610 uint32_t _ptr_computer_name
;
11611 TALLOC_CTX
*_mem_save_computer_name_0
;
11612 TALLOC_CTX
*_mem_save_credential_0
;
11613 TALLOC_CTX
*_mem_save_return_authenticator_0
;
11614 TALLOC_CTX
*_mem_save_capabilities_0
;
11615 if (flags
& NDR_IN
) {
11616 ZERO_STRUCT(r
->out
);
11618 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11619 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11620 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11621 return 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
));
11623 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11624 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
));
11625 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
11626 if (_ptr_computer_name
) {
11627 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
11629 r
->in
.computer_name
= NULL
;
11631 if (r
->in
.computer_name
) {
11632 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11633 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
11634 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11635 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11636 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11637 return 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
));
11639 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
11640 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
));
11641 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
11643 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11644 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
11646 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11647 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
11648 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
11649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
11650 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11651 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
11653 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11654 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11655 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11656 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11657 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.query_level
));
11658 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11659 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
11660 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
11661 ZERO_STRUCTP(r
->out
.capabilities
);
11663 if (flags
& NDR_OUT
) {
11664 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11665 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11667 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11668 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11669 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11670 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11671 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11672 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
11674 _mem_save_capabilities_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11675 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.capabilities
, LIBNDR_FLAG_REF_ALLOC
);
11676 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
11677 NDR_CHECK(ndr_pull_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
11678 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_capabilities_0
, LIBNDR_FLAG_REF_ALLOC
);
11679 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11681 return NDR_ERR_SUCCESS
;
11684 _PUBLIC_
void ndr_print_netr_LogonGetCapabilities(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetCapabilities
*r
)
11686 ndr_print_struct(ndr
, name
, "netr_LogonGetCapabilities");
11688 if (flags
& NDR_SET_VALUES
) {
11689 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11691 if (flags
& NDR_IN
) {
11692 ndr_print_struct(ndr
, "in", "netr_LogonGetCapabilities");
11694 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11695 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
11697 if (r
->in
.computer_name
) {
11698 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
11701 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
11703 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
11705 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11707 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11709 ndr_print_uint32(ndr
, "query_level", r
->in
.query_level
);
11712 if (flags
& NDR_OUT
) {
11713 ndr_print_struct(ndr
, "out", "netr_LogonGetCapabilities");
11715 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11717 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11719 ndr_print_ptr(ndr
, "capabilities", r
->out
.capabilities
);
11721 ndr_print_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
);
11722 ndr_print_netr_Capabilities(ndr
, "capabilities", r
->out
.capabilities
);
11724 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11730 static enum ndr_err_code
ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
11732 if (flags
& NDR_IN
) {
11734 if (flags
& NDR_OUT
) {
11735 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11737 return NDR_ERR_SUCCESS
;
11740 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSETSERVICEBITS
*r
)
11742 if (flags
& NDR_IN
) {
11744 if (flags
& NDR_OUT
) {
11745 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11747 return NDR_ERR_SUCCESS
;
11750 _PUBLIC_
void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
11752 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSETSERVICEBITS");
11754 if (flags
& NDR_SET_VALUES
) {
11755 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11757 if (flags
& NDR_IN
) {
11758 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSETSERVICEBITS");
11762 if (flags
& NDR_OUT
) {
11763 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSETSERVICEBITS");
11765 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11771 static enum ndr_err_code
ndr_push_netr_LogonGetTrustRid(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetTrustRid
*r
)
11773 if (flags
& NDR_IN
) {
11774 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11775 if (r
->in
.server_name
) {
11776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11777 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11778 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11779 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
));
11781 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
11782 if (r
->in
.domain_name
) {
11783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
11784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
11786 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
));
11789 if (flags
& NDR_OUT
) {
11790 if (r
->out
.rid
== NULL
) {
11791 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
11794 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11796 return NDR_ERR_SUCCESS
;
11799 static enum ndr_err_code
ndr_pull_netr_LogonGetTrustRid(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetTrustRid
*r
)
11801 uint32_t _ptr_server_name
;
11802 uint32_t _ptr_domain_name
;
11803 TALLOC_CTX
*_mem_save_server_name_0
;
11804 TALLOC_CTX
*_mem_save_domain_name_0
;
11805 TALLOC_CTX
*_mem_save_rid_0
;
11806 if (flags
& NDR_IN
) {
11807 ZERO_STRUCT(r
->out
);
11809 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11810 if (_ptr_server_name
) {
11811 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11813 r
->in
.server_name
= NULL
;
11815 if (r
->in
.server_name
) {
11816 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11817 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11818 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11819 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11820 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11821 return 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
));
11823 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11824 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
));
11825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11827 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
11828 if (_ptr_domain_name
) {
11829 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
11831 r
->in
.domain_name
= NULL
;
11833 if (r
->in
.domain_name
) {
11834 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11835 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
11836 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
11837 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
11838 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
11839 return 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
));
11841 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
11842 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
));
11843 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
11845 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
11846 ZERO_STRUCTP(r
->out
.rid
);
11848 if (flags
& NDR_OUT
) {
11849 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11850 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
11852 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11853 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
11854 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
11855 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
11856 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11858 return NDR_ERR_SUCCESS
;
11861 _PUBLIC_
void ndr_print_netr_LogonGetTrustRid(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetTrustRid
*r
)
11863 ndr_print_struct(ndr
, name
, "netr_LogonGetTrustRid");
11865 if (flags
& NDR_SET_VALUES
) {
11866 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11868 if (flags
& NDR_IN
) {
11869 ndr_print_struct(ndr
, "in", "netr_LogonGetTrustRid");
11871 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
11873 if (r
->in
.server_name
) {
11874 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11877 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
11879 if (r
->in
.domain_name
) {
11880 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
11885 if (flags
& NDR_OUT
) {
11886 ndr_print_struct(ndr
, "out", "netr_LogonGetTrustRid");
11888 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
11890 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
11892 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11898 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
11900 if (flags
& NDR_IN
) {
11902 if (flags
& NDR_OUT
) {
11903 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11905 return NDR_ERR_SUCCESS
;
11908 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
11910 if (flags
& NDR_IN
) {
11912 if (flags
& NDR_OUT
) {
11913 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11915 return NDR_ERR_SUCCESS
;
11918 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
11920 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11922 if (flags
& NDR_SET_VALUES
) {
11923 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11925 if (flags
& NDR_IN
) {
11926 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11930 if (flags
& NDR_OUT
) {
11931 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11933 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11939 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
11941 if (flags
& NDR_IN
) {
11943 if (flags
& NDR_OUT
) {
11944 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11946 return NDR_ERR_SUCCESS
;
11949 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
11951 if (flags
& NDR_IN
) {
11953 if (flags
& NDR_OUT
) {
11954 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11956 return NDR_ERR_SUCCESS
;
11959 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
11961 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11963 if (flags
& NDR_SET_VALUES
) {
11964 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11966 if (flags
& NDR_IN
) {
11967 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11971 if (flags
& NDR_OUT
) {
11972 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11974 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11980 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate3(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate3
*r
)
11982 if (flags
& NDR_IN
) {
11983 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11984 if (r
->in
.server_name
) {
11985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11988 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
));
11990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11993 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
));
11994 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
11995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11997 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11998 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
));
11999 if (r
->in
.credentials
== NULL
) {
12000 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12002 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
12003 if (r
->in
.negotiate_flags
== NULL
) {
12004 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12006 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
12008 if (flags
& NDR_OUT
) {
12009 if (r
->out
.credentials
== NULL
) {
12010 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12012 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
12013 if (r
->out
.negotiate_flags
== NULL
) {
12014 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12016 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
12017 if (r
->out
.rid
== NULL
) {
12018 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
12021 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12023 return NDR_ERR_SUCCESS
;
12026 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate3(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate3
*r
)
12028 uint32_t _ptr_server_name
;
12029 TALLOC_CTX
*_mem_save_server_name_0
;
12030 TALLOC_CTX
*_mem_save_credentials_0
;
12031 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
12032 TALLOC_CTX
*_mem_save_rid_0
;
12033 if (flags
& NDR_IN
) {
12034 ZERO_STRUCT(r
->out
);
12036 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12037 if (_ptr_server_name
) {
12038 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12040 r
->in
.server_name
= NULL
;
12042 if (r
->in
.server_name
) {
12043 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12044 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12045 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12046 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12047 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12048 return 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
));
12050 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12051 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
));
12052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12054 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
12055 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
12056 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
12057 return 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
));
12059 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
12060 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
));
12061 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
12062 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12063 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12064 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12065 return 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
));
12067 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12068 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
));
12069 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12070 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
12072 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12073 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
12074 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
12075 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
12076 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12077 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
12079 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12080 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
12081 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
12082 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
12083 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
12084 *r
->out
.credentials
= *r
->in
.credentials
;
12085 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
12086 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
12087 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
12088 ZERO_STRUCTP(r
->out
.rid
);
12090 if (flags
& NDR_OUT
) {
12091 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12092 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
12094 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12095 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
12096 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
12097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
12098 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12099 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
12101 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12102 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
12103 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
12104 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
12105 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12106 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
12108 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12109 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
12110 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
12111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
12112 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12114 return NDR_ERR_SUCCESS
;
12117 _PUBLIC_
void ndr_print_netr_ServerAuthenticate3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate3
*r
)
12119 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate3");
12121 if (flags
& NDR_SET_VALUES
) {
12122 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12124 if (flags
& NDR_IN
) {
12125 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate3");
12127 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12129 if (r
->in
.server_name
) {
12130 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12133 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
12134 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
12135 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12136 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
12138 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
12140 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
12142 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
12146 if (flags
& NDR_OUT
) {
12147 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate3");
12149 ndr_print_ptr(ndr
, "credentials", r
->out
.credentials
);
12151 ndr_print_netr_Credential(ndr
, "credentials", r
->out
.credentials
);
12153 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
12155 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
12157 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
12159 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
12161 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12167 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
12169 if (flags
& NDR_IN
) {
12170 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
12171 if (r
->in
.server_unc
) {
12172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12175 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
));
12177 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
12178 if (r
->in
.domain_name
) {
12179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12180 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12181 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12182 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
));
12184 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
12185 if (r
->in
.domain_guid
) {
12186 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12188 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
12189 if (r
->in
.site_name
) {
12190 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
12191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
12193 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
));
12195 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
12197 if (flags
& NDR_OUT
) {
12198 if (r
->out
.info
== NULL
) {
12199 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12201 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
12202 if (*r
->out
.info
) {
12203 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12205 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12207 return NDR_ERR_SUCCESS
;
12210 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx
*r
)
12212 uint32_t _ptr_server_unc
;
12213 uint32_t _ptr_domain_name
;
12214 uint32_t _ptr_domain_guid
;
12215 uint32_t _ptr_site_name
;
12216 uint32_t _ptr_info
;
12217 TALLOC_CTX
*_mem_save_server_unc_0
;
12218 TALLOC_CTX
*_mem_save_domain_name_0
;
12219 TALLOC_CTX
*_mem_save_domain_guid_0
;
12220 TALLOC_CTX
*_mem_save_site_name_0
;
12221 TALLOC_CTX
*_mem_save_info_0
;
12222 TALLOC_CTX
*_mem_save_info_1
;
12223 if (flags
& NDR_IN
) {
12224 ZERO_STRUCT(r
->out
);
12226 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
12227 if (_ptr_server_unc
) {
12228 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
12230 r
->in
.server_unc
= NULL
;
12232 if (r
->in
.server_unc
) {
12233 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12234 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
12235 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
12236 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
12237 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
12238 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_unc
), ndr_get_array_length(ndr
, &r
->in
.server_unc
));
12240 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
12241 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
));
12242 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
12244 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
12245 if (_ptr_domain_name
) {
12246 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
12248 r
->in
.domain_name
= NULL
;
12250 if (r
->in
.domain_name
) {
12251 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12252 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
12253 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
12254 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
12255 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
12256 return 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
));
12258 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
12259 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
));
12260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
12262 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
12263 if (_ptr_domain_guid
) {
12264 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
12266 r
->in
.domain_guid
= NULL
;
12268 if (r
->in
.domain_guid
) {
12269 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12270 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
12271 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12272 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
12274 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
12275 if (_ptr_site_name
) {
12276 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
12278 r
->in
.site_name
= NULL
;
12280 if (r
->in
.site_name
) {
12281 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12282 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
12283 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
12284 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
12285 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
12286 return 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
));
12288 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
12289 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
));
12290 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
12292 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
12293 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12294 ZERO_STRUCTP(r
->out
.info
);
12296 if (flags
& NDR_OUT
) {
12297 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12298 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12300 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12301 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
12302 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
12304 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
12306 *r
->out
.info
= NULL
;
12308 if (*r
->out
.info
) {
12309 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12310 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
12311 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
12314 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
12315 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12317 return NDR_ERR_SUCCESS
;
12320 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
12322 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx");
12324 if (flags
& NDR_SET_VALUES
) {
12325 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12327 if (flags
& NDR_IN
) {
12328 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx");
12330 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
12332 if (r
->in
.server_unc
) {
12333 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
12336 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
12338 if (r
->in
.domain_name
) {
12339 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
12342 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
12344 if (r
->in
.domain_guid
) {
12345 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
12348 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
12350 if (r
->in
.site_name
) {
12351 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
12354 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
12357 if (flags
& NDR_OUT
) {
12358 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx");
12360 ndr_print_ptr(ndr
, "info", r
->out
.info
);
12362 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
12364 if (*r
->out
.info
) {
12365 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
12369 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12375 static enum ndr_err_code
ndr_push_netr_DsRGetSiteName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetSiteName
*r
)
12377 if (flags
& NDR_IN
) {
12378 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
12379 if (r
->in
.computer_name
) {
12380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12383 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
));
12386 if (flags
& NDR_OUT
) {
12387 if (r
->out
.site
== NULL
) {
12388 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12390 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.site
));
12391 if (*r
->out
.site
) {
12392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
12393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
12395 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.site
, ndr_charset_length(*r
->out
.site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12397 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12399 return NDR_ERR_SUCCESS
;
12402 static enum ndr_err_code
ndr_pull_netr_DsRGetSiteName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetSiteName
*r
)
12404 uint32_t _ptr_computer_name
;
12405 uint32_t _ptr_site
;
12406 TALLOC_CTX
*_mem_save_computer_name_0
;
12407 TALLOC_CTX
*_mem_save_site_0
;
12408 TALLOC_CTX
*_mem_save_site_1
;
12409 if (flags
& NDR_IN
) {
12410 ZERO_STRUCT(r
->out
);
12412 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
12413 if (_ptr_computer_name
) {
12414 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
12416 r
->in
.computer_name
= NULL
;
12418 if (r
->in
.computer_name
) {
12419 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12420 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
12421 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12422 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12423 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12424 return 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
));
12426 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12427 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
));
12428 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12430 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
12431 ZERO_STRUCTP(r
->out
.site
);
12433 if (flags
& NDR_OUT
) {
12434 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12435 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
12437 _mem_save_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12438 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.site
, LIBNDR_FLAG_REF_ALLOC
);
12439 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site
));
12441 NDR_PULL_ALLOC(ndr
, *r
->out
.site
);
12443 *r
->out
.site
= NULL
;
12445 if (*r
->out
.site
) {
12446 _mem_save_site_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12447 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.site
, 0);
12448 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.site
));
12449 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.site
));
12450 if (ndr_get_array_length(ndr
, r
->out
.site
) > ndr_get_array_size(ndr
, r
->out
.site
)) {
12451 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
));
12453 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t)));
12454 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.site
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t), CH_UTF16
));
12455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_1
, 0);
12457 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_0
, LIBNDR_FLAG_REF_ALLOC
);
12458 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12460 return NDR_ERR_SUCCESS
;
12463 _PUBLIC_
void ndr_print_netr_DsRGetSiteName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetSiteName
*r
)
12465 ndr_print_struct(ndr
, name
, "netr_DsRGetSiteName");
12467 if (flags
& NDR_SET_VALUES
) {
12468 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12470 if (flags
& NDR_IN
) {
12471 ndr_print_struct(ndr
, "in", "netr_DsRGetSiteName");
12473 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12475 if (r
->in
.computer_name
) {
12476 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12481 if (flags
& NDR_OUT
) {
12482 ndr_print_struct(ndr
, "out", "netr_DsRGetSiteName");
12484 ndr_print_ptr(ndr
, "site", r
->out
.site
);
12486 ndr_print_ptr(ndr
, "site", *r
->out
.site
);
12488 if (*r
->out
.site
) {
12489 ndr_print_string(ndr
, "site", *r
->out
.site
);
12493 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12499 static enum ndr_err_code
ndr_push_netr_LogonGetDomainInfo(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
12501 if (flags
& NDR_IN
) {
12502 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12505 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12506 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
12507 if (r
->in
.computer_name
) {
12508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12511 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
));
12513 if (r
->in
.credential
== NULL
) {
12514 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12516 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12517 if (r
->in
.return_authenticator
== NULL
) {
12518 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12520 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
12522 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
));
12523 NDR_CHECK(ndr_push_netr_DomainQuery(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.query
));
12525 if (flags
& NDR_OUT
) {
12526 if (r
->out
.return_authenticator
== NULL
) {
12527 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12529 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12530 if (r
->out
.info
== NULL
) {
12531 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12533 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
12534 NDR_CHECK(ndr_push_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
12535 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12537 return NDR_ERR_SUCCESS
;
12540 static enum ndr_err_code
ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetDomainInfo
*r
)
12542 uint32_t _ptr_computer_name
;
12543 TALLOC_CTX
*_mem_save_computer_name_0
;
12544 TALLOC_CTX
*_mem_save_credential_0
;
12545 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12546 TALLOC_CTX
*_mem_save_info_0
;
12547 if (flags
& NDR_IN
) {
12548 ZERO_STRUCT(r
->out
);
12550 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12551 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12552 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12553 return 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
));
12555 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12556 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
));
12557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
12558 if (_ptr_computer_name
) {
12559 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
12561 r
->in
.computer_name
= NULL
;
12563 if (r
->in
.computer_name
) {
12564 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12565 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
12566 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12567 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12568 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12569 return 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
));
12571 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12572 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
));
12573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12575 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12576 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12578 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12579 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12580 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12582 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12583 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12585 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12586 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12587 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12589 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
12590 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
));
12591 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.query
));
12592 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12593 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12594 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12595 ZERO_STRUCTP(r
->out
.info
);
12597 if (flags
& NDR_OUT
) {
12598 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12599 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12601 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12602 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12603 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12605 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12606 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12608 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12609 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
12610 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
12611 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
12612 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
12613 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12615 return NDR_ERR_SUCCESS
;
12618 _PUBLIC_
void ndr_print_netr_LogonGetDomainInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
12620 ndr_print_struct(ndr
, name
, "netr_LogonGetDomainInfo");
12622 if (flags
& NDR_SET_VALUES
) {
12623 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12625 if (flags
& NDR_IN
) {
12626 ndr_print_struct(ndr
, "in", "netr_LogonGetDomainInfo");
12628 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12629 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12631 if (r
->in
.computer_name
) {
12632 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12635 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12637 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12639 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12641 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12643 ndr_print_uint32(ndr
, "level", r
->in
.level
);
12644 ndr_print_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
);
12645 ndr_print_netr_DomainQuery(ndr
, "query", &r
->in
.query
);
12648 if (flags
& NDR_OUT
) {
12649 ndr_print_struct(ndr
, "out", "netr_LogonGetDomainInfo");
12651 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12653 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12655 ndr_print_ptr(ndr
, "info", r
->out
.info
);
12657 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
12658 ndr_print_netr_DomainInfo(ndr
, "info", r
->out
.info
);
12660 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12666 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet2
*r
)
12668 if (flags
& NDR_IN
) {
12669 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12670 if (r
->in
.server_name
) {
12671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12672 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12674 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
));
12676 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
12677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
12679 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
));
12680 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
12681 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12683 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12684 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
));
12685 if (r
->in
.credential
== NULL
) {
12686 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12688 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12689 if (r
->in
.new_password
== NULL
) {
12690 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12692 NDR_CHECK(ndr_push_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
12694 if (flags
& NDR_OUT
) {
12695 if (r
->out
.return_authenticator
== NULL
) {
12696 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12698 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12699 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12701 return NDR_ERR_SUCCESS
;
12704 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet2
*r
)
12706 uint32_t _ptr_server_name
;
12707 TALLOC_CTX
*_mem_save_server_name_0
;
12708 TALLOC_CTX
*_mem_save_credential_0
;
12709 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12710 TALLOC_CTX
*_mem_save_new_password_0
;
12711 if (flags
& NDR_IN
) {
12712 ZERO_STRUCT(r
->out
);
12714 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12715 if (_ptr_server_name
) {
12716 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12718 r
->in
.server_name
= NULL
;
12720 if (r
->in
.server_name
) {
12721 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12722 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12723 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12724 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12725 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12726 return 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
));
12728 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12729 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
));
12730 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12732 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
12733 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
12734 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
12735 return 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
));
12737 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
12738 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
));
12739 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
12740 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12741 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12742 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12743 return 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
));
12745 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12746 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
));
12747 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12748 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12750 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12751 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12752 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12753 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12754 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12755 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
12757 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12758 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
12759 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
12760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
12761 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12762 ZERO_STRUCTP(r
->out
.return_authenticator
);
12764 if (flags
& NDR_OUT
) {
12765 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12766 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12768 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12769 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12770 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12772 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12774 return NDR_ERR_SUCCESS
;
12777 _PUBLIC_
void ndr_print_netr_ServerPasswordSet2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet2
*r
)
12779 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet2");
12781 if (flags
& NDR_SET_VALUES
) {
12782 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12784 if (flags
& NDR_IN
) {
12785 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet2");
12787 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12789 if (r
->in
.server_name
) {
12790 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12793 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
12794 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
12795 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12796 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12798 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12800 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
12802 ndr_print_netr_CryptPassword(ndr
, "new_password", r
->in
.new_password
);
12806 if (flags
& NDR_OUT
) {
12807 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet2");
12809 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12811 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12813 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12819 static enum ndr_err_code
ndr_push_netr_ServerPasswordGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordGet
*r
)
12821 if (flags
& NDR_IN
) {
12822 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12823 if (r
->in
.server_name
) {
12824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12827 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
));
12829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
12830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
12832 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
));
12833 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
12834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12837 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
));
12838 if (r
->in
.credential
== NULL
) {
12839 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12841 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12843 if (flags
& NDR_OUT
) {
12844 if (r
->out
.return_authenticator
== NULL
) {
12845 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12847 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12848 if (r
->out
.password
== NULL
) {
12849 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12851 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
12852 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12854 return NDR_ERR_SUCCESS
;
12857 static enum ndr_err_code
ndr_pull_netr_ServerPasswordGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordGet
*r
)
12859 uint32_t _ptr_server_name
;
12860 TALLOC_CTX
*_mem_save_server_name_0
;
12861 TALLOC_CTX
*_mem_save_credential_0
;
12862 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12863 TALLOC_CTX
*_mem_save_password_0
;
12864 if (flags
& NDR_IN
) {
12865 ZERO_STRUCT(r
->out
);
12867 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12868 if (_ptr_server_name
) {
12869 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12871 r
->in
.server_name
= NULL
;
12873 if (r
->in
.server_name
) {
12874 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12875 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12876 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12877 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12878 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12879 return 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
));
12881 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12882 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
));
12883 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12885 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
12886 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
12887 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
12888 return 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
));
12890 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
12891 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
));
12892 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
12893 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12894 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12895 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12896 return 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
));
12898 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12899 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
));
12900 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12901 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12903 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12904 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12905 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12907 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12908 ZERO_STRUCTP(r
->out
.return_authenticator
);
12909 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
12910 ZERO_STRUCTP(r
->out
.password
);
12912 if (flags
& NDR_OUT
) {
12913 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12914 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12916 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12917 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12918 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12920 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12921 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
12923 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12924 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
12925 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
12926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
12927 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12929 return NDR_ERR_SUCCESS
;
12932 _PUBLIC_
void ndr_print_netr_ServerPasswordGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordGet
*r
)
12934 ndr_print_struct(ndr
, name
, "netr_ServerPasswordGet");
12936 if (flags
& NDR_SET_VALUES
) {
12937 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12939 if (flags
& NDR_IN
) {
12940 ndr_print_struct(ndr
, "in", "netr_ServerPasswordGet");
12942 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12944 if (r
->in
.server_name
) {
12945 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12948 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
12949 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
12950 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12951 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12953 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12957 if (flags
& NDR_OUT
) {
12958 ndr_print_struct(ndr
, "out", "netr_ServerPasswordGet");
12960 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12962 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12964 ndr_print_ptr(ndr
, "password", r
->out
.password
);
12966 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
12968 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12974 static enum ndr_err_code
ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
12976 if (flags
& NDR_IN
) {
12978 if (flags
& NDR_OUT
) {
12979 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12981 return NDR_ERR_SUCCESS
;
12984 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSENDTOSAM
*r
)
12986 if (flags
& NDR_IN
) {
12988 if (flags
& NDR_OUT
) {
12989 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12991 return NDR_ERR_SUCCESS
;
12994 _PUBLIC_
void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
12996 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSENDTOSAM");
12998 if (flags
& NDR_SET_VALUES
) {
12999 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13001 if (flags
& NDR_IN
) {
13002 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSENDTOSAM");
13006 if (flags
& NDR_OUT
) {
13007 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSENDTOSAM");
13009 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13015 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
13017 uint32_t cntr_addresses_1
;
13018 if (flags
& NDR_IN
) {
13019 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13020 if (r
->in
.server_name
) {
13021 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13022 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13023 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13024 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
));
13026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
13027 if (r
->in
.addresses
== NULL
) {
13028 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
13031 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13032 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
13034 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13035 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
13038 if (flags
& NDR_OUT
) {
13039 if (r
->out
.ctr
== NULL
) {
13040 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13042 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
13044 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
13046 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13048 return NDR_ERR_SUCCESS
;
13051 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesW
*r
)
13053 uint32_t _ptr_server_name
;
13054 uint32_t cntr_addresses_1
;
13056 TALLOC_CTX
*_mem_save_server_name_0
;
13057 TALLOC_CTX
*_mem_save_addresses_1
;
13058 TALLOC_CTX
*_mem_save_ctr_0
;
13059 TALLOC_CTX
*_mem_save_ctr_1
;
13060 if (flags
& NDR_IN
) {
13061 ZERO_STRUCT(r
->out
);
13063 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13064 if (_ptr_server_name
) {
13065 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13067 r
->in
.server_name
= NULL
;
13069 if (r
->in
.server_name
) {
13070 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13071 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13072 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13073 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13074 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13075 return 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
));
13077 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13078 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
));
13079 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13081 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
13082 if (r
->in
.count
< 0 || r
->in
.count
> 32000) {
13083 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
13085 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
13086 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13087 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
13089 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13090 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
13091 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13092 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
13094 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13095 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
13097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
13098 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13099 ZERO_STRUCTP(r
->out
.ctr
);
13100 if (r
->in
.addresses
) {
13101 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
13104 if (flags
& NDR_OUT
) {
13105 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13106 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13108 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13109 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
13110 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
13112 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
13114 *r
->out
.ctr
= NULL
;
13117 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13118 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
13119 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
13120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
13122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
13123 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13125 return NDR_ERR_SUCCESS
;
13128 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
13130 uint32_t cntr_addresses_1
;
13131 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesW");
13133 if (flags
& NDR_SET_VALUES
) {
13134 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13136 if (flags
& NDR_IN
) {
13137 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesW");
13139 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13141 if (r
->in
.server_name
) {
13142 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13145 ndr_print_uint32(ndr
, "count", r
->in
.count
);
13146 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
13148 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
13150 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
13152 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
13153 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
13161 if (flags
& NDR_OUT
) {
13162 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesW");
13164 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
13166 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
13169 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr
, "ctr", *r
->out
.ctr
);
13173 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13179 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx2(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
13181 if (flags
& NDR_IN
) {
13182 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
13183 if (r
->in
.server_unc
) {
13184 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13186 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13187 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
));
13189 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.client_account
));
13190 if (r
->in
.client_account
) {
13191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
13192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13193 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
13194 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
));
13196 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->in
.mask
));
13197 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13198 if (r
->in
.domain_name
) {
13199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13202 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
));
13204 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
13205 if (r
->in
.domain_guid
) {
13206 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13208 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
13209 if (r
->in
.site_name
) {
13210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13213 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
));
13215 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
13217 if (flags
& NDR_OUT
) {
13218 if (r
->out
.info
== NULL
) {
13219 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13221 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
13222 if (*r
->out
.info
) {
13223 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13225 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13227 return NDR_ERR_SUCCESS
;
13230 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx2
*r
)
13232 uint32_t _ptr_server_unc
;
13233 uint32_t _ptr_client_account
;
13234 uint32_t _ptr_domain_name
;
13235 uint32_t _ptr_domain_guid
;
13236 uint32_t _ptr_site_name
;
13237 uint32_t _ptr_info
;
13238 TALLOC_CTX
*_mem_save_server_unc_0
;
13239 TALLOC_CTX
*_mem_save_client_account_0
;
13240 TALLOC_CTX
*_mem_save_domain_name_0
;
13241 TALLOC_CTX
*_mem_save_domain_guid_0
;
13242 TALLOC_CTX
*_mem_save_site_name_0
;
13243 TALLOC_CTX
*_mem_save_info_0
;
13244 TALLOC_CTX
*_mem_save_info_1
;
13245 if (flags
& NDR_IN
) {
13246 ZERO_STRUCT(r
->out
);
13248 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
13249 if (_ptr_server_unc
) {
13250 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
13252 r
->in
.server_unc
= NULL
;
13254 if (r
->in
.server_unc
) {
13255 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13256 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
13257 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
13258 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
13259 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
13260 return 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
));
13262 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
13263 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
));
13264 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
13266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_account
));
13267 if (_ptr_client_account
) {
13268 NDR_PULL_ALLOC(ndr
, r
->in
.client_account
);
13270 r
->in
.client_account
= NULL
;
13272 if (r
->in
.client_account
) {
13273 _mem_save_client_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13274 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.client_account
, 0);
13275 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.client_account
));
13276 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.client_account
));
13277 if (ndr_get_array_length(ndr
, &r
->in
.client_account
) > ndr_get_array_size(ndr
, &r
->in
.client_account
)) {
13278 return 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
));
13280 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.client_account
), sizeof(uint16_t)));
13281 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
));
13282 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_account_0
, 0);
13284 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->in
.mask
));
13285 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13286 if (_ptr_domain_name
) {
13287 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13289 r
->in
.domain_name
= NULL
;
13291 if (r
->in
.domain_name
) {
13292 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13293 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13294 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13295 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13296 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
13297 return 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
));
13299 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
13300 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
));
13301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13303 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
13304 if (_ptr_domain_guid
) {
13305 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
13307 r
->in
.domain_guid
= NULL
;
13309 if (r
->in
.domain_guid
) {
13310 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13311 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
13312 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13313 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
13315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
13316 if (_ptr_site_name
) {
13317 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
13319 r
->in
.site_name
= NULL
;
13321 if (r
->in
.site_name
) {
13322 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13323 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
13324 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
13325 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
13326 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
13327 return 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
));
13329 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
13330 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
));
13331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
13333 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
13334 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13335 ZERO_STRUCTP(r
->out
.info
);
13337 if (flags
& NDR_OUT
) {
13338 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13339 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13341 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13342 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13343 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
13345 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
13347 *r
->out
.info
= NULL
;
13349 if (*r
->out
.info
) {
13350 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13351 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
13352 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13353 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
13355 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13356 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13358 return NDR_ERR_SUCCESS
;
13361 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
13363 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx2");
13365 if (flags
& NDR_SET_VALUES
) {
13366 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13368 if (flags
& NDR_IN
) {
13369 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx2");
13371 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
13373 if (r
->in
.server_unc
) {
13374 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
13377 ndr_print_ptr(ndr
, "client_account", r
->in
.client_account
);
13379 if (r
->in
.client_account
) {
13380 ndr_print_string(ndr
, "client_account", r
->in
.client_account
);
13383 ndr_print_samr_AcctFlags(ndr
, "mask", r
->in
.mask
);
13384 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13386 if (r
->in
.domain_name
) {
13387 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13390 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
13392 if (r
->in
.domain_guid
) {
13393 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
13396 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
13398 if (r
->in
.site_name
) {
13399 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
13402 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
13405 if (flags
& NDR_OUT
) {
13406 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx2");
13408 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13410 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
13412 if (*r
->out
.info
) {
13413 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
13417 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13423 static enum ndr_err_code
ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
13425 if (flags
& NDR_IN
) {
13427 if (flags
& NDR_OUT
) {
13428 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13430 return NDR_ERR_SUCCESS
;
13433 static enum ndr_err_code
ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
13435 if (flags
& NDR_IN
) {
13437 if (flags
& NDR_OUT
) {
13438 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13440 return NDR_ERR_SUCCESS
;
13443 _PUBLIC_
void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
13445 ndr_print_struct(ndr
, name
, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13447 if (flags
& NDR_SET_VALUES
) {
13448 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13450 if (flags
& NDR_IN
) {
13451 ndr_print_struct(ndr
, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13455 if (flags
& NDR_OUT
) {
13456 ndr_print_struct(ndr
, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13458 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13464 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
13466 if (flags
& NDR_IN
) {
13467 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13468 if (r
->in
.server_name
) {
13469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13472 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
));
13475 if (flags
& NDR_OUT
) {
13476 if (r
->out
.dom_trust_list
== NULL
) {
13477 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13479 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
13480 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13482 return NDR_ERR_SUCCESS
;
13485 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomainsEx
*r
)
13487 uint32_t _ptr_server_name
;
13488 TALLOC_CTX
*_mem_save_server_name_0
;
13489 TALLOC_CTX
*_mem_save_dom_trust_list_0
;
13490 if (flags
& NDR_IN
) {
13491 ZERO_STRUCT(r
->out
);
13493 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13494 if (_ptr_server_name
) {
13495 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13497 r
->in
.server_name
= NULL
;
13499 if (r
->in
.server_name
) {
13500 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13501 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13502 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13503 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13504 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13505 return 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
));
13507 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13508 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
));
13509 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13511 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
13512 ZERO_STRUCTP(r
->out
.dom_trust_list
);
13514 if (flags
& NDR_OUT
) {
13515 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13516 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
13518 _mem_save_dom_trust_list_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13519 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dom_trust_list
, LIBNDR_FLAG_REF_ALLOC
);
13520 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
13521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dom_trust_list_0
, LIBNDR_FLAG_REF_ALLOC
);
13522 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13524 return NDR_ERR_SUCCESS
;
13527 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
13529 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomainsEx");
13531 if (flags
& NDR_SET_VALUES
) {
13532 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13534 if (flags
& NDR_IN
) {
13535 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomainsEx");
13537 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13539 if (r
->in
.server_name
) {
13540 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13545 if (flags
& NDR_OUT
) {
13546 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomainsEx");
13548 ndr_print_ptr(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
13550 ndr_print_netr_DomainTrustList(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
13552 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13558 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
13560 uint32_t cntr_addresses_1
;
13561 if (flags
& NDR_IN
) {
13562 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13563 if (r
->in
.server_name
) {
13564 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13565 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13567 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
));
13569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
13570 if (r
->in
.addresses
== NULL
) {
13571 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
13574 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13575 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
13577 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13578 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
13581 if (flags
& NDR_OUT
) {
13582 if (r
->out
.ctr
== NULL
) {
13583 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13585 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
13587 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
13589 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13591 return NDR_ERR_SUCCESS
;
13594 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesExW
*r
)
13596 uint32_t _ptr_server_name
;
13597 uint32_t cntr_addresses_1
;
13599 TALLOC_CTX
*_mem_save_server_name_0
;
13600 TALLOC_CTX
*_mem_save_addresses_1
;
13601 TALLOC_CTX
*_mem_save_ctr_0
;
13602 TALLOC_CTX
*_mem_save_ctr_1
;
13603 if (flags
& NDR_IN
) {
13604 ZERO_STRUCT(r
->out
);
13606 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13607 if (_ptr_server_name
) {
13608 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13610 r
->in
.server_name
= NULL
;
13612 if (r
->in
.server_name
) {
13613 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13614 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13615 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13616 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13617 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13618 return 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
));
13620 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13621 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
));
13622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13624 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
13625 if (r
->in
.count
< 0 || r
->in
.count
> 32000) {
13626 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
13628 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
13629 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13630 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
13632 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13633 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
13634 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13635 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
13637 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13638 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
13640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
13641 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13642 ZERO_STRUCTP(r
->out
.ctr
);
13643 if (r
->in
.addresses
) {
13644 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
13647 if (flags
& NDR_OUT
) {
13648 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13649 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13651 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13652 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
13653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
13655 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
13657 *r
->out
.ctr
= NULL
;
13660 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13661 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
13662 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
13663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
13665 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
13666 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13668 return NDR_ERR_SUCCESS
;
13671 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
13673 uint32_t cntr_addresses_1
;
13674 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExW");
13676 if (flags
& NDR_SET_VALUES
) {
13677 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13679 if (flags
& NDR_IN
) {
13680 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesExW");
13682 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13684 if (r
->in
.server_name
) {
13685 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13688 ndr_print_uint32(ndr
, "count", r
->in
.count
);
13689 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
13691 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
13693 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
13695 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
13696 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
13704 if (flags
& NDR_OUT
) {
13705 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesExW");
13707 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
13709 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
13712 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr
, "ctr", *r
->out
.ctr
);
13716 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13722 static enum ndr_err_code
ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push
*ndr
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
13724 if (flags
& NDR_IN
) {
13725 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13726 if (r
->in
.server_name
) {
13727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13729 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13730 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
));
13733 if (flags
& NDR_OUT
) {
13734 if (r
->out
.ctr
== NULL
) {
13735 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13737 NDR_CHECK(ndr_push_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
13738 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13740 return NDR_ERR_SUCCESS
;
13743 static enum ndr_err_code
ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull
*ndr
, int flags
, struct netr_DsrGetDcSiteCoverageW
*r
)
13745 uint32_t _ptr_server_name
;
13746 TALLOC_CTX
*_mem_save_server_name_0
;
13747 TALLOC_CTX
*_mem_save_ctr_0
;
13748 if (flags
& NDR_IN
) {
13749 ZERO_STRUCT(r
->out
);
13751 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13752 if (_ptr_server_name
) {
13753 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13755 r
->in
.server_name
= NULL
;
13757 if (r
->in
.server_name
) {
13758 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13759 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13760 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13761 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13762 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13763 return 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
));
13765 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13766 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
));
13767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13769 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13770 ZERO_STRUCTP(r
->out
.ctr
);
13772 if (flags
& NDR_OUT
) {
13773 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13774 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13776 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13777 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
13778 NDR_CHECK(ndr_pull_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
13779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
13780 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13782 return NDR_ERR_SUCCESS
;
13785 _PUBLIC_
void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
13787 ndr_print_struct(ndr
, name
, "netr_DsrGetDcSiteCoverageW");
13789 if (flags
& NDR_SET_VALUES
) {
13790 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13792 if (flags
& NDR_IN
) {
13793 ndr_print_struct(ndr
, "in", "netr_DsrGetDcSiteCoverageW");
13795 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13797 if (r
->in
.server_name
) {
13798 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13803 if (flags
& NDR_OUT
) {
13804 ndr_print_struct(ndr
, "out", "netr_DsrGetDcSiteCoverageW");
13806 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
13808 ndr_print_DcSitesCtr(ndr
, "ctr", r
->out
.ctr
);
13810 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13816 static enum ndr_err_code
ndr_push_netr_LogonSamLogonEx(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonEx
*r
)
13818 if (flags
& NDR_IN
) {
13819 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13820 if (r
->in
.server_name
) {
13821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13823 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13824 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
));
13826 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13827 if (r
->in
.computer_name
) {
13828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13831 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
));
13833 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
13834 if (r
->in
.logon
== NULL
) {
13835 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13837 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
13838 NDR_CHECK(ndr_push_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
13839 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
13840 if (r
->in
.flags
== NULL
) {
13841 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
13845 if (flags
& NDR_OUT
) {
13846 if (r
->out
.validation
== NULL
) {
13847 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13849 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
13850 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
13851 if (r
->out
.authoritative
== NULL
) {
13852 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13854 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
13855 if (r
->out
.flags
== NULL
) {
13856 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13858 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
13859 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13861 return NDR_ERR_SUCCESS
;
13864 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonEx(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonEx
*r
)
13866 uint32_t _ptr_server_name
;
13867 uint32_t _ptr_computer_name
;
13868 TALLOC_CTX
*_mem_save_server_name_0
;
13869 TALLOC_CTX
*_mem_save_computer_name_0
;
13870 TALLOC_CTX
*_mem_save_logon_0
;
13871 TALLOC_CTX
*_mem_save_validation_0
;
13872 TALLOC_CTX
*_mem_save_authoritative_0
;
13873 TALLOC_CTX
*_mem_save_flags_0
;
13874 if (flags
& NDR_IN
) {
13875 ZERO_STRUCT(r
->out
);
13877 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13878 if (_ptr_server_name
) {
13879 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13881 r
->in
.server_name
= NULL
;
13883 if (r
->in
.server_name
) {
13884 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13885 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13886 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13887 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13888 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13889 return 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
));
13891 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13892 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
));
13893 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13895 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13896 if (_ptr_computer_name
) {
13897 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13899 r
->in
.computer_name
= NULL
;
13901 if (r
->in
.computer_name
) {
13902 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13903 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13904 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13905 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13906 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13907 return 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
));
13909 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13910 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
));
13911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13913 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
13914 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13915 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
13917 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13918 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
13919 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
13920 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
13921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
13922 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
13923 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13924 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
13926 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13927 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
13928 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
13929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13930 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
13931 ZERO_STRUCTP(r
->out
.validation
);
13932 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
13933 ZERO_STRUCTP(r
->out
.authoritative
);
13934 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
13935 *r
->out
.flags
= *r
->in
.flags
;
13937 if (flags
& NDR_OUT
) {
13938 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13939 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
13941 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13942 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
13943 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
13944 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
13945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
13946 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13947 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
13949 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13950 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
13951 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
13952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
13953 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13954 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
13956 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13957 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
13958 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
13959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13960 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13962 return NDR_ERR_SUCCESS
;
13965 _PUBLIC_
void ndr_print_netr_LogonSamLogonEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonEx
*r
)
13967 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonEx");
13969 if (flags
& NDR_SET_VALUES
) {
13970 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13972 if (flags
& NDR_IN
) {
13973 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonEx");
13975 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13977 if (r
->in
.server_name
) {
13978 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13981 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13983 if (r
->in
.computer_name
) {
13984 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13987 ndr_print_netr_LogonLevel(ndr
, "logon_level", r
->in
.logon_level
);
13988 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
13990 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
13991 ndr_print_netr_LogonInfo(ndr
, "logon", r
->in
.logon
);
13993 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
13994 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
13996 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
14000 if (flags
& NDR_OUT
) {
14001 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonEx");
14003 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
14005 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
14006 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
14008 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
14010 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
14012 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
14014 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
14016 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
14022 static enum ndr_err_code
ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push
*ndr
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
14024 if (flags
& NDR_IN
) {
14025 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14026 if (r
->in
.server_name
) {
14027 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14030 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
));
14032 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->in
.trust_flags
));
14034 if (flags
& NDR_OUT
) {
14035 if (r
->out
.trusts
== NULL
) {
14036 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14038 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
14039 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14041 return NDR_ERR_SUCCESS
;
14044 static enum ndr_err_code
ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull
*ndr
, int flags
, struct netr_DsrEnumerateDomainTrusts
*r
)
14046 uint32_t _ptr_server_name
;
14047 TALLOC_CTX
*_mem_save_server_name_0
;
14048 TALLOC_CTX
*_mem_save_trusts_0
;
14049 if (flags
& NDR_IN
) {
14050 ZERO_STRUCT(r
->out
);
14052 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14053 if (_ptr_server_name
) {
14054 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14056 r
->in
.server_name
= NULL
;
14058 if (r
->in
.server_name
) {
14059 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14060 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14061 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14062 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14063 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14064 return 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
));
14066 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14067 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
));
14068 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14070 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->in
.trust_flags
));
14071 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
14072 ZERO_STRUCTP(r
->out
.trusts
);
14074 if (flags
& NDR_OUT
) {
14075 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14076 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
14078 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14079 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusts
, LIBNDR_FLAG_REF_ALLOC
);
14080 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
14081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, LIBNDR_FLAG_REF_ALLOC
);
14082 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14084 return NDR_ERR_SUCCESS
;
14087 _PUBLIC_
void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
14089 ndr_print_struct(ndr
, name
, "netr_DsrEnumerateDomainTrusts");
14091 if (flags
& NDR_SET_VALUES
) {
14092 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14094 if (flags
& NDR_IN
) {
14095 ndr_print_struct(ndr
, "in", "netr_DsrEnumerateDomainTrusts");
14097 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14099 if (r
->in
.server_name
) {
14100 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14103 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->in
.trust_flags
);
14106 if (flags
& NDR_OUT
) {
14107 ndr_print_struct(ndr
, "out", "netr_DsrEnumerateDomainTrusts");
14109 ndr_print_ptr(ndr
, "trusts", r
->out
.trusts
);
14111 ndr_print_netr_DomainTrustList(ndr
, "trusts", r
->out
.trusts
);
14113 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14119 static enum ndr_err_code
ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push
*ndr
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
14121 if (flags
& NDR_IN
) {
14122 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14123 if (r
->in
.server_name
) {
14124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14125 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14126 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14127 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
));
14129 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain
));
14130 if (r
->in
.domain
) {
14131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
14132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
14134 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain
, ndr_charset_length(r
->in
.domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14136 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
14137 if (r
->in
.domain_guid
) {
14138 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14140 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.dsa_guid
));
14141 if (r
->in
.dsa_guid
) {
14142 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
14144 if (r
->in
.dns_host
== NULL
) {
14145 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
14148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
14150 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.dns_host
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14152 if (flags
& NDR_OUT
) {
14153 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14155 return NDR_ERR_SUCCESS
;
14158 static enum ndr_err_code
ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull
*ndr
, int flags
, struct netr_DsrDeregisterDNSHostRecords
*r
)
14160 uint32_t _ptr_server_name
;
14161 uint32_t _ptr_domain
;
14162 uint32_t _ptr_domain_guid
;
14163 uint32_t _ptr_dsa_guid
;
14164 TALLOC_CTX
*_mem_save_server_name_0
;
14165 TALLOC_CTX
*_mem_save_domain_0
;
14166 TALLOC_CTX
*_mem_save_domain_guid_0
;
14167 TALLOC_CTX
*_mem_save_dsa_guid_0
;
14168 if (flags
& NDR_IN
) {
14169 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14170 if (_ptr_server_name
) {
14171 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14173 r
->in
.server_name
= NULL
;
14175 if (r
->in
.server_name
) {
14176 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14177 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14178 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14179 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14180 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14181 return 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
));
14183 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14184 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
));
14185 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
14189 NDR_PULL_ALLOC(ndr
, r
->in
.domain
);
14191 r
->in
.domain
= NULL
;
14193 if (r
->in
.domain
) {
14194 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14195 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain
, 0);
14196 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain
));
14197 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain
));
14198 if (ndr_get_array_length(ndr
, &r
->in
.domain
) > ndr_get_array_size(ndr
, &r
->in
.domain
)) {
14199 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domain
), ndr_get_array_length(ndr
, &r
->in
.domain
));
14201 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t)));
14202 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t), CH_UTF16
));
14203 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
14205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
14206 if (_ptr_domain_guid
) {
14207 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
14209 r
->in
.domain_guid
= NULL
;
14211 if (r
->in
.domain_guid
) {
14212 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14213 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
14214 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14215 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
14217 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dsa_guid
));
14218 if (_ptr_dsa_guid
) {
14219 NDR_PULL_ALLOC(ndr
, r
->in
.dsa_guid
);
14221 r
->in
.dsa_guid
= NULL
;
14223 if (r
->in
.dsa_guid
) {
14224 _mem_save_dsa_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14225 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.dsa_guid
, 0);
14226 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
14227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dsa_guid_0
, 0);
14229 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.dns_host
));
14230 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.dns_host
));
14231 if (ndr_get_array_length(ndr
, &r
->in
.dns_host
) > ndr_get_array_size(ndr
, &r
->in
.dns_host
)) {
14232 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.dns_host
), ndr_get_array_length(ndr
, &r
->in
.dns_host
));
14234 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.dns_host
), sizeof(uint16_t)));
14235 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.dns_host
, ndr_get_array_length(ndr
, &r
->in
.dns_host
), sizeof(uint16_t), CH_UTF16
));
14237 if (flags
& NDR_OUT
) {
14238 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14240 return NDR_ERR_SUCCESS
;
14243 _PUBLIC_
void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
14245 ndr_print_struct(ndr
, name
, "netr_DsrDeregisterDNSHostRecords");
14247 if (flags
& NDR_SET_VALUES
) {
14248 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14250 if (flags
& NDR_IN
) {
14251 ndr_print_struct(ndr
, "in", "netr_DsrDeregisterDNSHostRecords");
14253 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14255 if (r
->in
.server_name
) {
14256 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14259 ndr_print_ptr(ndr
, "domain", r
->in
.domain
);
14261 if (r
->in
.domain
) {
14262 ndr_print_string(ndr
, "domain", r
->in
.domain
);
14265 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
14267 if (r
->in
.domain_guid
) {
14268 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
14271 ndr_print_ptr(ndr
, "dsa_guid", r
->in
.dsa_guid
);
14273 if (r
->in
.dsa_guid
) {
14274 ndr_print_GUID(ndr
, "dsa_guid", r
->in
.dsa_guid
);
14277 ndr_print_ptr(ndr
, "dns_host", r
->in
.dns_host
);
14279 ndr_print_string(ndr
, "dns_host", r
->in
.dns_host
);
14283 if (flags
& NDR_OUT
) {
14284 ndr_print_struct(ndr
, "out", "netr_DsrDeregisterDNSHostRecords");
14286 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14292 static enum ndr_err_code
ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
14294 if (flags
& NDR_IN
) {
14295 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14296 if (r
->in
.server_name
) {
14297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14298 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14300 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
));
14302 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14303 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14304 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14305 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
));
14306 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
14307 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14309 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14310 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
));
14311 if (r
->in
.credential
== NULL
) {
14312 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14314 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14316 if (flags
& NDR_OUT
) {
14317 if (r
->out
.return_authenticator
== NULL
) {
14318 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14320 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14321 if (r
->out
.password
== NULL
) {
14322 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14324 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14325 if (r
->out
.password2
== NULL
) {
14326 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14328 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
14329 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
14331 return NDR_ERR_SUCCESS
;
14334 static enum ndr_err_code
ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerTrustPasswordsGet
*r
)
14336 uint32_t _ptr_server_name
;
14337 TALLOC_CTX
*_mem_save_server_name_0
;
14338 TALLOC_CTX
*_mem_save_credential_0
;
14339 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14340 TALLOC_CTX
*_mem_save_password_0
;
14341 TALLOC_CTX
*_mem_save_password2_0
;
14342 if (flags
& NDR_IN
) {
14343 ZERO_STRUCT(r
->out
);
14345 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14346 if (_ptr_server_name
) {
14347 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14349 r
->in
.server_name
= NULL
;
14351 if (r
->in
.server_name
) {
14352 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14353 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14354 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14355 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14356 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14357 return 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
));
14359 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14360 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
));
14361 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14363 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14364 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14365 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
14366 return 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
));
14368 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
14369 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
));
14370 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14371 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14372 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14373 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14374 return 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
));
14376 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14377 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
));
14378 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14379 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14381 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14382 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14383 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14385 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14386 ZERO_STRUCTP(r
->out
.return_authenticator
);
14387 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14388 ZERO_STRUCTP(r
->out
.password
);
14389 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
14390 ZERO_STRUCTP(r
->out
.password2
);
14392 if (flags
& NDR_OUT
) {
14393 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14394 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14396 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14397 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14398 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14400 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14401 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14403 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14404 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
14405 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14406 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14407 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14408 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
14410 _mem_save_password2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14411 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password2
, LIBNDR_FLAG_REF_ALLOC
);
14412 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
14413 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password2_0
, LIBNDR_FLAG_REF_ALLOC
);
14414 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
14416 return NDR_ERR_SUCCESS
;
14419 _PUBLIC_
void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
14421 ndr_print_struct(ndr
, name
, "netr_ServerTrustPasswordsGet");
14423 if (flags
& NDR_SET_VALUES
) {
14424 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14426 if (flags
& NDR_IN
) {
14427 ndr_print_struct(ndr
, "in", "netr_ServerTrustPasswordsGet");
14429 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14431 if (r
->in
.server_name
) {
14432 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14435 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14436 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14437 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14438 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14440 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14444 if (flags
& NDR_OUT
) {
14445 ndr_print_struct(ndr
, "out", "netr_ServerTrustPasswordsGet");
14447 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14449 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14451 ndr_print_ptr(ndr
, "password", r
->out
.password
);
14453 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
14455 ndr_print_ptr(ndr
, "password2", r
->out
.password2
);
14457 ndr_print_samr_Password(ndr
, "password2", r
->out
.password2
);
14459 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
14465 static enum ndr_err_code
ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
14467 if (flags
& NDR_IN
) {
14468 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14469 if (r
->in
.server_name
) {
14470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14473 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
));
14475 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.trusted_domain_name
));
14476 if (r
->in
.trusted_domain_name
) {
14477 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
14478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
14480 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.trusted_domain_name
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
14484 if (flags
& NDR_OUT
) {
14485 if (r
->out
.forest_trust_info
== NULL
) {
14486 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14488 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
14489 if (*r
->out
.forest_trust_info
) {
14490 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
14492 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14494 return NDR_ERR_SUCCESS
;
14497 static enum ndr_err_code
ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetForestTrustInformation
*r
)
14499 uint32_t _ptr_server_name
;
14500 uint32_t _ptr_trusted_domain_name
;
14501 uint32_t _ptr_forest_trust_info
;
14502 TALLOC_CTX
*_mem_save_server_name_0
;
14503 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
14504 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
14505 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
14506 if (flags
& NDR_IN
) {
14507 ZERO_STRUCT(r
->out
);
14509 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14510 if (_ptr_server_name
) {
14511 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14513 r
->in
.server_name
= NULL
;
14515 if (r
->in
.server_name
) {
14516 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14517 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14518 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14519 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14520 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14521 return 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
));
14523 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14524 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
));
14525 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14527 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
14528 if (_ptr_trusted_domain_name
) {
14529 NDR_PULL_ALLOC(ndr
, r
->in
.trusted_domain_name
);
14531 r
->in
.trusted_domain_name
= NULL
;
14533 if (r
->in
.trusted_domain_name
) {
14534 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14535 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.trusted_domain_name
, 0);
14536 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
14537 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
14538 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
14539 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
), ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
));
14541 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
14542 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.trusted_domain_name
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t), CH_UTF16
));
14543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
14545 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
14546 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
14547 ZERO_STRUCTP(r
->out
.forest_trust_info
);
14549 if (flags
& NDR_OUT
) {
14550 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14551 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
14553 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14554 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
14555 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
14556 if (_ptr_forest_trust_info
) {
14557 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
14559 *r
->out
.forest_trust_info
= NULL
;
14561 if (*r
->out
.forest_trust_info
) {
14562 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14563 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
14564 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
14565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
14567 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
14568 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14570 return NDR_ERR_SUCCESS
;
14573 _PUBLIC_
void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
14575 ndr_print_struct(ndr
, name
, "netr_DsRGetForestTrustInformation");
14577 if (flags
& NDR_SET_VALUES
) {
14578 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14580 if (flags
& NDR_IN
) {
14581 ndr_print_struct(ndr
, "in", "netr_DsRGetForestTrustInformation");
14583 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14585 if (r
->in
.server_name
) {
14586 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14589 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
14591 if (r
->in
.trusted_domain_name
) {
14592 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
14595 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
14598 if (flags
& NDR_OUT
) {
14599 ndr_print_struct(ndr
, "out", "netr_DsRGetForestTrustInformation");
14601 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
14603 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
14605 if (*r
->out
.forest_trust_info
) {
14606 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
14610 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14616 static enum ndr_err_code
ndr_push_netr_GetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_GetForestTrustInformation
*r
)
14618 if (flags
& NDR_IN
) {
14619 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14620 if (r
->in
.server_name
) {
14621 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14624 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
));
14626 if (r
->in
.trusted_domain_name
== NULL
) {
14627 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
14630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
14632 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.trusted_domain_name
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14633 if (r
->in
.credential
== NULL
) {
14634 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14636 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
14639 if (flags
& NDR_OUT
) {
14640 if (r
->out
.return_authenticator
== NULL
) {
14641 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14643 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14644 if (r
->out
.forest_trust_info
== NULL
) {
14645 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14647 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
14648 if (*r
->out
.forest_trust_info
) {
14649 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
14651 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14653 return NDR_ERR_SUCCESS
;
14656 static enum ndr_err_code
ndr_pull_netr_GetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_GetForestTrustInformation
*r
)
14658 uint32_t _ptr_server_name
;
14659 uint32_t _ptr_forest_trust_info
;
14660 TALLOC_CTX
*_mem_save_server_name_0
;
14661 TALLOC_CTX
*_mem_save_credential_0
;
14662 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14663 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
14664 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
14665 if (flags
& NDR_IN
) {
14666 ZERO_STRUCT(r
->out
);
14668 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14669 if (_ptr_server_name
) {
14670 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14672 r
->in
.server_name
= NULL
;
14674 if (r
->in
.server_name
) {
14675 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14676 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14677 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14678 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14679 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14680 return 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
));
14682 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14683 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
));
14684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14686 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
14687 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
14688 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
14689 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
), ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
));
14691 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
14692 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.trusted_domain_name
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t), CH_UTF16
));
14693 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14694 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14696 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14697 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14698 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14699 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14700 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
14701 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14702 ZERO_STRUCTP(r
->out
.return_authenticator
);
14703 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
14704 ZERO_STRUCTP(r
->out
.forest_trust_info
);
14706 if (flags
& NDR_OUT
) {
14707 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14708 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14710 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14711 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14712 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14714 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14715 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
14717 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14718 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
14719 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
14720 if (_ptr_forest_trust_info
) {
14721 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
14723 *r
->out
.forest_trust_info
= NULL
;
14725 if (*r
->out
.forest_trust_info
) {
14726 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14727 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
14728 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
14729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
14731 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
14732 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14734 return NDR_ERR_SUCCESS
;
14737 _PUBLIC_
void ndr_print_netr_GetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetForestTrustInformation
*r
)
14739 ndr_print_struct(ndr
, name
, "netr_GetForestTrustInformation");
14741 if (flags
& NDR_SET_VALUES
) {
14742 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14744 if (flags
& NDR_IN
) {
14745 ndr_print_struct(ndr
, "in", "netr_GetForestTrustInformation");
14747 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14749 if (r
->in
.server_name
) {
14750 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14753 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
14755 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
14757 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14759 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14761 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
14764 if (flags
& NDR_OUT
) {
14765 ndr_print_struct(ndr
, "out", "netr_GetForestTrustInformation");
14767 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14769 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14771 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
14773 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
14775 if (*r
->out
.forest_trust_info
) {
14776 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
14780 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14786 static enum ndr_err_code
ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
14788 if (flags
& NDR_IN
) {
14789 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14790 if (r
->in
.server_name
) {
14791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14794 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
));
14796 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
14797 if (r
->in
.computer_name
) {
14798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14800 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14801 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
));
14803 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
14804 if (r
->in
.credential
) {
14805 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14807 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
14808 if (r
->in
.return_authenticator
) {
14809 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
14811 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
14812 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
14813 NDR_CHECK(ndr_push_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
14814 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
14815 if (r
->in
.flags
== NULL
) {
14816 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
14820 if (flags
& NDR_OUT
) {
14821 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
14822 if (r
->out
.return_authenticator
) {
14823 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14825 if (r
->out
.validation
== NULL
) {
14826 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14828 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
14829 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
14830 if (r
->out
.authoritative
== NULL
) {
14831 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14833 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
14834 if (r
->out
.flags
== NULL
) {
14835 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
14838 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
14840 return NDR_ERR_SUCCESS
;
14843 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonWithFlags
*r
)
14845 uint32_t _ptr_server_name
;
14846 uint32_t _ptr_computer_name
;
14847 uint32_t _ptr_credential
;
14848 uint32_t _ptr_return_authenticator
;
14849 TALLOC_CTX
*_mem_save_server_name_0
;
14850 TALLOC_CTX
*_mem_save_computer_name_0
;
14851 TALLOC_CTX
*_mem_save_credential_0
;
14852 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14853 TALLOC_CTX
*_mem_save_validation_0
;
14854 TALLOC_CTX
*_mem_save_authoritative_0
;
14855 TALLOC_CTX
*_mem_save_flags_0
;
14856 if (flags
& NDR_IN
) {
14857 ZERO_STRUCT(r
->out
);
14859 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14860 if (_ptr_server_name
) {
14861 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14863 r
->in
.server_name
= NULL
;
14865 if (r
->in
.server_name
) {
14866 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14867 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14868 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14869 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14870 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14871 return 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
));
14873 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14874 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
));
14875 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14877 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
14878 if (_ptr_computer_name
) {
14879 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
14881 r
->in
.computer_name
= NULL
;
14883 if (r
->in
.computer_name
) {
14884 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14885 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
14886 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14887 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14888 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14889 return 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
));
14891 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14892 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
));
14893 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
14895 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
14896 if (_ptr_credential
) {
14897 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14899 r
->in
.credential
= NULL
;
14901 if (r
->in
.credential
) {
14902 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14903 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
14904 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14905 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
14907 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
14908 if (_ptr_return_authenticator
) {
14909 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
14911 r
->in
.return_authenticator
= NULL
;
14913 if (r
->in
.return_authenticator
) {
14914 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14915 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
14916 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
14917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
14919 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
14920 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
14921 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
14922 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
14923 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14924 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
14926 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14927 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
14928 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
14929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
14930 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
14931 ZERO_STRUCTP(r
->out
.validation
);
14932 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
14933 ZERO_STRUCTP(r
->out
.authoritative
);
14934 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
14935 *r
->out
.flags
= *r
->in
.flags
;
14937 if (flags
& NDR_OUT
) {
14938 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
14939 if (_ptr_return_authenticator
) {
14940 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14942 r
->out
.return_authenticator
= NULL
;
14944 if (r
->out
.return_authenticator
) {
14945 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14946 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
14947 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14948 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
14950 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14951 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
14953 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14954 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
14955 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
14956 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
14957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
14958 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14959 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
14961 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14962 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
14963 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
14964 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
14965 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14966 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
14968 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14969 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
14970 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
14971 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
14972 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
14974 return NDR_ERR_SUCCESS
;
14977 _PUBLIC_
void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
14979 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonWithFlags");
14981 if (flags
& NDR_SET_VALUES
) {
14982 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14984 if (flags
& NDR_IN
) {
14985 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonWithFlags");
14987 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14989 if (r
->in
.server_name
) {
14990 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14993 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
14995 if (r
->in
.computer_name
) {
14996 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14999 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
15001 if (r
->in
.credential
) {
15002 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
15005 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
15007 if (r
->in
.return_authenticator
) {
15008 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
15011 ndr_print_netr_LogonLevel(ndr
, "logon_level", r
->in
.logon_level
);
15012 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
15013 ndr_print_netr_LogonInfo(ndr
, "logon", &r
->in
.logon
);
15014 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
15015 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
15017 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
15021 if (flags
& NDR_OUT
) {
15022 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonWithFlags");
15024 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15026 if (r
->out
.return_authenticator
) {
15027 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15030 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
15032 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
15033 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
15035 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
15037 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
15039 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
15041 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
15043 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15049 static enum ndr_err_code
ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push
*ndr
, int flags
, const struct netr_NETRSERVERGETTRUSTINFO
*r
)
15051 if (flags
& NDR_IN
) {
15053 if (flags
& NDR_OUT
) {
15054 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15056 return NDR_ERR_SUCCESS
;
15059 static enum ndr_err_code
ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull
*ndr
, int flags
, struct netr_NETRSERVERGETTRUSTINFO
*r
)
15061 if (flags
& NDR_IN
) {
15063 if (flags
& NDR_OUT
) {
15064 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15066 return NDR_ERR_SUCCESS
;
15069 _PUBLIC_
void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRSERVERGETTRUSTINFO
*r
)
15071 ndr_print_struct(ndr
, name
, "netr_NETRSERVERGETTRUSTINFO");
15073 if (flags
& NDR_SET_VALUES
) {
15074 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15076 if (flags
& NDR_IN
) {
15077 ndr_print_struct(ndr
, "in", "netr_NETRSERVERGETTRUSTINFO");
15081 if (flags
& NDR_OUT
) {
15082 ndr_print_struct(ndr
, "out", "netr_NETRSERVERGETTRUSTINFO");
15084 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15090 static const struct ndr_interface_call netlogon_calls
[] = {
15092 "netr_LogonUasLogon",
15093 sizeof(struct netr_LogonUasLogon
),
15094 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogon
,
15095 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogon
,
15096 (ndr_print_function_t
) ndr_print_netr_LogonUasLogon
,
15100 "netr_LogonUasLogoff",
15101 sizeof(struct netr_LogonUasLogoff
),
15102 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogoff
,
15103 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogoff
,
15104 (ndr_print_function_t
) ndr_print_netr_LogonUasLogoff
,
15108 "netr_LogonSamLogon",
15109 sizeof(struct netr_LogonSamLogon
),
15110 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogon
,
15111 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogon
,
15112 (ndr_print_function_t
) ndr_print_netr_LogonSamLogon
,
15116 "netr_LogonSamLogoff",
15117 sizeof(struct netr_LogonSamLogoff
),
15118 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogoff
,
15119 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogoff
,
15120 (ndr_print_function_t
) ndr_print_netr_LogonSamLogoff
,
15124 "netr_ServerReqChallenge",
15125 sizeof(struct netr_ServerReqChallenge
),
15126 (ndr_push_flags_fn_t
) ndr_push_netr_ServerReqChallenge
,
15127 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerReqChallenge
,
15128 (ndr_print_function_t
) ndr_print_netr_ServerReqChallenge
,
15132 "netr_ServerAuthenticate",
15133 sizeof(struct netr_ServerAuthenticate
),
15134 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate
,
15135 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate
,
15136 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate
,
15140 "netr_ServerPasswordSet",
15141 sizeof(struct netr_ServerPasswordSet
),
15142 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet
,
15143 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet
,
15144 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet
,
15148 "netr_DatabaseDeltas",
15149 sizeof(struct netr_DatabaseDeltas
),
15150 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseDeltas
,
15151 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseDeltas
,
15152 (ndr_print_function_t
) ndr_print_netr_DatabaseDeltas
,
15156 "netr_DatabaseSync",
15157 sizeof(struct netr_DatabaseSync
),
15158 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync
,
15159 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync
,
15160 (ndr_print_function_t
) ndr_print_netr_DatabaseSync
,
15164 "netr_AccountDeltas",
15165 sizeof(struct netr_AccountDeltas
),
15166 (ndr_push_flags_fn_t
) ndr_push_netr_AccountDeltas
,
15167 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountDeltas
,
15168 (ndr_print_function_t
) ndr_print_netr_AccountDeltas
,
15172 "netr_AccountSync",
15173 sizeof(struct netr_AccountSync
),
15174 (ndr_push_flags_fn_t
) ndr_push_netr_AccountSync
,
15175 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountSync
,
15176 (ndr_print_function_t
) ndr_print_netr_AccountSync
,
15181 sizeof(struct netr_GetDcName
),
15182 (ndr_push_flags_fn_t
) ndr_push_netr_GetDcName
,
15183 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetDcName
,
15184 (ndr_print_function_t
) ndr_print_netr_GetDcName
,
15188 "netr_LogonControl",
15189 sizeof(struct netr_LogonControl
),
15190 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl
,
15191 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl
,
15192 (ndr_print_function_t
) ndr_print_netr_LogonControl
,
15196 "netr_GetAnyDCName",
15197 sizeof(struct netr_GetAnyDCName
),
15198 (ndr_push_flags_fn_t
) ndr_push_netr_GetAnyDCName
,
15199 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetAnyDCName
,
15200 (ndr_print_function_t
) ndr_print_netr_GetAnyDCName
,
15204 "netr_LogonControl2",
15205 sizeof(struct netr_LogonControl2
),
15206 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2
,
15207 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2
,
15208 (ndr_print_function_t
) ndr_print_netr_LogonControl2
,
15212 "netr_ServerAuthenticate2",
15213 sizeof(struct netr_ServerAuthenticate2
),
15214 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate2
,
15215 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate2
,
15216 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate2
,
15220 "netr_DatabaseSync2",
15221 sizeof(struct netr_DatabaseSync2
),
15222 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync2
,
15223 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync2
,
15224 (ndr_print_function_t
) ndr_print_netr_DatabaseSync2
,
15228 "netr_DatabaseRedo",
15229 sizeof(struct netr_DatabaseRedo
),
15230 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseRedo
,
15231 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseRedo
,
15232 (ndr_print_function_t
) ndr_print_netr_DatabaseRedo
,
15236 "netr_LogonControl2Ex",
15237 sizeof(struct netr_LogonControl2Ex
),
15238 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2Ex
,
15239 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2Ex
,
15240 (ndr_print_function_t
) ndr_print_netr_LogonControl2Ex
,
15244 "netr_NetrEnumerateTrustedDomains",
15245 sizeof(struct netr_NetrEnumerateTrustedDomains
),
15246 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomains
,
15247 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomains
,
15248 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomains
,
15252 "netr_DsRGetDCName",
15253 sizeof(struct netr_DsRGetDCName
),
15254 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCName
,
15255 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCName
,
15256 (ndr_print_function_t
) ndr_print_netr_DsRGetDCName
,
15260 "netr_LogonGetCapabilities",
15261 sizeof(struct netr_LogonGetCapabilities
),
15262 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetCapabilities
,
15263 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetCapabilities
,
15264 (ndr_print_function_t
) ndr_print_netr_LogonGetCapabilities
,
15268 "netr_NETRLOGONSETSERVICEBITS",
15269 sizeof(struct netr_NETRLOGONSETSERVICEBITS
),
15270 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSETSERVICEBITS
,
15271 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSETSERVICEBITS
,
15272 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSETSERVICEBITS
,
15276 "netr_LogonGetTrustRid",
15277 sizeof(struct netr_LogonGetTrustRid
),
15278 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetTrustRid
,
15279 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetTrustRid
,
15280 (ndr_print_function_t
) ndr_print_netr_LogonGetTrustRid
,
15284 "netr_NETRLOGONCOMPUTESERVERDIGEST",
15285 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST
),
15286 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST
,
15287 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST
,
15288 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST
,
15292 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
15293 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST
),
15294 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
15295 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
15296 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
15300 "netr_ServerAuthenticate3",
15301 sizeof(struct netr_ServerAuthenticate3
),
15302 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate3
,
15303 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate3
,
15304 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate3
,
15308 "netr_DsRGetDCNameEx",
15309 sizeof(struct netr_DsRGetDCNameEx
),
15310 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx
,
15311 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx
,
15312 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx
,
15316 "netr_DsRGetSiteName",
15317 sizeof(struct netr_DsRGetSiteName
),
15318 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetSiteName
,
15319 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetSiteName
,
15320 (ndr_print_function_t
) ndr_print_netr_DsRGetSiteName
,
15324 "netr_LogonGetDomainInfo",
15325 sizeof(struct netr_LogonGetDomainInfo
),
15326 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetDomainInfo
,
15327 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetDomainInfo
,
15328 (ndr_print_function_t
) ndr_print_netr_LogonGetDomainInfo
,
15332 "netr_ServerPasswordSet2",
15333 sizeof(struct netr_ServerPasswordSet2
),
15334 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet2
,
15335 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet2
,
15336 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet2
,
15340 "netr_ServerPasswordGet",
15341 sizeof(struct netr_ServerPasswordGet
),
15342 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordGet
,
15343 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordGet
,
15344 (ndr_print_function_t
) ndr_print_netr_ServerPasswordGet
,
15348 "netr_NETRLOGONSENDTOSAM",
15349 sizeof(struct netr_NETRLOGONSENDTOSAM
),
15350 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSENDTOSAM
,
15351 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSENDTOSAM
,
15352 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSENDTOSAM
,
15356 "netr_DsRAddressToSitenamesW",
15357 sizeof(struct netr_DsRAddressToSitenamesW
),
15358 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesW
,
15359 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesW
,
15360 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesW
,
15364 "netr_DsRGetDCNameEx2",
15365 sizeof(struct netr_DsRGetDCNameEx2
),
15366 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx2
,
15367 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx2
,
15368 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx2
,
15372 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
15373 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
),
15374 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
15375 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
15376 (ndr_print_function_t
) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
15380 "netr_NetrEnumerateTrustedDomainsEx",
15381 sizeof(struct netr_NetrEnumerateTrustedDomainsEx
),
15382 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomainsEx
,
15383 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomainsEx
,
15384 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomainsEx
,
15388 "netr_DsRAddressToSitenamesExW",
15389 sizeof(struct netr_DsRAddressToSitenamesExW
),
15390 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesExW
,
15391 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesExW
,
15392 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesExW
,
15396 "netr_DsrGetDcSiteCoverageW",
15397 sizeof(struct netr_DsrGetDcSiteCoverageW
),
15398 (ndr_push_flags_fn_t
) ndr_push_netr_DsrGetDcSiteCoverageW
,
15399 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrGetDcSiteCoverageW
,
15400 (ndr_print_function_t
) ndr_print_netr_DsrGetDcSiteCoverageW
,
15404 "netr_LogonSamLogonEx",
15405 sizeof(struct netr_LogonSamLogonEx
),
15406 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonEx
,
15407 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonEx
,
15408 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonEx
,
15412 "netr_DsrEnumerateDomainTrusts",
15413 sizeof(struct netr_DsrEnumerateDomainTrusts
),
15414 (ndr_push_flags_fn_t
) ndr_push_netr_DsrEnumerateDomainTrusts
,
15415 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrEnumerateDomainTrusts
,
15416 (ndr_print_function_t
) ndr_print_netr_DsrEnumerateDomainTrusts
,
15420 "netr_DsrDeregisterDNSHostRecords",
15421 sizeof(struct netr_DsrDeregisterDNSHostRecords
),
15422 (ndr_push_flags_fn_t
) ndr_push_netr_DsrDeregisterDNSHostRecords
,
15423 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrDeregisterDNSHostRecords
,
15424 (ndr_print_function_t
) ndr_print_netr_DsrDeregisterDNSHostRecords
,
15428 "netr_ServerTrustPasswordsGet",
15429 sizeof(struct netr_ServerTrustPasswordsGet
),
15430 (ndr_push_flags_fn_t
) ndr_push_netr_ServerTrustPasswordsGet
,
15431 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerTrustPasswordsGet
,
15432 (ndr_print_function_t
) ndr_print_netr_ServerTrustPasswordsGet
,
15436 "netr_DsRGetForestTrustInformation",
15437 sizeof(struct netr_DsRGetForestTrustInformation
),
15438 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetForestTrustInformation
,
15439 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetForestTrustInformation
,
15440 (ndr_print_function_t
) ndr_print_netr_DsRGetForestTrustInformation
,
15444 "netr_GetForestTrustInformation",
15445 sizeof(struct netr_GetForestTrustInformation
),
15446 (ndr_push_flags_fn_t
) ndr_push_netr_GetForestTrustInformation
,
15447 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetForestTrustInformation
,
15448 (ndr_print_function_t
) ndr_print_netr_GetForestTrustInformation
,
15452 "netr_LogonSamLogonWithFlags",
15453 sizeof(struct netr_LogonSamLogonWithFlags
),
15454 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonWithFlags
,
15455 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonWithFlags
,
15456 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonWithFlags
,
15460 "netr_NETRSERVERGETTRUSTINFO",
15461 sizeof(struct netr_NETRSERVERGETTRUSTINFO
),
15462 (ndr_push_flags_fn_t
) ndr_push_netr_NETRSERVERGETTRUSTINFO
,
15463 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRSERVERGETTRUSTINFO
,
15464 (ndr_print_function_t
) ndr_print_netr_NETRSERVERGETTRUSTINFO
,
15467 { NULL
, 0, NULL
, NULL
, NULL
, false }
15470 static const char * const netlogon_endpoint_strings
[] = {
15471 "ncacn_np:[\\pipe\\netlogon]",
15476 static const struct ndr_interface_string_array netlogon_endpoints
= {
15478 .names
= netlogon_endpoint_strings
15481 static const char * const netlogon_authservice_strings
[] = {
15485 static const struct ndr_interface_string_array netlogon_authservices
= {
15487 .names
= netlogon_authservice_strings
15491 const struct ndr_interface_table ndr_table_netlogon
= {
15492 .name
= "netlogon",
15494 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
15495 NDR_NETLOGON_VERSION
15497 .helpstring
= NDR_NETLOGON_HELPSTRING
,
15499 .calls
= netlogon_calls
,
15500 .endpoints
= &netlogon_endpoints
,
15501 .authservices
= &netlogon_authservices