1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_samr.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_lsa.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 _PUBLIC_
enum ndr_err_code
ndr_push_netr_SamDatabaseID(struct ndr_push
*ndr
, int ndr_flags
, enum netr_SamDatabaseID r
)
11 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
12 return NDR_ERR_SUCCESS
;
15 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_SamDatabaseID(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_SamDatabaseID
*r
)
18 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
20 return NDR_ERR_SUCCESS
;
23 _PUBLIC_
void ndr_print_netr_SamDatabaseID(struct ndr_print
*ndr
, const char *name
, enum netr_SamDatabaseID r
)
25 const char *val
= NULL
;
28 case SAM_DATABASE_DOMAIN
: val
= "SAM_DATABASE_DOMAIN"; break;
29 case SAM_DATABASE_BUILTIN
: val
= "SAM_DATABASE_BUILTIN"; break;
30 case SAM_DATABASE_PRIVS
: val
= "SAM_DATABASE_PRIVS"; break;
32 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
35 _PUBLIC_
enum ndr_err_code
ndr_push_samr_RejectReason(struct ndr_push
*ndr
, int ndr_flags
, enum samr_RejectReason r
)
37 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
38 return NDR_ERR_SUCCESS
;
41 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_RejectReason(struct ndr_pull
*ndr
, int ndr_flags
, enum samr_RejectReason
*r
)
44 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
46 return NDR_ERR_SUCCESS
;
49 _PUBLIC_
void ndr_print_samr_RejectReason(struct ndr_print
*ndr
, const char *name
, enum samr_RejectReason r
)
51 const char *val
= NULL
;
54 case SAMR_REJECT_OTHER
: val
= "SAMR_REJECT_OTHER"; break;
55 case SAMR_REJECT_TOO_SHORT
: val
= "SAMR_REJECT_TOO_SHORT"; break;
56 case SAMR_REJECT_IN_HISTORY
: val
= "SAMR_REJECT_IN_HISTORY"; break;
57 case SAMR_REJECT_COMPLEXITY
: val
= "SAMR_REJECT_COMPLEXITY"; break;
59 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
62 _PUBLIC_
enum ndr_err_code
ndr_push_samr_AcctFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
64 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
65 return NDR_ERR_SUCCESS
;
68 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_AcctFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
71 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
73 return NDR_ERR_SUCCESS
;
76 _PUBLIC_
void ndr_print_samr_AcctFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
78 ndr_print_uint32(ndr
, name
, r
);
80 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_DISABLED", ACB_DISABLED
, r
);
81 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_HOMDIRREQ", ACB_HOMDIRREQ
, r
);
82 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_PWNOTREQ", ACB_PWNOTREQ
, r
);
83 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_TEMPDUP", ACB_TEMPDUP
, r
);
84 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_NORMAL", ACB_NORMAL
, r
);
85 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_MNS", ACB_MNS
, r
);
86 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_DOMTRUST", ACB_DOMTRUST
, r
);
87 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_WSTRUST", ACB_WSTRUST
, r
);
88 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_SVRTRUST", ACB_SVRTRUST
, r
);
89 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_PWNOEXP", ACB_PWNOEXP
, r
);
90 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_AUTOLOCK", ACB_AUTOLOCK
, r
);
91 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_ENC_TXT_PWD_ALLOWED", ACB_ENC_TXT_PWD_ALLOWED
, r
);
92 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_SMARTCARD_REQUIRED", ACB_SMARTCARD_REQUIRED
, r
);
93 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_TRUSTED_FOR_DELEGATION", ACB_TRUSTED_FOR_DELEGATION
, r
);
94 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_NOT_DELEGATED", ACB_NOT_DELEGATED
, r
);
95 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_USE_DES_KEY_ONLY", ACB_USE_DES_KEY_ONLY
, r
);
96 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_DONT_REQUIRE_PREAUTH", ACB_DONT_REQUIRE_PREAUTH
, r
);
97 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_PW_EXPIRED", ACB_PW_EXPIRED
, r
);
98 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ACB_NO_AUTH_DATA_REQD", ACB_NO_AUTH_DATA_REQD
, r
);
102 static enum ndr_err_code
ndr_push_samr_ConnectAccessMask(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
105 return NDR_ERR_SUCCESS
;
108 static enum ndr_err_code
ndr_pull_samr_ConnectAccessMask(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
111 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
113 return NDR_ERR_SUCCESS
;
116 _PUBLIC_
void ndr_print_samr_ConnectAccessMask(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
118 ndr_print_uint32(ndr
, name
, r
);
120 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ACCESS_CONNECT_TO_SERVER", SAMR_ACCESS_CONNECT_TO_SERVER
, r
);
121 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ACCESS_SHUTDOWN_SERVER", SAMR_ACCESS_SHUTDOWN_SERVER
, r
);
122 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ACCESS_INITIALIZE_SERVER", SAMR_ACCESS_INITIALIZE_SERVER
, r
);
123 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ACCESS_CREATE_DOMAIN", SAMR_ACCESS_CREATE_DOMAIN
, r
);
124 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ACCESS_ENUM_DOMAINS", SAMR_ACCESS_ENUM_DOMAINS
, r
);
125 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ACCESS_LOOKUP_DOMAIN", SAMR_ACCESS_LOOKUP_DOMAIN
, r
);
129 static enum ndr_err_code
ndr_push_samr_UserAccessMask(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
132 return NDR_ERR_SUCCESS
;
135 static enum ndr_err_code
ndr_pull_samr_UserAccessMask(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
138 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
140 return NDR_ERR_SUCCESS
;
143 _PUBLIC_
void ndr_print_samr_UserAccessMask(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
145 ndr_print_uint32(ndr
, name
, r
);
147 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_NAME_ETC", SAMR_USER_ACCESS_GET_NAME_ETC
, r
);
148 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_LOCALE", SAMR_USER_ACCESS_GET_LOCALE
, r
);
149 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_SET_LOC_COM", SAMR_USER_ACCESS_SET_LOC_COM
, r
);
150 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_LOGONINFO", SAMR_USER_ACCESS_GET_LOGONINFO
, r
);
151 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_ATTRIBUTES", SAMR_USER_ACCESS_GET_ATTRIBUTES
, r
);
152 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_SET_ATTRIBUTES", SAMR_USER_ACCESS_SET_ATTRIBUTES
, r
);
153 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_CHANGE_PASSWORD", SAMR_USER_ACCESS_CHANGE_PASSWORD
, r
);
154 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_SET_PASSWORD", SAMR_USER_ACCESS_SET_PASSWORD
, r
);
155 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_GROUPS", SAMR_USER_ACCESS_GET_GROUPS
, r
);
156 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP", SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP
, r
);
157 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP", SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP
, r
);
161 static enum ndr_err_code
ndr_push_samr_DomainAccessMask(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
164 return NDR_ERR_SUCCESS
;
167 static enum ndr_err_code
ndr_pull_samr_DomainAccessMask(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
170 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
172 return NDR_ERR_SUCCESS
;
175 _PUBLIC_
void ndr_print_samr_DomainAccessMask(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
177 ndr_print_uint32(ndr
, name
, r
);
179 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1", SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1
, r
);
180 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_SET_INFO_1", SAMR_DOMAIN_ACCESS_SET_INFO_1
, r
);
181 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2", SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2
, r
);
182 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_SET_INFO_2", SAMR_DOMAIN_ACCESS_SET_INFO_2
, r
);
183 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_CREATE_USER", SAMR_DOMAIN_ACCESS_CREATE_USER
, r
);
184 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_CREATE_GROUP", SAMR_DOMAIN_ACCESS_CREATE_GROUP
, r
);
185 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_CREATE_ALIAS", SAMR_DOMAIN_ACCESS_CREATE_ALIAS
, r
);
186 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS", SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS
, r
);
187 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS", SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS
, r
);
188 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT", SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT
, r
);
189 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_SET_INFO_3", SAMR_DOMAIN_ACCESS_SET_INFO_3
, r
);
193 static enum ndr_err_code
ndr_push_samr_GroupAccessMask(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
196 return NDR_ERR_SUCCESS
;
199 static enum ndr_err_code
ndr_pull_samr_GroupAccessMask(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
202 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
204 return NDR_ERR_SUCCESS
;
207 _PUBLIC_
void ndr_print_samr_GroupAccessMask(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
209 ndr_print_uint32(ndr
, name
, r
);
211 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_GROUP_ACCESS_LOOKUP_INFO", SAMR_GROUP_ACCESS_LOOKUP_INFO
, r
);
212 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_GROUP_ACCESS_SET_INFO", SAMR_GROUP_ACCESS_SET_INFO
, r
);
213 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_GROUP_ACCESS_ADD_MEMBER", SAMR_GROUP_ACCESS_ADD_MEMBER
, r
);
214 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_GROUP_ACCESS_REMOVE_MEMBER", SAMR_GROUP_ACCESS_REMOVE_MEMBER
, r
);
215 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_GROUP_ACCESS_GET_MEMBERS", SAMR_GROUP_ACCESS_GET_MEMBERS
, r
);
219 static enum ndr_err_code
ndr_push_samr_AliasAccessMask(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
221 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
222 return NDR_ERR_SUCCESS
;
225 static enum ndr_err_code
ndr_pull_samr_AliasAccessMask(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
228 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
230 return NDR_ERR_SUCCESS
;
233 _PUBLIC_
void ndr_print_samr_AliasAccessMask(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
235 ndr_print_uint32(ndr
, name
, r
);
237 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_ADD_MEMBER", SAMR_ALIAS_ACCESS_ADD_MEMBER
, r
);
238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_REMOVE_MEMBER", SAMR_ALIAS_ACCESS_REMOVE_MEMBER
, r
);
239 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_GET_MEMBERS", SAMR_ALIAS_ACCESS_GET_MEMBERS
, r
);
240 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_LOOKUP_INFO", SAMR_ALIAS_ACCESS_LOOKUP_INFO
, r
);
241 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_SET_INFO", SAMR_ALIAS_ACCESS_SET_INFO
, r
);
245 static enum ndr_err_code
ndr_push_samr_SamEntry(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_SamEntry
*r
)
247 if (ndr_flags
& NDR_SCALARS
) {
248 NDR_CHECK(ndr_push_align(ndr
, 4));
249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->idx
));
250 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->name
));
252 if (ndr_flags
& NDR_BUFFERS
) {
253 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->name
));
255 return NDR_ERR_SUCCESS
;
258 static enum ndr_err_code
ndr_pull_samr_SamEntry(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_SamEntry
*r
)
260 if (ndr_flags
& NDR_SCALARS
) {
261 NDR_CHECK(ndr_pull_align(ndr
, 4));
262 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->idx
));
263 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->name
));
265 if (ndr_flags
& NDR_BUFFERS
) {
266 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->name
));
268 return NDR_ERR_SUCCESS
;
271 _PUBLIC_
void ndr_print_samr_SamEntry(struct ndr_print
*ndr
, const char *name
, const struct samr_SamEntry
*r
)
273 ndr_print_struct(ndr
, name
, "samr_SamEntry");
275 ndr_print_uint32(ndr
, "idx", r
->idx
);
276 ndr_print_lsa_String(ndr
, "name", &r
->name
);
280 static enum ndr_err_code
ndr_push_samr_SamArray(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_SamArray
*r
)
282 uint32_t cntr_entries_1
;
283 if (ndr_flags
& NDR_SCALARS
) {
284 NDR_CHECK(ndr_push_align(ndr
, 4));
285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
286 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->entries
));
288 if (ndr_flags
& NDR_BUFFERS
) {
290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
291 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
292 NDR_CHECK(ndr_push_samr_SamEntry(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
294 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
295 NDR_CHECK(ndr_push_samr_SamEntry(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
299 return NDR_ERR_SUCCESS
;
302 static enum ndr_err_code
ndr_pull_samr_SamArray(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_SamArray
*r
)
304 uint32_t _ptr_entries
;
305 uint32_t size_entries_1
= 0;
306 uint32_t cntr_entries_1
;
307 TALLOC_CTX
*_mem_save_entries_0
;
308 TALLOC_CTX
*_mem_save_entries_1
;
309 if (ndr_flags
& NDR_SCALARS
) {
310 NDR_CHECK(ndr_pull_align(ndr
, 4));
311 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
312 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_entries
));
314 NDR_PULL_ALLOC(ndr
, r
->entries
);
319 if (ndr_flags
& NDR_BUFFERS
) {
321 _mem_save_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
322 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
323 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->entries
));
324 size_entries_1
= ndr_get_array_size(ndr
, &r
->entries
);
325 NDR_PULL_ALLOC_N(ndr
, r
->entries
, size_entries_1
);
326 _mem_save_entries_1
= NDR_PULL_GET_MEM_CTX(ndr
);
327 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
328 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
329 NDR_CHECK(ndr_pull_samr_SamEntry(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
331 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
332 NDR_CHECK(ndr_pull_samr_SamEntry(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_1
, 0);
335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_0
, 0);
338 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->entries
, r
->count
));
341 return NDR_ERR_SUCCESS
;
344 _PUBLIC_
void ndr_print_samr_SamArray(struct ndr_print
*ndr
, const char *name
, const struct samr_SamArray
*r
)
346 uint32_t cntr_entries_1
;
347 ndr_print_struct(ndr
, name
, "samr_SamArray");
349 ndr_print_uint32(ndr
, "count", r
->count
);
350 ndr_print_ptr(ndr
, "entries", r
->entries
);
353 ndr
->print(ndr
, "%s: ARRAY(%d)", "entries", (int)r
->count
);
355 for (cntr_entries_1
=0;cntr_entries_1
<r
->count
;cntr_entries_1
++) {
357 if (asprintf(&idx_1
, "[%d]", cntr_entries_1
) != -1) {
358 ndr_print_samr_SamEntry(ndr
, "entries", &r
->entries
[cntr_entries_1
]);
368 static enum ndr_err_code
ndr_push_samr_Role(struct ndr_push
*ndr
, int ndr_flags
, enum samr_Role r
)
370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
371 return NDR_ERR_SUCCESS
;
374 static enum ndr_err_code
ndr_pull_samr_Role(struct ndr_pull
*ndr
, int ndr_flags
, enum samr_Role
*r
)
377 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
379 return NDR_ERR_SUCCESS
;
382 _PUBLIC_
void ndr_print_samr_Role(struct ndr_print
*ndr
, const char *name
, enum samr_Role r
)
384 const char *val
= NULL
;
387 case SAMR_ROLE_STANDALONE
: val
= "SAMR_ROLE_STANDALONE"; break;
388 case SAMR_ROLE_DOMAIN_MEMBER
: val
= "SAMR_ROLE_DOMAIN_MEMBER"; break;
389 case SAMR_ROLE_DOMAIN_BDC
: val
= "SAMR_ROLE_DOMAIN_BDC"; break;
390 case SAMR_ROLE_DOMAIN_PDC
: val
= "SAMR_ROLE_DOMAIN_PDC"; break;
392 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
395 _PUBLIC_
enum ndr_err_code
ndr_push_samr_PasswordProperties(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
398 return NDR_ERR_SUCCESS
;
401 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_PasswordProperties(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
404 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
406 return NDR_ERR_SUCCESS
;
409 _PUBLIC_
void ndr_print_samr_PasswordProperties(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
411 ndr_print_uint32(ndr
, name
, r
);
413 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DOMAIN_PASSWORD_COMPLEX", DOMAIN_PASSWORD_COMPLEX
, r
);
414 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DOMAIN_PASSWORD_NO_ANON_CHANGE", DOMAIN_PASSWORD_NO_ANON_CHANGE
, r
);
415 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DOMAIN_PASSWORD_NO_CLEAR_CHANGE", DOMAIN_PASSWORD_NO_CLEAR_CHANGE
, r
);
416 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DOMAIN_PASSWORD_LOCKOUT_ADMINS", DOMAIN_PASSWORD_LOCKOUT_ADMINS
, r
);
417 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DOMAIN_PASSWORD_STORE_CLEARTEXT", DOMAIN_PASSWORD_STORE_CLEARTEXT
, r
);
418 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DOMAIN_REFUSE_PASSWORD_CHANGE", DOMAIN_REFUSE_PASSWORD_CHANGE
, r
);
422 static enum ndr_err_code
ndr_push_samr_DomainServerState(struct ndr_push
*ndr
, int ndr_flags
, enum samr_DomainServerState r
)
424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
425 return NDR_ERR_SUCCESS
;
428 static enum ndr_err_code
ndr_pull_samr_DomainServerState(struct ndr_pull
*ndr
, int ndr_flags
, enum samr_DomainServerState
*r
)
431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
433 return NDR_ERR_SUCCESS
;
436 _PUBLIC_
void ndr_print_samr_DomainServerState(struct ndr_print
*ndr
, const char *name
, enum samr_DomainServerState r
)
438 const char *val
= NULL
;
441 case DOMAIN_SERVER_ENABLED
: val
= "DOMAIN_SERVER_ENABLED"; break;
442 case DOMAIN_SERVER_DISABLED
: val
= "DOMAIN_SERVER_DISABLED"; break;
444 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
447 static enum ndr_err_code
ndr_push_samr_DomInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomInfo1
*r
)
449 if (ndr_flags
& NDR_SCALARS
) {
450 NDR_CHECK(ndr_push_align(ndr
, 4));
451 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->min_password_length
));
452 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->password_history_length
));
453 NDR_CHECK(ndr_push_samr_PasswordProperties(ndr
, NDR_SCALARS
, r
->password_properties
));
454 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->max_password_age
));
455 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->min_password_age
));
457 if (ndr_flags
& NDR_BUFFERS
) {
459 return NDR_ERR_SUCCESS
;
462 static enum ndr_err_code
ndr_pull_samr_DomInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomInfo1
*r
)
464 if (ndr_flags
& NDR_SCALARS
) {
465 NDR_CHECK(ndr_pull_align(ndr
, 4));
466 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->min_password_length
));
467 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->password_history_length
));
468 NDR_CHECK(ndr_pull_samr_PasswordProperties(ndr
, NDR_SCALARS
, &r
->password_properties
));
469 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->max_password_age
));
470 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->min_password_age
));
472 if (ndr_flags
& NDR_BUFFERS
) {
474 return NDR_ERR_SUCCESS
;
477 _PUBLIC_
void ndr_print_samr_DomInfo1(struct ndr_print
*ndr
, const char *name
, const struct samr_DomInfo1
*r
)
479 ndr_print_struct(ndr
, name
, "samr_DomInfo1");
481 ndr_print_uint16(ndr
, "min_password_length", r
->min_password_length
);
482 ndr_print_uint16(ndr
, "password_history_length", r
->password_history_length
);
483 ndr_print_samr_PasswordProperties(ndr
, "password_properties", r
->password_properties
);
484 ndr_print_dlong(ndr
, "max_password_age", r
->max_password_age
);
485 ndr_print_dlong(ndr
, "min_password_age", r
->min_password_age
);
489 static enum ndr_err_code
ndr_push_samr_DomGeneralInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomGeneralInformation
*r
)
491 if (ndr_flags
& NDR_SCALARS
) {
492 NDR_CHECK(ndr_push_align(ndr
, 4));
493 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_logoff_time
));
494 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
495 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
496 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->primary
));
497 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
498 NDR_CHECK(ndr_push_samr_DomainServerState(ndr
, NDR_SCALARS
, r
->domain_server_state
));
499 NDR_CHECK(ndr_push_samr_Role(ndr
, NDR_SCALARS
, r
->role
));
500 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
501 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_users
));
502 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_groups
));
503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_aliases
));
505 if (ndr_flags
& NDR_BUFFERS
) {
506 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
507 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
508 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary
));
510 return NDR_ERR_SUCCESS
;
513 static enum ndr_err_code
ndr_pull_samr_DomGeneralInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomGeneralInformation
*r
)
515 if (ndr_flags
& NDR_SCALARS
) {
516 NDR_CHECK(ndr_pull_align(ndr
, 4));
517 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_logoff_time
));
518 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
519 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
520 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->primary
));
521 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
522 NDR_CHECK(ndr_pull_samr_DomainServerState(ndr
, NDR_SCALARS
, &r
->domain_server_state
));
523 NDR_CHECK(ndr_pull_samr_Role(ndr
, NDR_SCALARS
, &r
->role
));
524 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
525 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_users
));
526 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_groups
));
527 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_aliases
));
529 if (ndr_flags
& NDR_BUFFERS
) {
530 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
531 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
532 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary
));
534 return NDR_ERR_SUCCESS
;
537 _PUBLIC_
void ndr_print_samr_DomGeneralInformation(struct ndr_print
*ndr
, const char *name
, const struct samr_DomGeneralInformation
*r
)
539 ndr_print_struct(ndr
, name
, "samr_DomGeneralInformation");
541 ndr_print_NTTIME(ndr
, "force_logoff_time", r
->force_logoff_time
);
542 ndr_print_lsa_String(ndr
, "oem_information", &r
->oem_information
);
543 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
544 ndr_print_lsa_String(ndr
, "primary", &r
->primary
);
545 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
546 ndr_print_samr_DomainServerState(ndr
, "domain_server_state", r
->domain_server_state
);
547 ndr_print_samr_Role(ndr
, "role", r
->role
);
548 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
549 ndr_print_uint32(ndr
, "num_users", r
->num_users
);
550 ndr_print_uint32(ndr
, "num_groups", r
->num_groups
);
551 ndr_print_uint32(ndr
, "num_aliases", r
->num_aliases
);
555 static enum ndr_err_code
ndr_push_samr_DomInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomInfo3
*r
)
557 if (ndr_flags
& NDR_SCALARS
) {
558 NDR_CHECK(ndr_push_align(ndr
, 4));
559 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_logoff_time
));
561 if (ndr_flags
& NDR_BUFFERS
) {
563 return NDR_ERR_SUCCESS
;
566 static enum ndr_err_code
ndr_pull_samr_DomInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomInfo3
*r
)
568 if (ndr_flags
& NDR_SCALARS
) {
569 NDR_CHECK(ndr_pull_align(ndr
, 4));
570 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_logoff_time
));
572 if (ndr_flags
& NDR_BUFFERS
) {
574 return NDR_ERR_SUCCESS
;
577 _PUBLIC_
void ndr_print_samr_DomInfo3(struct ndr_print
*ndr
, const char *name
, const struct samr_DomInfo3
*r
)
579 ndr_print_struct(ndr
, name
, "samr_DomInfo3");
581 ndr_print_NTTIME(ndr
, "force_logoff_time", r
->force_logoff_time
);
585 static enum ndr_err_code
ndr_push_samr_DomOEMInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomOEMInformation
*r
)
587 if (ndr_flags
& NDR_SCALARS
) {
588 NDR_CHECK(ndr_push_align(ndr
, 4));
589 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
591 if (ndr_flags
& NDR_BUFFERS
) {
592 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
594 return NDR_ERR_SUCCESS
;
597 static enum ndr_err_code
ndr_pull_samr_DomOEMInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomOEMInformation
*r
)
599 if (ndr_flags
& NDR_SCALARS
) {
600 NDR_CHECK(ndr_pull_align(ndr
, 4));
601 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
603 if (ndr_flags
& NDR_BUFFERS
) {
604 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
606 return NDR_ERR_SUCCESS
;
609 _PUBLIC_
void ndr_print_samr_DomOEMInformation(struct ndr_print
*ndr
, const char *name
, const struct samr_DomOEMInformation
*r
)
611 ndr_print_struct(ndr
, name
, "samr_DomOEMInformation");
613 ndr_print_lsa_String(ndr
, "oem_information", &r
->oem_information
);
617 static enum ndr_err_code
ndr_push_samr_DomInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomInfo5
*r
)
619 if (ndr_flags
& NDR_SCALARS
) {
620 NDR_CHECK(ndr_push_align(ndr
, 4));
621 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
623 if (ndr_flags
& NDR_BUFFERS
) {
624 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
626 return NDR_ERR_SUCCESS
;
629 static enum ndr_err_code
ndr_pull_samr_DomInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomInfo5
*r
)
631 if (ndr_flags
& NDR_SCALARS
) {
632 NDR_CHECK(ndr_pull_align(ndr
, 4));
633 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
635 if (ndr_flags
& NDR_BUFFERS
) {
636 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
638 return NDR_ERR_SUCCESS
;
641 _PUBLIC_
void ndr_print_samr_DomInfo5(struct ndr_print
*ndr
, const char *name
, const struct samr_DomInfo5
*r
)
643 ndr_print_struct(ndr
, name
, "samr_DomInfo5");
645 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
649 static enum ndr_err_code
ndr_push_samr_DomInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomInfo6
*r
)
651 if (ndr_flags
& NDR_SCALARS
) {
652 NDR_CHECK(ndr_push_align(ndr
, 4));
653 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->primary
));
655 if (ndr_flags
& NDR_BUFFERS
) {
656 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary
));
658 return NDR_ERR_SUCCESS
;
661 static enum ndr_err_code
ndr_pull_samr_DomInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomInfo6
*r
)
663 if (ndr_flags
& NDR_SCALARS
) {
664 NDR_CHECK(ndr_pull_align(ndr
, 4));
665 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->primary
));
667 if (ndr_flags
& NDR_BUFFERS
) {
668 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary
));
670 return NDR_ERR_SUCCESS
;
673 _PUBLIC_
void ndr_print_samr_DomInfo6(struct ndr_print
*ndr
, const char *name
, const struct samr_DomInfo6
*r
)
675 ndr_print_struct(ndr
, name
, "samr_DomInfo6");
677 ndr_print_lsa_String(ndr
, "primary", &r
->primary
);
681 static enum ndr_err_code
ndr_push_samr_DomInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomInfo7
*r
)
683 if (ndr_flags
& NDR_SCALARS
) {
684 NDR_CHECK(ndr_push_align(ndr
, 4));
685 NDR_CHECK(ndr_push_samr_Role(ndr
, NDR_SCALARS
, r
->role
));
687 if (ndr_flags
& NDR_BUFFERS
) {
689 return NDR_ERR_SUCCESS
;
692 static enum ndr_err_code
ndr_pull_samr_DomInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomInfo7
*r
)
694 if (ndr_flags
& NDR_SCALARS
) {
695 NDR_CHECK(ndr_pull_align(ndr
, 4));
696 NDR_CHECK(ndr_pull_samr_Role(ndr
, NDR_SCALARS
, &r
->role
));
698 if (ndr_flags
& NDR_BUFFERS
) {
700 return NDR_ERR_SUCCESS
;
703 _PUBLIC_
void ndr_print_samr_DomInfo7(struct ndr_print
*ndr
, const char *name
, const struct samr_DomInfo7
*r
)
705 ndr_print_struct(ndr
, name
, "samr_DomInfo7");
707 ndr_print_samr_Role(ndr
, "role", r
->role
);
711 static enum ndr_err_code
ndr_push_samr_DomInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomInfo8
*r
)
713 if (ndr_flags
& NDR_SCALARS
) {
714 NDR_CHECK(ndr_push_align(ndr
, 8));
715 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->sequence_num
));
716 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->domain_create_time
));
718 if (ndr_flags
& NDR_BUFFERS
) {
720 return NDR_ERR_SUCCESS
;
723 static enum ndr_err_code
ndr_pull_samr_DomInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomInfo8
*r
)
725 if (ndr_flags
& NDR_SCALARS
) {
726 NDR_CHECK(ndr_pull_align(ndr
, 8));
727 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->sequence_num
));
728 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->domain_create_time
));
730 if (ndr_flags
& NDR_BUFFERS
) {
732 return NDR_ERR_SUCCESS
;
735 _PUBLIC_
void ndr_print_samr_DomInfo8(struct ndr_print
*ndr
, const char *name
, const struct samr_DomInfo8
*r
)
737 ndr_print_struct(ndr
, name
, "samr_DomInfo8");
739 ndr_print_hyper(ndr
, "sequence_num", r
->sequence_num
);
740 ndr_print_NTTIME(ndr
, "domain_create_time", r
->domain_create_time
);
744 static enum ndr_err_code
ndr_push_samr_DomInfo9(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomInfo9
*r
)
746 if (ndr_flags
& NDR_SCALARS
) {
747 NDR_CHECK(ndr_push_align(ndr
, 4));
748 NDR_CHECK(ndr_push_samr_DomainServerState(ndr
, NDR_SCALARS
, r
->domain_server_state
));
750 if (ndr_flags
& NDR_BUFFERS
) {
752 return NDR_ERR_SUCCESS
;
755 static enum ndr_err_code
ndr_pull_samr_DomInfo9(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomInfo9
*r
)
757 if (ndr_flags
& NDR_SCALARS
) {
758 NDR_CHECK(ndr_pull_align(ndr
, 4));
759 NDR_CHECK(ndr_pull_samr_DomainServerState(ndr
, NDR_SCALARS
, &r
->domain_server_state
));
761 if (ndr_flags
& NDR_BUFFERS
) {
763 return NDR_ERR_SUCCESS
;
766 _PUBLIC_
void ndr_print_samr_DomInfo9(struct ndr_print
*ndr
, const char *name
, const struct samr_DomInfo9
*r
)
768 ndr_print_struct(ndr
, name
, "samr_DomInfo9");
770 ndr_print_samr_DomainServerState(ndr
, "domain_server_state", r
->domain_server_state
);
774 static enum ndr_err_code
ndr_push_samr_DomGeneralInformation2(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomGeneralInformation2
*r
)
776 if (ndr_flags
& NDR_SCALARS
) {
777 NDR_CHECK(ndr_push_align(ndr
, 8));
778 NDR_CHECK(ndr_push_samr_DomGeneralInformation(ndr
, NDR_SCALARS
, &r
->general
));
779 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->lockout_duration
));
780 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->lockout_window
));
781 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lockout_threshold
));
783 if (ndr_flags
& NDR_BUFFERS
) {
784 NDR_CHECK(ndr_push_samr_DomGeneralInformation(ndr
, NDR_BUFFERS
, &r
->general
));
786 return NDR_ERR_SUCCESS
;
789 static enum ndr_err_code
ndr_pull_samr_DomGeneralInformation2(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomGeneralInformation2
*r
)
791 if (ndr_flags
& NDR_SCALARS
) {
792 NDR_CHECK(ndr_pull_align(ndr
, 8));
793 NDR_CHECK(ndr_pull_samr_DomGeneralInformation(ndr
, NDR_SCALARS
, &r
->general
));
794 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->lockout_duration
));
795 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->lockout_window
));
796 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lockout_threshold
));
798 if (ndr_flags
& NDR_BUFFERS
) {
799 NDR_CHECK(ndr_pull_samr_DomGeneralInformation(ndr
, NDR_BUFFERS
, &r
->general
));
801 return NDR_ERR_SUCCESS
;
804 _PUBLIC_
void ndr_print_samr_DomGeneralInformation2(struct ndr_print
*ndr
, const char *name
, const struct samr_DomGeneralInformation2
*r
)
806 ndr_print_struct(ndr
, name
, "samr_DomGeneralInformation2");
808 ndr_print_samr_DomGeneralInformation(ndr
, "general", &r
->general
);
809 ndr_print_hyper(ndr
, "lockout_duration", r
->lockout_duration
);
810 ndr_print_hyper(ndr
, "lockout_window", r
->lockout_window
);
811 ndr_print_uint16(ndr
, "lockout_threshold", r
->lockout_threshold
);
815 static enum ndr_err_code
ndr_push_samr_DomInfo12(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomInfo12
*r
)
817 if (ndr_flags
& NDR_SCALARS
) {
818 NDR_CHECK(ndr_push_align(ndr
, 8));
819 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->lockout_duration
));
820 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->lockout_window
));
821 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lockout_threshold
));
823 if (ndr_flags
& NDR_BUFFERS
) {
825 return NDR_ERR_SUCCESS
;
828 static enum ndr_err_code
ndr_pull_samr_DomInfo12(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomInfo12
*r
)
830 if (ndr_flags
& NDR_SCALARS
) {
831 NDR_CHECK(ndr_pull_align(ndr
, 8));
832 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->lockout_duration
));
833 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->lockout_window
));
834 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lockout_threshold
));
836 if (ndr_flags
& NDR_BUFFERS
) {
838 return NDR_ERR_SUCCESS
;
841 _PUBLIC_
void ndr_print_samr_DomInfo12(struct ndr_print
*ndr
, const char *name
, const struct samr_DomInfo12
*r
)
843 ndr_print_struct(ndr
, name
, "samr_DomInfo12");
845 ndr_print_hyper(ndr
, "lockout_duration", r
->lockout_duration
);
846 ndr_print_hyper(ndr
, "lockout_window", r
->lockout_window
);
847 ndr_print_uint16(ndr
, "lockout_threshold", r
->lockout_threshold
);
851 static enum ndr_err_code
ndr_push_samr_DomInfo13(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DomInfo13
*r
)
853 if (ndr_flags
& NDR_SCALARS
) {
854 NDR_CHECK(ndr_push_align(ndr
, 8));
855 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->sequence_num
));
856 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->domain_create_time
));
857 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->modified_count_at_last_promotion
));
859 if (ndr_flags
& NDR_BUFFERS
) {
861 return NDR_ERR_SUCCESS
;
864 static enum ndr_err_code
ndr_pull_samr_DomInfo13(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DomInfo13
*r
)
866 if (ndr_flags
& NDR_SCALARS
) {
867 NDR_CHECK(ndr_pull_align(ndr
, 8));
868 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->sequence_num
));
869 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->domain_create_time
));
870 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->modified_count_at_last_promotion
));
872 if (ndr_flags
& NDR_BUFFERS
) {
874 return NDR_ERR_SUCCESS
;
877 _PUBLIC_
void ndr_print_samr_DomInfo13(struct ndr_print
*ndr
, const char *name
, const struct samr_DomInfo13
*r
)
879 ndr_print_struct(ndr
, name
, "samr_DomInfo13");
881 ndr_print_hyper(ndr
, "sequence_num", r
->sequence_num
);
882 ndr_print_NTTIME(ndr
, "domain_create_time", r
->domain_create_time
);
883 ndr_print_hyper(ndr
, "modified_count_at_last_promotion", r
->modified_count_at_last_promotion
);
887 static enum ndr_err_code
ndr_push_samr_DomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const union samr_DomainInfo
*r
)
889 if (ndr_flags
& NDR_SCALARS
) {
890 int level
= ndr_push_get_switch_value(ndr
, r
);
891 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
894 NDR_CHECK(ndr_push_samr_DomInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
898 NDR_CHECK(ndr_push_samr_DomGeneralInformation(ndr
, NDR_SCALARS
, &r
->general
));
902 NDR_CHECK(ndr_push_samr_DomInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
906 NDR_CHECK(ndr_push_samr_DomOEMInformation(ndr
, NDR_SCALARS
, &r
->oem
));
910 NDR_CHECK(ndr_push_samr_DomInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
914 NDR_CHECK(ndr_push_samr_DomInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
918 NDR_CHECK(ndr_push_samr_DomInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
922 NDR_CHECK(ndr_push_samr_DomInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
926 NDR_CHECK(ndr_push_samr_DomInfo9(ndr
, NDR_SCALARS
, &r
->info9
));
930 NDR_CHECK(ndr_push_samr_DomGeneralInformation2(ndr
, NDR_SCALARS
, &r
->general2
));
934 NDR_CHECK(ndr_push_samr_DomInfo12(ndr
, NDR_SCALARS
, &r
->info12
));
938 NDR_CHECK(ndr_push_samr_DomInfo13(ndr
, NDR_SCALARS
, &r
->info13
));
942 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
945 if (ndr_flags
& NDR_BUFFERS
) {
946 int level
= ndr_push_get_switch_value(ndr
, r
);
952 NDR_CHECK(ndr_push_samr_DomGeneralInformation(ndr
, NDR_BUFFERS
, &r
->general
));
959 NDR_CHECK(ndr_push_samr_DomOEMInformation(ndr
, NDR_BUFFERS
, &r
->oem
));
963 NDR_CHECK(ndr_push_samr_DomInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
967 NDR_CHECK(ndr_push_samr_DomInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
980 NDR_CHECK(ndr_push_samr_DomGeneralInformation2(ndr
, NDR_BUFFERS
, &r
->general2
));
990 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
993 return NDR_ERR_SUCCESS
;
996 static enum ndr_err_code
ndr_pull_samr_DomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, union samr_DomainInfo
*r
)
1000 level
= ndr_pull_get_switch_value(ndr
, r
);
1001 if (ndr_flags
& NDR_SCALARS
) {
1002 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
1003 if (_level
!= level
) {
1004 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
1008 NDR_CHECK(ndr_pull_samr_DomInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
1012 NDR_CHECK(ndr_pull_samr_DomGeneralInformation(ndr
, NDR_SCALARS
, &r
->general
));
1016 NDR_CHECK(ndr_pull_samr_DomInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
1020 NDR_CHECK(ndr_pull_samr_DomOEMInformation(ndr
, NDR_SCALARS
, &r
->oem
));
1024 NDR_CHECK(ndr_pull_samr_DomInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
1028 NDR_CHECK(ndr_pull_samr_DomInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
1032 NDR_CHECK(ndr_pull_samr_DomInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
1036 NDR_CHECK(ndr_pull_samr_DomInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
1040 NDR_CHECK(ndr_pull_samr_DomInfo9(ndr
, NDR_SCALARS
, &r
->info9
));
1044 NDR_CHECK(ndr_pull_samr_DomGeneralInformation2(ndr
, NDR_SCALARS
, &r
->general2
));
1048 NDR_CHECK(ndr_pull_samr_DomInfo12(ndr
, NDR_SCALARS
, &r
->info12
));
1052 NDR_CHECK(ndr_pull_samr_DomInfo13(ndr
, NDR_SCALARS
, &r
->info13
));
1056 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1059 if (ndr_flags
& NDR_BUFFERS
) {
1065 NDR_CHECK(ndr_pull_samr_DomGeneralInformation(ndr
, NDR_BUFFERS
, &r
->general
));
1072 NDR_CHECK(ndr_pull_samr_DomOEMInformation(ndr
, NDR_BUFFERS
, &r
->oem
));
1076 NDR_CHECK(ndr_pull_samr_DomInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
1080 NDR_CHECK(ndr_pull_samr_DomInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
1093 NDR_CHECK(ndr_pull_samr_DomGeneralInformation2(ndr
, NDR_BUFFERS
, &r
->general2
));
1103 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1106 return NDR_ERR_SUCCESS
;
1109 _PUBLIC_
void ndr_print_samr_DomainInfo(struct ndr_print
*ndr
, const char *name
, const union samr_DomainInfo
*r
)
1112 level
= ndr_print_get_switch_value(ndr
, r
);
1113 ndr_print_union(ndr
, name
, level
, "samr_DomainInfo");
1116 ndr_print_samr_DomInfo1(ndr
, "info1", &r
->info1
);
1120 ndr_print_samr_DomGeneralInformation(ndr
, "general", &r
->general
);
1124 ndr_print_samr_DomInfo3(ndr
, "info3", &r
->info3
);
1128 ndr_print_samr_DomOEMInformation(ndr
, "oem", &r
->oem
);
1132 ndr_print_samr_DomInfo5(ndr
, "info5", &r
->info5
);
1136 ndr_print_samr_DomInfo6(ndr
, "info6", &r
->info6
);
1140 ndr_print_samr_DomInfo7(ndr
, "info7", &r
->info7
);
1144 ndr_print_samr_DomInfo8(ndr
, "info8", &r
->info8
);
1148 ndr_print_samr_DomInfo9(ndr
, "info9", &r
->info9
);
1152 ndr_print_samr_DomGeneralInformation2(ndr
, "general2", &r
->general2
);
1156 ndr_print_samr_DomInfo12(ndr
, "info12", &r
->info12
);
1160 ndr_print_samr_DomInfo13(ndr
, "info13", &r
->info13
);
1164 ndr_print_bad_level(ndr
, name
, level
);
1168 static enum ndr_err_code
ndr_push_samr_Ids(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_Ids
*r
)
1170 uint32_t cntr_ids_1
;
1171 if (ndr_flags
& NDR_SCALARS
) {
1172 NDR_CHECK(ndr_push_align(ndr
, 4));
1173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
1174 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->ids
));
1176 if (ndr_flags
& NDR_BUFFERS
) {
1178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
1179 for (cntr_ids_1
= 0; cntr_ids_1
< r
->count
; cntr_ids_1
++) {
1180 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ids
[cntr_ids_1
]));
1184 return NDR_ERR_SUCCESS
;
1187 static enum ndr_err_code
ndr_pull_samr_Ids(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_Ids
*r
)
1190 uint32_t size_ids_1
= 0;
1191 uint32_t cntr_ids_1
;
1192 TALLOC_CTX
*_mem_save_ids_0
;
1193 TALLOC_CTX
*_mem_save_ids_1
;
1194 if (ndr_flags
& NDR_SCALARS
) {
1195 NDR_CHECK(ndr_pull_align(ndr
, 4));
1196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
1197 if (r
->count
> 1024) {
1198 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1200 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ids
));
1202 NDR_PULL_ALLOC(ndr
, r
->ids
);
1207 if (ndr_flags
& NDR_BUFFERS
) {
1209 _mem_save_ids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1210 NDR_PULL_SET_MEM_CTX(ndr
, r
->ids
, 0);
1211 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->ids
));
1212 size_ids_1
= ndr_get_array_size(ndr
, &r
->ids
);
1213 NDR_PULL_ALLOC_N(ndr
, r
->ids
, size_ids_1
);
1214 _mem_save_ids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1215 NDR_PULL_SET_MEM_CTX(ndr
, r
->ids
, 0);
1216 for (cntr_ids_1
= 0; cntr_ids_1
< size_ids_1
; cntr_ids_1
++) {
1217 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ids
[cntr_ids_1
]));
1219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ids_1
, 0);
1220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ids_0
, 0);
1223 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->ids
, r
->count
));
1226 return NDR_ERR_SUCCESS
;
1229 _PUBLIC_
void ndr_print_samr_Ids(struct ndr_print
*ndr
, const char *name
, const struct samr_Ids
*r
)
1231 uint32_t cntr_ids_1
;
1232 ndr_print_struct(ndr
, name
, "samr_Ids");
1234 ndr_print_uint32(ndr
, "count", r
->count
);
1235 ndr_print_ptr(ndr
, "ids", r
->ids
);
1238 ndr
->print(ndr
, "%s: ARRAY(%d)", "ids", (int)r
->count
);
1240 for (cntr_ids_1
=0;cntr_ids_1
<r
->count
;cntr_ids_1
++) {
1242 if (asprintf(&idx_1
, "[%d]", cntr_ids_1
) != -1) {
1243 ndr_print_uint32(ndr
, "ids", r
->ids
[cntr_ids_1
]);
1253 _PUBLIC_
enum ndr_err_code
ndr_push_samr_GroupAttrs(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1256 return NDR_ERR_SUCCESS
;
1259 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_GroupAttrs(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1262 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1264 return NDR_ERR_SUCCESS
;
1267 _PUBLIC_
void ndr_print_samr_GroupAttrs(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1269 ndr_print_uint32(ndr
, name
, r
);
1271 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SE_GROUP_MANDATORY", SE_GROUP_MANDATORY
, r
);
1272 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SE_GROUP_ENABLED_BY_DEFAULT", SE_GROUP_ENABLED_BY_DEFAULT
, r
);
1273 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SE_GROUP_ENABLED", SE_GROUP_ENABLED
, r
);
1274 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SE_GROUP_OWNER", SE_GROUP_OWNER
, r
);
1275 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SE_GROUP_USE_FOR_DENY_ONLY", SE_GROUP_USE_FOR_DENY_ONLY
, r
);
1276 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SE_GROUP_RESOURCE", SE_GROUP_RESOURCE
, r
);
1277 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SE_GROUP_LOGON_ID", SE_GROUP_LOGON_ID
, r
);
1281 static enum ndr_err_code
ndr_push_samr_GroupInfoAll(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_GroupInfoAll
*r
)
1283 if (ndr_flags
& NDR_SCALARS
) {
1284 NDR_CHECK(ndr_push_align(ndr
, 4));
1285 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->name
));
1286 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->attributes
));
1287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_members
));
1288 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
1290 if (ndr_flags
& NDR_BUFFERS
) {
1291 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->name
));
1292 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
1294 return NDR_ERR_SUCCESS
;
1297 static enum ndr_err_code
ndr_pull_samr_GroupInfoAll(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_GroupInfoAll
*r
)
1299 if (ndr_flags
& NDR_SCALARS
) {
1300 NDR_CHECK(ndr_pull_align(ndr
, 4));
1301 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->name
));
1302 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->attributes
));
1303 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_members
));
1304 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
1306 if (ndr_flags
& NDR_BUFFERS
) {
1307 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->name
));
1308 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
1310 return NDR_ERR_SUCCESS
;
1313 _PUBLIC_
void ndr_print_samr_GroupInfoAll(struct ndr_print
*ndr
, const char *name
, const struct samr_GroupInfoAll
*r
)
1315 ndr_print_struct(ndr
, name
, "samr_GroupInfoAll");
1317 ndr_print_lsa_String(ndr
, "name", &r
->name
);
1318 ndr_print_samr_GroupAttrs(ndr
, "attributes", r
->attributes
);
1319 ndr_print_uint32(ndr
, "num_members", r
->num_members
);
1320 ndr_print_lsa_String(ndr
, "description", &r
->description
);
1324 static enum ndr_err_code
ndr_push_samr_GroupInfoAttributes(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_GroupInfoAttributes
*r
)
1326 if (ndr_flags
& NDR_SCALARS
) {
1327 NDR_CHECK(ndr_push_align(ndr
, 4));
1328 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->attributes
));
1330 if (ndr_flags
& NDR_BUFFERS
) {
1332 return NDR_ERR_SUCCESS
;
1335 static enum ndr_err_code
ndr_pull_samr_GroupInfoAttributes(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_GroupInfoAttributes
*r
)
1337 if (ndr_flags
& NDR_SCALARS
) {
1338 NDR_CHECK(ndr_pull_align(ndr
, 4));
1339 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->attributes
));
1341 if (ndr_flags
& NDR_BUFFERS
) {
1343 return NDR_ERR_SUCCESS
;
1346 _PUBLIC_
void ndr_print_samr_GroupInfoAttributes(struct ndr_print
*ndr
, const char *name
, const struct samr_GroupInfoAttributes
*r
)
1348 ndr_print_struct(ndr
, name
, "samr_GroupInfoAttributes");
1350 ndr_print_samr_GroupAttrs(ndr
, "attributes", r
->attributes
);
1354 static enum ndr_err_code
ndr_push_samr_GroupInfoEnum(struct ndr_push
*ndr
, int ndr_flags
, enum samr_GroupInfoEnum r
)
1356 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
1357 return NDR_ERR_SUCCESS
;
1360 static enum ndr_err_code
ndr_pull_samr_GroupInfoEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum samr_GroupInfoEnum
*r
)
1363 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
1365 return NDR_ERR_SUCCESS
;
1368 _PUBLIC_
void ndr_print_samr_GroupInfoEnum(struct ndr_print
*ndr
, const char *name
, enum samr_GroupInfoEnum r
)
1370 const char *val
= NULL
;
1373 case GROUPINFOALL
: val
= "GROUPINFOALL"; break;
1374 case GROUPINFONAME
: val
= "GROUPINFONAME"; break;
1375 case GROUPINFOATTRIBUTES
: val
= "GROUPINFOATTRIBUTES"; break;
1376 case GROUPINFODESCRIPTION
: val
= "GROUPINFODESCRIPTION"; break;
1377 case GROUPINFOALL2
: val
= "GROUPINFOALL2"; break;
1379 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1382 static enum ndr_err_code
ndr_push_samr_GroupInfo(struct ndr_push
*ndr
, int ndr_flags
, const union samr_GroupInfo
*r
)
1384 if (ndr_flags
& NDR_SCALARS
) {
1385 int level
= ndr_push_get_switch_value(ndr
, r
);
1386 NDR_CHECK(ndr_push_samr_GroupInfoEnum(ndr
, NDR_SCALARS
, level
));
1388 case GROUPINFOALL
: {
1389 NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr
, NDR_SCALARS
, &r
->all
));
1392 case GROUPINFONAME
: {
1393 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->name
));
1396 case GROUPINFOATTRIBUTES
: {
1397 NDR_CHECK(ndr_push_samr_GroupInfoAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1400 case GROUPINFODESCRIPTION
: {
1401 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
1404 case GROUPINFOALL2
: {
1405 NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr
, NDR_SCALARS
, &r
->all2
));
1409 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1412 if (ndr_flags
& NDR_BUFFERS
) {
1413 int level
= ndr_push_get_switch_value(ndr
, r
);
1416 NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr
, NDR_BUFFERS
, &r
->all
));
1420 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->name
));
1423 case GROUPINFOATTRIBUTES
:
1426 case GROUPINFODESCRIPTION
:
1427 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
1431 NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr
, NDR_BUFFERS
, &r
->all2
));
1435 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1438 return NDR_ERR_SUCCESS
;
1441 static enum ndr_err_code
ndr_pull_samr_GroupInfo(struct ndr_pull
*ndr
, int ndr_flags
, union samr_GroupInfo
*r
)
1445 level
= ndr_pull_get_switch_value(ndr
, r
);
1446 if (ndr_flags
& NDR_SCALARS
) {
1447 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
1448 if (_level
!= level
) {
1449 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
1452 case GROUPINFOALL
: {
1453 NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr
, NDR_SCALARS
, &r
->all
));
1456 case GROUPINFONAME
: {
1457 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->name
));
1460 case GROUPINFOATTRIBUTES
: {
1461 NDR_CHECK(ndr_pull_samr_GroupInfoAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1464 case GROUPINFODESCRIPTION
: {
1465 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
1468 case GROUPINFOALL2
: {
1469 NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr
, NDR_SCALARS
, &r
->all2
));
1473 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1476 if (ndr_flags
& NDR_BUFFERS
) {
1479 NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr
, NDR_BUFFERS
, &r
->all
));
1483 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->name
));
1486 case GROUPINFOATTRIBUTES
:
1489 case GROUPINFODESCRIPTION
:
1490 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
1494 NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr
, NDR_BUFFERS
, &r
->all2
));
1498 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1501 return NDR_ERR_SUCCESS
;
1504 _PUBLIC_
void ndr_print_samr_GroupInfo(struct ndr_print
*ndr
, const char *name
, const union samr_GroupInfo
*r
)
1507 level
= ndr_print_get_switch_value(ndr
, r
);
1508 ndr_print_union(ndr
, name
, level
, "samr_GroupInfo");
1511 ndr_print_samr_GroupInfoAll(ndr
, "all", &r
->all
);
1515 ndr_print_lsa_String(ndr
, "name", &r
->name
);
1518 case GROUPINFOATTRIBUTES
:
1519 ndr_print_samr_GroupInfoAttributes(ndr
, "attributes", &r
->attributes
);
1522 case GROUPINFODESCRIPTION
:
1523 ndr_print_lsa_String(ndr
, "description", &r
->description
);
1527 ndr_print_samr_GroupInfoAll(ndr
, "all2", &r
->all2
);
1531 ndr_print_bad_level(ndr
, name
, level
);
1535 static enum ndr_err_code
ndr_push_samr_RidTypeArray(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_RidTypeArray
*r
)
1537 uint32_t cntr_rids_1
;
1538 uint32_t cntr_types_1
;
1539 if (ndr_flags
& NDR_SCALARS
) {
1540 NDR_CHECK(ndr_push_align(ndr
, 4));
1541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
1542 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rids
));
1543 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
1545 if (ndr_flags
& NDR_BUFFERS
) {
1547 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
1548 for (cntr_rids_1
= 0; cntr_rids_1
< r
->count
; cntr_rids_1
++) {
1549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rids
[cntr_rids_1
]));
1553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
1554 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
1555 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->types
[cntr_types_1
]));
1559 return NDR_ERR_SUCCESS
;
1562 static enum ndr_err_code
ndr_pull_samr_RidTypeArray(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_RidTypeArray
*r
)
1565 uint32_t size_rids_1
= 0;
1566 uint32_t cntr_rids_1
;
1567 TALLOC_CTX
*_mem_save_rids_0
;
1568 TALLOC_CTX
*_mem_save_rids_1
;
1569 uint32_t _ptr_types
;
1570 uint32_t size_types_1
= 0;
1571 uint32_t cntr_types_1
;
1572 TALLOC_CTX
*_mem_save_types_0
;
1573 TALLOC_CTX
*_mem_save_types_1
;
1574 if (ndr_flags
& NDR_SCALARS
) {
1575 NDR_CHECK(ndr_pull_align(ndr
, 4));
1576 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
1577 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
1579 NDR_PULL_ALLOC(ndr
, r
->rids
);
1583 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
1585 NDR_PULL_ALLOC(ndr
, r
->types
);
1590 if (ndr_flags
& NDR_BUFFERS
) {
1592 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1593 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
1594 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->rids
));
1595 size_rids_1
= ndr_get_array_size(ndr
, &r
->rids
);
1596 NDR_PULL_ALLOC_N(ndr
, r
->rids
, size_rids_1
);
1597 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1598 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
1599 for (cntr_rids_1
= 0; cntr_rids_1
< size_rids_1
; cntr_rids_1
++) {
1600 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rids
[cntr_rids_1
]));
1602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
1603 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, 0);
1606 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1607 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
1608 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
1609 size_types_1
= ndr_get_array_size(ndr
, &r
->types
);
1610 NDR_PULL_ALLOC_N(ndr
, r
->types
, size_types_1
);
1611 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1612 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
1613 for (cntr_types_1
= 0; cntr_types_1
< size_types_1
; cntr_types_1
++) {
1614 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
1616 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
1617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
1620 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->rids
, r
->count
));
1623 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
1626 return NDR_ERR_SUCCESS
;
1629 _PUBLIC_
void ndr_print_samr_RidTypeArray(struct ndr_print
*ndr
, const char *name
, const struct samr_RidTypeArray
*r
)
1631 uint32_t cntr_rids_1
;
1632 uint32_t cntr_types_1
;
1633 ndr_print_struct(ndr
, name
, "samr_RidTypeArray");
1635 ndr_print_uint32(ndr
, "count", r
->count
);
1636 ndr_print_ptr(ndr
, "rids", r
->rids
);
1639 ndr
->print(ndr
, "%s: ARRAY(%d)", "rids", (int)r
->count
);
1641 for (cntr_rids_1
=0;cntr_rids_1
<r
->count
;cntr_rids_1
++) {
1643 if (asprintf(&idx_1
, "[%d]", cntr_rids_1
) != -1) {
1644 ndr_print_uint32(ndr
, "rids", r
->rids
[cntr_rids_1
]);
1651 ndr_print_ptr(ndr
, "types", r
->types
);
1654 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
1656 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
1658 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
1659 ndr_print_uint32(ndr
, "types", r
->types
[cntr_types_1
]);
1669 static enum ndr_err_code
ndr_push_samr_AliasInfoAll(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_AliasInfoAll
*r
)
1671 if (ndr_flags
& NDR_SCALARS
) {
1672 NDR_CHECK(ndr_push_align(ndr
, 4));
1673 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->name
));
1674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_members
));
1675 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
1677 if (ndr_flags
& NDR_BUFFERS
) {
1678 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->name
));
1679 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
1681 return NDR_ERR_SUCCESS
;
1684 static enum ndr_err_code
ndr_pull_samr_AliasInfoAll(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_AliasInfoAll
*r
)
1686 if (ndr_flags
& NDR_SCALARS
) {
1687 NDR_CHECK(ndr_pull_align(ndr
, 4));
1688 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->name
));
1689 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_members
));
1690 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
1692 if (ndr_flags
& NDR_BUFFERS
) {
1693 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->name
));
1694 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
1696 return NDR_ERR_SUCCESS
;
1699 _PUBLIC_
void ndr_print_samr_AliasInfoAll(struct ndr_print
*ndr
, const char *name
, const struct samr_AliasInfoAll
*r
)
1701 ndr_print_struct(ndr
, name
, "samr_AliasInfoAll");
1703 ndr_print_lsa_String(ndr
, "name", &r
->name
);
1704 ndr_print_uint32(ndr
, "num_members", r
->num_members
);
1705 ndr_print_lsa_String(ndr
, "description", &r
->description
);
1709 static enum ndr_err_code
ndr_push_samr_AliasInfoEnum(struct ndr_push
*ndr
, int ndr_flags
, enum samr_AliasInfoEnum r
)
1711 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
1712 return NDR_ERR_SUCCESS
;
1715 static enum ndr_err_code
ndr_pull_samr_AliasInfoEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum samr_AliasInfoEnum
*r
)
1718 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
1720 return NDR_ERR_SUCCESS
;
1723 _PUBLIC_
void ndr_print_samr_AliasInfoEnum(struct ndr_print
*ndr
, const char *name
, enum samr_AliasInfoEnum r
)
1725 const char *val
= NULL
;
1728 case ALIASINFOALL
: val
= "ALIASINFOALL"; break;
1729 case ALIASINFONAME
: val
= "ALIASINFONAME"; break;
1730 case ALIASINFODESCRIPTION
: val
= "ALIASINFODESCRIPTION"; break;
1732 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1735 static enum ndr_err_code
ndr_push_samr_AliasInfo(struct ndr_push
*ndr
, int ndr_flags
, const union samr_AliasInfo
*r
)
1737 if (ndr_flags
& NDR_SCALARS
) {
1738 int level
= ndr_push_get_switch_value(ndr
, r
);
1739 NDR_CHECK(ndr_push_samr_AliasInfoEnum(ndr
, NDR_SCALARS
, level
));
1741 case ALIASINFOALL
: {
1742 NDR_CHECK(ndr_push_samr_AliasInfoAll(ndr
, NDR_SCALARS
, &r
->all
));
1745 case ALIASINFONAME
: {
1746 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->name
));
1749 case ALIASINFODESCRIPTION
: {
1750 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
1754 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1757 if (ndr_flags
& NDR_BUFFERS
) {
1758 int level
= ndr_push_get_switch_value(ndr
, r
);
1761 NDR_CHECK(ndr_push_samr_AliasInfoAll(ndr
, NDR_BUFFERS
, &r
->all
));
1765 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->name
));
1768 case ALIASINFODESCRIPTION
:
1769 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
1773 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1776 return NDR_ERR_SUCCESS
;
1779 static enum ndr_err_code
ndr_pull_samr_AliasInfo(struct ndr_pull
*ndr
, int ndr_flags
, union samr_AliasInfo
*r
)
1783 level
= ndr_pull_get_switch_value(ndr
, r
);
1784 if (ndr_flags
& NDR_SCALARS
) {
1785 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
1786 if (_level
!= level
) {
1787 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
1790 case ALIASINFOALL
: {
1791 NDR_CHECK(ndr_pull_samr_AliasInfoAll(ndr
, NDR_SCALARS
, &r
->all
));
1794 case ALIASINFONAME
: {
1795 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->name
));
1798 case ALIASINFODESCRIPTION
: {
1799 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
1803 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1806 if (ndr_flags
& NDR_BUFFERS
) {
1809 NDR_CHECK(ndr_pull_samr_AliasInfoAll(ndr
, NDR_BUFFERS
, &r
->all
));
1813 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->name
));
1816 case ALIASINFODESCRIPTION
:
1817 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
1821 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1824 return NDR_ERR_SUCCESS
;
1827 _PUBLIC_
void ndr_print_samr_AliasInfo(struct ndr_print
*ndr
, const char *name
, const union samr_AliasInfo
*r
)
1830 level
= ndr_print_get_switch_value(ndr
, r
);
1831 ndr_print_union(ndr
, name
, level
, "samr_AliasInfo");
1834 ndr_print_samr_AliasInfoAll(ndr
, "all", &r
->all
);
1838 ndr_print_lsa_String(ndr
, "name", &r
->name
);
1841 case ALIASINFODESCRIPTION
:
1842 ndr_print_lsa_String(ndr
, "description", &r
->description
);
1846 ndr_print_bad_level(ndr
, name
, level
);
1850 static enum ndr_err_code
ndr_push_samr_UserInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo1
*r
)
1852 if (ndr_flags
& NDR_SCALARS
) {
1853 NDR_CHECK(ndr_push_align(ndr
, 4));
1854 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1855 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
1857 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
1858 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
1860 if (ndr_flags
& NDR_BUFFERS
) {
1861 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1862 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1863 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
1864 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
1866 return NDR_ERR_SUCCESS
;
1869 static enum ndr_err_code
ndr_pull_samr_UserInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo1
*r
)
1871 if (ndr_flags
& NDR_SCALARS
) {
1872 NDR_CHECK(ndr_pull_align(ndr
, 4));
1873 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1874 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1875 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
1876 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
1877 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
1879 if (ndr_flags
& NDR_BUFFERS
) {
1880 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1881 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1882 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
1883 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
1885 return NDR_ERR_SUCCESS
;
1888 _PUBLIC_
void ndr_print_samr_UserInfo1(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo1
*r
)
1890 ndr_print_struct(ndr
, name
, "samr_UserInfo1");
1892 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
1893 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
1894 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
1895 ndr_print_lsa_String(ndr
, "description", &r
->description
);
1896 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
1900 static enum ndr_err_code
ndr_push_samr_UserInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo2
*r
)
1902 if (ndr_flags
& NDR_SCALARS
) {
1903 NDR_CHECK(ndr_push_align(ndr
, 4));
1904 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
1905 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown
));
1906 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->country_code
));
1907 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->code_page
));
1909 if (ndr_flags
& NDR_BUFFERS
) {
1910 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
1911 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown
));
1913 return NDR_ERR_SUCCESS
;
1916 static enum ndr_err_code
ndr_pull_samr_UserInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo2
*r
)
1918 if (ndr_flags
& NDR_SCALARS
) {
1919 NDR_CHECK(ndr_pull_align(ndr
, 4));
1920 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
1921 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown
));
1922 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->country_code
));
1923 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->code_page
));
1925 if (ndr_flags
& NDR_BUFFERS
) {
1926 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
1927 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown
));
1929 return NDR_ERR_SUCCESS
;
1932 _PUBLIC_
void ndr_print_samr_UserInfo2(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo2
*r
)
1934 ndr_print_struct(ndr
, name
, "samr_UserInfo2");
1936 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
1937 ndr_print_lsa_String(ndr
, "unknown", &r
->unknown
);
1938 ndr_print_uint16(ndr
, "country_code", r
->country_code
);
1939 ndr_print_uint16(ndr
, "code_page", r
->code_page
);
1943 _PUBLIC_
enum ndr_err_code
ndr_push_samr_LogonHours(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_LogonHours
*r
)
1946 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1947 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1948 if (ndr_flags
& NDR_SCALARS
) {
1949 NDR_CHECK(ndr_push_align(ndr
, 4));
1950 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->units_per_week
));
1951 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->bits
));
1953 if (ndr_flags
& NDR_BUFFERS
) {
1955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 1260));
1956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
1957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->units_per_week
/ 8));
1958 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->bits
, r
->units_per_week
/ 8));
1961 ndr
->flags
= _flags_save_STRUCT
;
1963 return NDR_ERR_SUCCESS
;
1966 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_LogonHours(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_LogonHours
*r
)
1969 uint32_t size_bits_1
= 0;
1970 uint32_t length_bits_1
= 0;
1971 TALLOC_CTX
*_mem_save_bits_0
;
1973 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1974 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1975 if (ndr_flags
& NDR_SCALARS
) {
1976 NDR_CHECK(ndr_pull_align(ndr
, 4));
1977 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->units_per_week
));
1978 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_bits
));
1980 NDR_PULL_ALLOC(ndr
, r
->bits
);
1985 if (ndr_flags
& NDR_BUFFERS
) {
1987 _mem_save_bits_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1988 NDR_PULL_SET_MEM_CTX(ndr
, r
->bits
, 0);
1989 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->bits
));
1990 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->bits
));
1991 size_bits_1
= ndr_get_array_size(ndr
, &r
->bits
);
1992 length_bits_1
= ndr_get_array_length(ndr
, &r
->bits
);
1993 if (length_bits_1
> size_bits_1
) {
1994 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_bits_1
, length_bits_1
);
1996 NDR_PULL_ALLOC_N(ndr
, r
->bits
, size_bits_1
);
1997 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->bits
, length_bits_1
));
1998 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bits_0
, 0);
2001 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->bits
, 1260));
2004 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->bits
, r
->units_per_week
/ 8));
2007 ndr
->flags
= _flags_save_STRUCT
;
2009 return NDR_ERR_SUCCESS
;
2012 _PUBLIC_
void ndr_print_samr_LogonHours(struct ndr_print
*ndr
, const char *name
, const struct samr_LogonHours
*r
)
2014 ndr_print_struct(ndr
, name
, "samr_LogonHours");
2016 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2017 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2019 ndr_print_uint16(ndr
, "units_per_week", r
->units_per_week
);
2020 ndr_print_ptr(ndr
, "bits", r
->bits
);
2023 ndr_print_array_uint8(ndr
, "bits", r
->bits
, r
->units_per_week
/ 8);
2027 ndr
->flags
= _flags_save_STRUCT
;
2031 static enum ndr_err_code
ndr_push_samr_UserInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo3
*r
)
2033 if (ndr_flags
& NDR_SCALARS
) {
2034 NDR_CHECK(ndr_push_align(ndr
, 4));
2035 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2036 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2039 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2040 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2041 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2042 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2043 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2044 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
2045 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
2046 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
2047 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->allow_password_change
));
2048 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_password_change
));
2049 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2050 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
2051 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
2052 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2054 if (ndr_flags
& NDR_BUFFERS
) {
2055 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2056 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2057 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2058 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2059 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2060 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2061 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2062 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2064 return NDR_ERR_SUCCESS
;
2067 static enum ndr_err_code
ndr_pull_samr_UserInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo3
*r
)
2069 if (ndr_flags
& NDR_SCALARS
) {
2070 NDR_CHECK(ndr_pull_align(ndr
, 4));
2071 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2072 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2073 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2074 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2075 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2076 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2077 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2078 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2079 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2080 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
2081 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
2082 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
2083 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->allow_password_change
));
2084 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_password_change
));
2085 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2086 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
2087 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
2088 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2090 if (ndr_flags
& NDR_BUFFERS
) {
2091 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2092 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2093 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2094 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2095 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2096 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2097 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2098 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2100 return NDR_ERR_SUCCESS
;
2103 _PUBLIC_
void ndr_print_samr_UserInfo3(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo3
*r
)
2105 ndr_print_struct(ndr
, name
, "samr_UserInfo3");
2107 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2108 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2109 ndr_print_uint32(ndr
, "rid", r
->rid
);
2110 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2111 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2112 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2113 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2114 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2115 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2116 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
2117 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
2118 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
2119 ndr_print_NTTIME(ndr
, "allow_password_change", r
->allow_password_change
);
2120 ndr_print_NTTIME(ndr
, "force_password_change", r
->force_password_change
);
2121 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2122 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
2123 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
2124 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2128 static enum ndr_err_code
ndr_push_samr_UserInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo4
*r
)
2130 if (ndr_flags
& NDR_SCALARS
) {
2131 NDR_CHECK(ndr_push_align(ndr
, 4));
2132 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2134 if (ndr_flags
& NDR_BUFFERS
) {
2135 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2137 return NDR_ERR_SUCCESS
;
2140 static enum ndr_err_code
ndr_pull_samr_UserInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo4
*r
)
2142 if (ndr_flags
& NDR_SCALARS
) {
2143 NDR_CHECK(ndr_pull_align(ndr
, 4));
2144 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2146 if (ndr_flags
& NDR_BUFFERS
) {
2147 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2149 return NDR_ERR_SUCCESS
;
2152 _PUBLIC_
void ndr_print_samr_UserInfo4(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo4
*r
)
2154 ndr_print_struct(ndr
, name
, "samr_UserInfo4");
2156 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2160 static enum ndr_err_code
ndr_push_samr_UserInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo5
*r
)
2162 if (ndr_flags
& NDR_SCALARS
) {
2163 NDR_CHECK(ndr_push_align(ndr
, 4));
2164 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2165 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2168 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2169 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2170 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2171 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2172 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2173 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2174 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
2175 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
2176 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2177 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
2178 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
2179 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
2180 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
2181 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2183 if (ndr_flags
& NDR_BUFFERS
) {
2184 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2185 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2186 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2187 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2188 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2189 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2190 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2191 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2192 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2194 return NDR_ERR_SUCCESS
;
2197 static enum ndr_err_code
ndr_pull_samr_UserInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo5
*r
)
2199 if (ndr_flags
& NDR_SCALARS
) {
2200 NDR_CHECK(ndr_pull_align(ndr
, 4));
2201 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2202 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2203 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2204 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2205 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2206 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2207 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2208 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2209 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2210 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2211 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
2212 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
2213 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2214 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
2215 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
2216 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
2217 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
2218 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2220 if (ndr_flags
& NDR_BUFFERS
) {
2221 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2222 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2223 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2224 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2225 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2226 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2227 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2228 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2229 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2231 return NDR_ERR_SUCCESS
;
2234 _PUBLIC_
void ndr_print_samr_UserInfo5(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo5
*r
)
2236 ndr_print_struct(ndr
, name
, "samr_UserInfo5");
2238 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2239 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2240 ndr_print_uint32(ndr
, "rid", r
->rid
);
2241 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2242 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2243 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2244 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2245 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2246 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2247 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2248 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
2249 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
2250 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2251 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
2252 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
2253 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
2254 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
2255 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2259 static enum ndr_err_code
ndr_push_samr_UserInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo6
*r
)
2261 if (ndr_flags
& NDR_SCALARS
) {
2262 NDR_CHECK(ndr_push_align(ndr
, 4));
2263 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2264 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2266 if (ndr_flags
& NDR_BUFFERS
) {
2267 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2268 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2270 return NDR_ERR_SUCCESS
;
2273 static enum ndr_err_code
ndr_pull_samr_UserInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo6
*r
)
2275 if (ndr_flags
& NDR_SCALARS
) {
2276 NDR_CHECK(ndr_pull_align(ndr
, 4));
2277 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2278 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2280 if (ndr_flags
& NDR_BUFFERS
) {
2281 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2282 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2284 return NDR_ERR_SUCCESS
;
2287 _PUBLIC_
void ndr_print_samr_UserInfo6(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo6
*r
)
2289 ndr_print_struct(ndr
, name
, "samr_UserInfo6");
2291 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2292 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2296 static enum ndr_err_code
ndr_push_samr_UserInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo7
*r
)
2298 if (ndr_flags
& NDR_SCALARS
) {
2299 NDR_CHECK(ndr_push_align(ndr
, 4));
2300 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2302 if (ndr_flags
& NDR_BUFFERS
) {
2303 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2305 return NDR_ERR_SUCCESS
;
2308 static enum ndr_err_code
ndr_pull_samr_UserInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo7
*r
)
2310 if (ndr_flags
& NDR_SCALARS
) {
2311 NDR_CHECK(ndr_pull_align(ndr
, 4));
2312 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2314 if (ndr_flags
& NDR_BUFFERS
) {
2315 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2317 return NDR_ERR_SUCCESS
;
2320 _PUBLIC_
void ndr_print_samr_UserInfo7(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo7
*r
)
2322 ndr_print_struct(ndr
, name
, "samr_UserInfo7");
2324 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2328 static enum ndr_err_code
ndr_push_samr_UserInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo8
*r
)
2330 if (ndr_flags
& NDR_SCALARS
) {
2331 NDR_CHECK(ndr_push_align(ndr
, 4));
2332 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2334 if (ndr_flags
& NDR_BUFFERS
) {
2335 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2337 return NDR_ERR_SUCCESS
;
2340 static enum ndr_err_code
ndr_pull_samr_UserInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo8
*r
)
2342 if (ndr_flags
& NDR_SCALARS
) {
2343 NDR_CHECK(ndr_pull_align(ndr
, 4));
2344 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2346 if (ndr_flags
& NDR_BUFFERS
) {
2347 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2349 return NDR_ERR_SUCCESS
;
2352 _PUBLIC_
void ndr_print_samr_UserInfo8(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo8
*r
)
2354 ndr_print_struct(ndr
, name
, "samr_UserInfo8");
2356 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2360 static enum ndr_err_code
ndr_push_samr_UserInfo9(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo9
*r
)
2362 if (ndr_flags
& NDR_SCALARS
) {
2363 NDR_CHECK(ndr_push_align(ndr
, 4));
2364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2366 if (ndr_flags
& NDR_BUFFERS
) {
2368 return NDR_ERR_SUCCESS
;
2371 static enum ndr_err_code
ndr_pull_samr_UserInfo9(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo9
*r
)
2373 if (ndr_flags
& NDR_SCALARS
) {
2374 NDR_CHECK(ndr_pull_align(ndr
, 4));
2375 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2377 if (ndr_flags
& NDR_BUFFERS
) {
2379 return NDR_ERR_SUCCESS
;
2382 _PUBLIC_
void ndr_print_samr_UserInfo9(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo9
*r
)
2384 ndr_print_struct(ndr
, name
, "samr_UserInfo9");
2386 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2390 static enum ndr_err_code
ndr_push_samr_UserInfo10(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo10
*r
)
2392 if (ndr_flags
& NDR_SCALARS
) {
2393 NDR_CHECK(ndr_push_align(ndr
, 4));
2394 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2395 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2397 if (ndr_flags
& NDR_BUFFERS
) {
2398 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2399 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2401 return NDR_ERR_SUCCESS
;
2404 static enum ndr_err_code
ndr_pull_samr_UserInfo10(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo10
*r
)
2406 if (ndr_flags
& NDR_SCALARS
) {
2407 NDR_CHECK(ndr_pull_align(ndr
, 4));
2408 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2409 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2411 if (ndr_flags
& NDR_BUFFERS
) {
2412 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2413 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2415 return NDR_ERR_SUCCESS
;
2418 _PUBLIC_
void ndr_print_samr_UserInfo10(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo10
*r
)
2420 ndr_print_struct(ndr
, name
, "samr_UserInfo10");
2422 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2423 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2427 static enum ndr_err_code
ndr_push_samr_UserInfo11(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo11
*r
)
2429 if (ndr_flags
& NDR_SCALARS
) {
2430 NDR_CHECK(ndr_push_align(ndr
, 4));
2431 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2433 if (ndr_flags
& NDR_BUFFERS
) {
2434 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2436 return NDR_ERR_SUCCESS
;
2439 static enum ndr_err_code
ndr_pull_samr_UserInfo11(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo11
*r
)
2441 if (ndr_flags
& NDR_SCALARS
) {
2442 NDR_CHECK(ndr_pull_align(ndr
, 4));
2443 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2445 if (ndr_flags
& NDR_BUFFERS
) {
2446 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2448 return NDR_ERR_SUCCESS
;
2451 _PUBLIC_
void ndr_print_samr_UserInfo11(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo11
*r
)
2453 ndr_print_struct(ndr
, name
, "samr_UserInfo11");
2455 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2459 static enum ndr_err_code
ndr_push_samr_UserInfo12(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo12
*r
)
2461 if (ndr_flags
& NDR_SCALARS
) {
2462 NDR_CHECK(ndr_push_align(ndr
, 4));
2463 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2465 if (ndr_flags
& NDR_BUFFERS
) {
2466 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2468 return NDR_ERR_SUCCESS
;
2471 static enum ndr_err_code
ndr_pull_samr_UserInfo12(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo12
*r
)
2473 if (ndr_flags
& NDR_SCALARS
) {
2474 NDR_CHECK(ndr_pull_align(ndr
, 4));
2475 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2477 if (ndr_flags
& NDR_BUFFERS
) {
2478 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2480 return NDR_ERR_SUCCESS
;
2483 _PUBLIC_
void ndr_print_samr_UserInfo12(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo12
*r
)
2485 ndr_print_struct(ndr
, name
, "samr_UserInfo12");
2487 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2491 static enum ndr_err_code
ndr_push_samr_UserInfo13(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo13
*r
)
2493 if (ndr_flags
& NDR_SCALARS
) {
2494 NDR_CHECK(ndr_push_align(ndr
, 4));
2495 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2497 if (ndr_flags
& NDR_BUFFERS
) {
2498 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2500 return NDR_ERR_SUCCESS
;
2503 static enum ndr_err_code
ndr_pull_samr_UserInfo13(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo13
*r
)
2505 if (ndr_flags
& NDR_SCALARS
) {
2506 NDR_CHECK(ndr_pull_align(ndr
, 4));
2507 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2509 if (ndr_flags
& NDR_BUFFERS
) {
2510 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2512 return NDR_ERR_SUCCESS
;
2515 _PUBLIC_
void ndr_print_samr_UserInfo13(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo13
*r
)
2517 ndr_print_struct(ndr
, name
, "samr_UserInfo13");
2519 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2523 static enum ndr_err_code
ndr_push_samr_UserInfo14(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo14
*r
)
2525 if (ndr_flags
& NDR_SCALARS
) {
2526 NDR_CHECK(ndr_push_align(ndr
, 4));
2527 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2529 if (ndr_flags
& NDR_BUFFERS
) {
2530 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2532 return NDR_ERR_SUCCESS
;
2535 static enum ndr_err_code
ndr_pull_samr_UserInfo14(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo14
*r
)
2537 if (ndr_flags
& NDR_SCALARS
) {
2538 NDR_CHECK(ndr_pull_align(ndr
, 4));
2539 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2541 if (ndr_flags
& NDR_BUFFERS
) {
2542 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2544 return NDR_ERR_SUCCESS
;
2547 _PUBLIC_
void ndr_print_samr_UserInfo14(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo14
*r
)
2549 ndr_print_struct(ndr
, name
, "samr_UserInfo14");
2551 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2555 static enum ndr_err_code
ndr_push_samr_UserInfo16(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo16
*r
)
2557 if (ndr_flags
& NDR_SCALARS
) {
2558 NDR_CHECK(ndr_push_align(ndr
, 4));
2559 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2561 if (ndr_flags
& NDR_BUFFERS
) {
2563 return NDR_ERR_SUCCESS
;
2566 static enum ndr_err_code
ndr_pull_samr_UserInfo16(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo16
*r
)
2568 if (ndr_flags
& NDR_SCALARS
) {
2569 NDR_CHECK(ndr_pull_align(ndr
, 4));
2570 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2572 if (ndr_flags
& NDR_BUFFERS
) {
2574 return NDR_ERR_SUCCESS
;
2577 _PUBLIC_
void ndr_print_samr_UserInfo16(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo16
*r
)
2579 ndr_print_struct(ndr
, name
, "samr_UserInfo16");
2581 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2585 static enum ndr_err_code
ndr_push_samr_UserInfo17(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo17
*r
)
2587 if (ndr_flags
& NDR_SCALARS
) {
2588 NDR_CHECK(ndr_push_align(ndr
, 4));
2589 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
2591 if (ndr_flags
& NDR_BUFFERS
) {
2593 return NDR_ERR_SUCCESS
;
2596 static enum ndr_err_code
ndr_pull_samr_UserInfo17(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo17
*r
)
2598 if (ndr_flags
& NDR_SCALARS
) {
2599 NDR_CHECK(ndr_pull_align(ndr
, 4));
2600 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
2602 if (ndr_flags
& NDR_BUFFERS
) {
2604 return NDR_ERR_SUCCESS
;
2607 _PUBLIC_
void ndr_print_samr_UserInfo17(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo17
*r
)
2609 ndr_print_struct(ndr
, name
, "samr_UserInfo17");
2611 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
2615 _PUBLIC_
enum ndr_err_code
ndr_push_samr_Password(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_Password
*r
)
2618 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2619 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2620 if (ndr_flags
& NDR_SCALARS
) {
2621 NDR_CHECK(ndr_push_align(ndr
, 1));
2622 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->hash
, 16));
2624 if (ndr_flags
& NDR_BUFFERS
) {
2626 ndr
->flags
= _flags_save_STRUCT
;
2628 return NDR_ERR_SUCCESS
;
2631 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_Password(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_Password
*r
)
2633 uint32_t size_hash_0
= 0;
2635 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2636 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2637 if (ndr_flags
& NDR_SCALARS
) {
2638 NDR_CHECK(ndr_pull_align(ndr
, 1));
2640 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->hash
, size_hash_0
));
2642 if (ndr_flags
& NDR_BUFFERS
) {
2644 ndr
->flags
= _flags_save_STRUCT
;
2646 return NDR_ERR_SUCCESS
;
2649 _PUBLIC_
void ndr_print_samr_Password(struct ndr_print
*ndr
, const char *name
, const struct samr_Password
*r
)
2651 ndr_print_struct(ndr
, name
, "samr_Password");
2653 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2654 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2656 ndr_print_array_uint8(ndr
, "hash", r
->hash
, 16);
2658 ndr
->flags
= _flags_save_STRUCT
;
2662 static enum ndr_err_code
ndr_push_samr_UserInfo18(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo18
*r
)
2664 if (ndr_flags
& NDR_SCALARS
) {
2665 NDR_CHECK(ndr_push_align(ndr
, 1));
2666 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->nt_pwd
));
2667 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lm_pwd
));
2668 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->nt_pwd_active
));
2669 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->lm_pwd_active
));
2670 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
2672 if (ndr_flags
& NDR_BUFFERS
) {
2674 return NDR_ERR_SUCCESS
;
2677 static enum ndr_err_code
ndr_pull_samr_UserInfo18(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo18
*r
)
2679 if (ndr_flags
& NDR_SCALARS
) {
2680 NDR_CHECK(ndr_pull_align(ndr
, 1));
2681 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->nt_pwd
));
2682 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lm_pwd
));
2683 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->nt_pwd_active
));
2684 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->lm_pwd_active
));
2685 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
2687 if (ndr_flags
& NDR_BUFFERS
) {
2689 return NDR_ERR_SUCCESS
;
2692 _PUBLIC_
void ndr_print_samr_UserInfo18(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo18
*r
)
2694 ndr_print_struct(ndr
, name
, "samr_UserInfo18");
2696 ndr_print_samr_Password(ndr
, "nt_pwd", &r
->nt_pwd
);
2697 ndr_print_samr_Password(ndr
, "lm_pwd", &r
->lm_pwd
);
2698 ndr_print_uint8(ndr
, "nt_pwd_active", r
->nt_pwd_active
);
2699 ndr_print_uint8(ndr
, "lm_pwd_active", r
->lm_pwd_active
);
2700 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
2704 static enum ndr_err_code
ndr_push_samr_UserInfo20(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo20
*r
)
2706 if (ndr_flags
& NDR_SCALARS
) {
2707 NDR_CHECK(ndr_push_align(ndr
, 4));
2708 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2710 if (ndr_flags
& NDR_BUFFERS
) {
2711 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2713 return NDR_ERR_SUCCESS
;
2716 static enum ndr_err_code
ndr_pull_samr_UserInfo20(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo20
*r
)
2718 if (ndr_flags
& NDR_SCALARS
) {
2719 NDR_CHECK(ndr_pull_align(ndr
, 4));
2720 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2722 if (ndr_flags
& NDR_BUFFERS
) {
2723 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2725 return NDR_ERR_SUCCESS
;
2728 _PUBLIC_
void ndr_print_samr_UserInfo20(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo20
*r
)
2730 ndr_print_struct(ndr
, name
, "samr_UserInfo20");
2732 ndr_print_lsa_BinaryString(ndr
, "parameters", &r
->parameters
);
2736 static enum ndr_err_code
ndr_push_samr_FieldsPresent(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2739 return NDR_ERR_SUCCESS
;
2742 static enum ndr_err_code
ndr_pull_samr_FieldsPresent(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2745 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2747 return NDR_ERR_SUCCESS
;
2750 _PUBLIC_
void ndr_print_samr_FieldsPresent(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2752 ndr_print_uint32(ndr
, name
, r
);
2754 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_ACCOUNT_NAME", SAMR_FIELD_ACCOUNT_NAME
, r
);
2755 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_FULL_NAME", SAMR_FIELD_FULL_NAME
, r
);
2756 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_RID", SAMR_FIELD_RID
, r
);
2757 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_PRIMARY_GID", SAMR_FIELD_PRIMARY_GID
, r
);
2758 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_DESCRIPTION", SAMR_FIELD_DESCRIPTION
, r
);
2759 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_COMMENT", SAMR_FIELD_COMMENT
, r
);
2760 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_HOME_DIRECTORY", SAMR_FIELD_HOME_DIRECTORY
, r
);
2761 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_HOME_DRIVE", SAMR_FIELD_HOME_DRIVE
, r
);
2762 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_LOGON_SCRIPT", SAMR_FIELD_LOGON_SCRIPT
, r
);
2763 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_PROFILE_PATH", SAMR_FIELD_PROFILE_PATH
, r
);
2764 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_WORKSTATIONS", SAMR_FIELD_WORKSTATIONS
, r
);
2765 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_LAST_LOGON", SAMR_FIELD_LAST_LOGON
, r
);
2766 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_LAST_LOGOFF", SAMR_FIELD_LAST_LOGOFF
, r
);
2767 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_LOGON_HOURS", SAMR_FIELD_LOGON_HOURS
, r
);
2768 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_BAD_PWD_COUNT", SAMR_FIELD_BAD_PWD_COUNT
, r
);
2769 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_NUM_LOGONS", SAMR_FIELD_NUM_LOGONS
, r
);
2770 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_ALLOW_PWD_CHANGE", SAMR_FIELD_ALLOW_PWD_CHANGE
, r
);
2771 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_FORCE_PWD_CHANGE", SAMR_FIELD_FORCE_PWD_CHANGE
, r
);
2772 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_LAST_PWD_CHANGE", SAMR_FIELD_LAST_PWD_CHANGE
, r
);
2773 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_ACCT_EXPIRY", SAMR_FIELD_ACCT_EXPIRY
, r
);
2774 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_ACCT_FLAGS", SAMR_FIELD_ACCT_FLAGS
, r
);
2775 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_PARAMETERS", SAMR_FIELD_PARAMETERS
, r
);
2776 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_COUNTRY_CODE", SAMR_FIELD_COUNTRY_CODE
, r
);
2777 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_CODE_PAGE", SAMR_FIELD_CODE_PAGE
, r
);
2778 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_NT_PASSWORD_PRESENT", SAMR_FIELD_NT_PASSWORD_PRESENT
, r
);
2779 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_LM_PASSWORD_PRESENT", SAMR_FIELD_LM_PASSWORD_PRESENT
, r
);
2780 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_PRIVATE_DATA", SAMR_FIELD_PRIVATE_DATA
, r
);
2781 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_EXPIRED_FLAG", SAMR_FIELD_EXPIRED_FLAG
, r
);
2782 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_SEC_DESC", SAMR_FIELD_SEC_DESC
, r
);
2783 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_FIELD_OWF_PWD", SAMR_FIELD_OWF_PWD
, r
);
2787 static enum ndr_err_code
ndr_push_samr_UserInfo21(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo21
*r
)
2789 if (ndr_flags
& NDR_SCALARS
) {
2790 NDR_CHECK(ndr_push_align(ndr
, 4));
2791 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
2792 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
2793 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
2794 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
2795 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->allow_password_change
));
2796 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_password_change
));
2797 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2798 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2799 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2800 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2801 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2802 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2803 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2804 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2805 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2806 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2807 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->lm_owf_password
));
2808 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->nt_owf_password
));
2809 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->buf_count
));
2811 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->buffer
));
2812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2813 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2814 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2815 NDR_CHECK(ndr_push_samr_FieldsPresent(ndr
, NDR_SCALARS
, r
->fields_present
));
2816 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2817 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
2818 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
2819 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->country_code
));
2820 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->code_page
));
2821 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->lm_password_set
));
2822 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->nt_password_set
));
2823 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
2824 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->unknown4
));
2826 if (ndr_flags
& NDR_BUFFERS
) {
2827 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2828 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2829 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2830 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2831 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2832 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2833 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2834 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2835 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2836 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2837 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->lm_owf_password
));
2838 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->nt_owf_password
));
2839 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->buf_count
));
2842 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, r
->buf_count
));
2844 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2846 return NDR_ERR_SUCCESS
;
2849 static enum ndr_err_code
ndr_pull_samr_UserInfo21(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo21
*r
)
2851 uint32_t _ptr_buffer
;
2852 uint32_t size_buffer_1
= 0;
2853 TALLOC_CTX
*_mem_save_buffer_0
;
2854 if (ndr_flags
& NDR_SCALARS
) {
2855 NDR_CHECK(ndr_pull_align(ndr
, 4));
2856 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
2857 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
2858 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
2859 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
2860 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->allow_password_change
));
2861 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_password_change
));
2862 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2863 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2864 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2865 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2866 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2867 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2868 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2869 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2870 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2871 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2872 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->lm_owf_password
));
2873 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->nt_owf_password
));
2874 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2875 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->buf_count
));
2876 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
2878 NDR_PULL_ALLOC(ndr
, r
->buffer
);
2882 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2883 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2884 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2885 NDR_CHECK(ndr_pull_samr_FieldsPresent(ndr
, NDR_SCALARS
, &r
->fields_present
));
2886 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2887 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
2888 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
2889 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->country_code
));
2890 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->code_page
));
2891 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->lm_password_set
));
2892 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->nt_password_set
));
2893 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
2894 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->unknown4
));
2896 if (ndr_flags
& NDR_BUFFERS
) {
2897 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2898 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2899 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2900 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2901 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2902 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2903 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2904 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2905 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2906 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2907 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->lm_owf_password
));
2908 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->nt_owf_password
));
2909 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2911 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2912 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffer
, 0);
2913 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->buffer
));
2914 size_buffer_1
= ndr_get_array_size(ndr
, &r
->buffer
);
2915 NDR_PULL_ALLOC_N(ndr
, r
->buffer
, size_buffer_1
);
2916 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, size_buffer_1
));
2917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
2919 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2921 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->buffer
, r
->buf_count
));
2924 return NDR_ERR_SUCCESS
;
2927 _PUBLIC_
void ndr_print_samr_UserInfo21(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo21
*r
)
2929 ndr_print_struct(ndr
, name
, "samr_UserInfo21");
2931 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
2932 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
2933 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
2934 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
2935 ndr_print_NTTIME(ndr
, "allow_password_change", r
->allow_password_change
);
2936 ndr_print_NTTIME(ndr
, "force_password_change", r
->force_password_change
);
2937 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2938 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2939 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2940 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2941 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2942 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2943 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2944 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2945 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2946 ndr_print_lsa_BinaryString(ndr
, "parameters", &r
->parameters
);
2947 ndr_print_lsa_BinaryString(ndr
, "lm_owf_password", &r
->lm_owf_password
);
2948 ndr_print_lsa_BinaryString(ndr
, "nt_owf_password", &r
->nt_owf_password
);
2949 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2950 ndr_print_uint32(ndr
, "buf_count", r
->buf_count
);
2951 ndr_print_ptr(ndr
, "buffer", r
->buffer
);
2954 ndr_print_array_uint8(ndr
, "buffer", r
->buffer
, r
->buf_count
);
2957 ndr_print_uint32(ndr
, "rid", r
->rid
);
2958 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2959 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2960 ndr_print_samr_FieldsPresent(ndr
, "fields_present", r
->fields_present
);
2961 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2962 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
2963 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
2964 ndr_print_uint16(ndr
, "country_code", r
->country_code
);
2965 ndr_print_uint16(ndr
, "code_page", r
->code_page
);
2966 ndr_print_uint8(ndr
, "lm_password_set", r
->lm_password_set
);
2967 ndr_print_uint8(ndr
, "nt_password_set", r
->nt_password_set
);
2968 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
2969 ndr_print_uint8(ndr
, "unknown4", r
->unknown4
);
2973 _PUBLIC_
enum ndr_err_code
ndr_push_samr_CryptPassword(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_CryptPassword
*r
)
2976 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2977 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2978 if (ndr_flags
& NDR_SCALARS
) {
2979 NDR_CHECK(ndr_push_align(ndr
, 1));
2980 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 516));
2982 if (ndr_flags
& NDR_BUFFERS
) {
2984 ndr
->flags
= _flags_save_STRUCT
;
2986 return NDR_ERR_SUCCESS
;
2989 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_CryptPassword(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_CryptPassword
*r
)
2991 uint32_t size_data_0
= 0;
2993 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2994 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2995 if (ndr_flags
& NDR_SCALARS
) {
2996 NDR_CHECK(ndr_pull_align(ndr
, 1));
2998 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, size_data_0
));
3000 if (ndr_flags
& NDR_BUFFERS
) {
3002 ndr
->flags
= _flags_save_STRUCT
;
3004 return NDR_ERR_SUCCESS
;
3007 _PUBLIC_
void ndr_print_samr_CryptPassword(struct ndr_print
*ndr
, const char *name
, const struct samr_CryptPassword
*r
)
3009 ndr_print_struct(ndr
, name
, "samr_CryptPassword");
3011 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3012 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
3014 ndr_print_array_uint8(ndr
, "data", r
->data
, 516);
3016 ndr
->flags
= _flags_save_STRUCT
;
3020 static enum ndr_err_code
ndr_push_samr_UserInfo23(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo23
*r
)
3022 if (ndr_flags
& NDR_SCALARS
) {
3023 NDR_CHECK(ndr_push_align(ndr
, 4));
3024 NDR_CHECK(ndr_push_samr_UserInfo21(ndr
, NDR_SCALARS
, &r
->info
));
3025 NDR_CHECK(ndr_push_samr_CryptPassword(ndr
, NDR_SCALARS
, &r
->password
));
3027 if (ndr_flags
& NDR_BUFFERS
) {
3028 NDR_CHECK(ndr_push_samr_UserInfo21(ndr
, NDR_BUFFERS
, &r
->info
));
3030 return NDR_ERR_SUCCESS
;
3033 static enum ndr_err_code
ndr_pull_samr_UserInfo23(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo23
*r
)
3035 if (ndr_flags
& NDR_SCALARS
) {
3036 NDR_CHECK(ndr_pull_align(ndr
, 4));
3037 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr
, NDR_SCALARS
, &r
->info
));
3038 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr
, NDR_SCALARS
, &r
->password
));
3040 if (ndr_flags
& NDR_BUFFERS
) {
3041 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr
, NDR_BUFFERS
, &r
->info
));
3043 return NDR_ERR_SUCCESS
;
3046 _PUBLIC_
void ndr_print_samr_UserInfo23(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo23
*r
)
3048 ndr_print_struct(ndr
, name
, "samr_UserInfo23");
3050 ndr_print_samr_UserInfo21(ndr
, "info", &r
->info
);
3051 ndr_print_samr_CryptPassword(ndr
, "password", &r
->password
);
3055 static enum ndr_err_code
ndr_push_samr_UserInfo24(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo24
*r
)
3057 if (ndr_flags
& NDR_SCALARS
) {
3058 NDR_CHECK(ndr_push_align(ndr
, 1));
3059 NDR_CHECK(ndr_push_samr_CryptPassword(ndr
, NDR_SCALARS
, &r
->password
));
3060 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
3062 if (ndr_flags
& NDR_BUFFERS
) {
3064 return NDR_ERR_SUCCESS
;
3067 static enum ndr_err_code
ndr_pull_samr_UserInfo24(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo24
*r
)
3069 if (ndr_flags
& NDR_SCALARS
) {
3070 NDR_CHECK(ndr_pull_align(ndr
, 1));
3071 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr
, NDR_SCALARS
, &r
->password
));
3072 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
3074 if (ndr_flags
& NDR_BUFFERS
) {
3076 return NDR_ERR_SUCCESS
;
3079 _PUBLIC_
void ndr_print_samr_UserInfo24(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo24
*r
)
3081 ndr_print_struct(ndr
, name
, "samr_UserInfo24");
3083 ndr_print_samr_CryptPassword(ndr
, "password", &r
->password
);
3084 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
3088 static enum ndr_err_code
ndr_push_samr_CryptPasswordEx(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_CryptPasswordEx
*r
)
3091 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3092 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
3093 if (ndr_flags
& NDR_SCALARS
) {
3094 NDR_CHECK(ndr_push_align(ndr
, 1));
3095 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 532));
3097 if (ndr_flags
& NDR_BUFFERS
) {
3099 ndr
->flags
= _flags_save_STRUCT
;
3101 return NDR_ERR_SUCCESS
;
3104 static enum ndr_err_code
ndr_pull_samr_CryptPasswordEx(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_CryptPasswordEx
*r
)
3106 uint32_t size_data_0
= 0;
3108 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3109 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
3110 if (ndr_flags
& NDR_SCALARS
) {
3111 NDR_CHECK(ndr_pull_align(ndr
, 1));
3113 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, size_data_0
));
3115 if (ndr_flags
& NDR_BUFFERS
) {
3117 ndr
->flags
= _flags_save_STRUCT
;
3119 return NDR_ERR_SUCCESS
;
3122 _PUBLIC_
void ndr_print_samr_CryptPasswordEx(struct ndr_print
*ndr
, const char *name
, const struct samr_CryptPasswordEx
*r
)
3124 ndr_print_struct(ndr
, name
, "samr_CryptPasswordEx");
3126 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3127 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
3129 ndr_print_array_uint8(ndr
, "data", r
->data
, 532);
3131 ndr
->flags
= _flags_save_STRUCT
;
3135 static enum ndr_err_code
ndr_push_samr_UserInfo25(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo25
*r
)
3137 if (ndr_flags
& NDR_SCALARS
) {
3138 NDR_CHECK(ndr_push_align(ndr
, 4));
3139 NDR_CHECK(ndr_push_samr_UserInfo21(ndr
, NDR_SCALARS
, &r
->info
));
3140 NDR_CHECK(ndr_push_samr_CryptPasswordEx(ndr
, NDR_SCALARS
, &r
->password
));
3142 if (ndr_flags
& NDR_BUFFERS
) {
3143 NDR_CHECK(ndr_push_samr_UserInfo21(ndr
, NDR_BUFFERS
, &r
->info
));
3145 return NDR_ERR_SUCCESS
;
3148 static enum ndr_err_code
ndr_pull_samr_UserInfo25(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo25
*r
)
3150 if (ndr_flags
& NDR_SCALARS
) {
3151 NDR_CHECK(ndr_pull_align(ndr
, 4));
3152 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr
, NDR_SCALARS
, &r
->info
));
3153 NDR_CHECK(ndr_pull_samr_CryptPasswordEx(ndr
, NDR_SCALARS
, &r
->password
));
3155 if (ndr_flags
& NDR_BUFFERS
) {
3156 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr
, NDR_BUFFERS
, &r
->info
));
3158 return NDR_ERR_SUCCESS
;
3161 _PUBLIC_
void ndr_print_samr_UserInfo25(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo25
*r
)
3163 ndr_print_struct(ndr
, name
, "samr_UserInfo25");
3165 ndr_print_samr_UserInfo21(ndr
, "info", &r
->info
);
3166 ndr_print_samr_CryptPasswordEx(ndr
, "password", &r
->password
);
3170 static enum ndr_err_code
ndr_push_samr_UserInfo26(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_UserInfo26
*r
)
3172 if (ndr_flags
& NDR_SCALARS
) {
3173 NDR_CHECK(ndr_push_align(ndr
, 1));
3174 NDR_CHECK(ndr_push_samr_CryptPasswordEx(ndr
, NDR_SCALARS
, &r
->password
));
3175 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
3177 if (ndr_flags
& NDR_BUFFERS
) {
3179 return NDR_ERR_SUCCESS
;
3182 static enum ndr_err_code
ndr_pull_samr_UserInfo26(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_UserInfo26
*r
)
3184 if (ndr_flags
& NDR_SCALARS
) {
3185 NDR_CHECK(ndr_pull_align(ndr
, 1));
3186 NDR_CHECK(ndr_pull_samr_CryptPasswordEx(ndr
, NDR_SCALARS
, &r
->password
));
3187 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
3189 if (ndr_flags
& NDR_BUFFERS
) {
3191 return NDR_ERR_SUCCESS
;
3194 _PUBLIC_
void ndr_print_samr_UserInfo26(struct ndr_print
*ndr
, const char *name
, const struct samr_UserInfo26
*r
)
3196 ndr_print_struct(ndr
, name
, "samr_UserInfo26");
3198 ndr_print_samr_CryptPasswordEx(ndr
, "password", &r
->password
);
3199 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
3203 static enum ndr_err_code
ndr_push_samr_UserInfo(struct ndr_push
*ndr
, int ndr_flags
, const union samr_UserInfo
*r
)
3205 if (ndr_flags
& NDR_SCALARS
) {
3206 int level
= ndr_push_get_switch_value(ndr
, r
);
3207 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
3210 NDR_CHECK(ndr_push_samr_UserInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
3214 NDR_CHECK(ndr_push_samr_UserInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
3218 NDR_CHECK(ndr_push_samr_UserInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
3222 NDR_CHECK(ndr_push_samr_UserInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
3226 NDR_CHECK(ndr_push_samr_UserInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
3230 NDR_CHECK(ndr_push_samr_UserInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
3234 NDR_CHECK(ndr_push_samr_UserInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
3238 NDR_CHECK(ndr_push_samr_UserInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
3242 NDR_CHECK(ndr_push_samr_UserInfo9(ndr
, NDR_SCALARS
, &r
->info9
));
3246 NDR_CHECK(ndr_push_samr_UserInfo10(ndr
, NDR_SCALARS
, &r
->info10
));
3250 NDR_CHECK(ndr_push_samr_UserInfo11(ndr
, NDR_SCALARS
, &r
->info11
));
3254 NDR_CHECK(ndr_push_samr_UserInfo12(ndr
, NDR_SCALARS
, &r
->info12
));
3258 NDR_CHECK(ndr_push_samr_UserInfo13(ndr
, NDR_SCALARS
, &r
->info13
));
3262 NDR_CHECK(ndr_push_samr_UserInfo14(ndr
, NDR_SCALARS
, &r
->info14
));
3266 NDR_CHECK(ndr_push_samr_UserInfo16(ndr
, NDR_SCALARS
, &r
->info16
));
3270 NDR_CHECK(ndr_push_samr_UserInfo17(ndr
, NDR_SCALARS
, &r
->info17
));
3274 NDR_CHECK(ndr_push_samr_UserInfo18(ndr
, NDR_SCALARS
, &r
->info18
));
3278 NDR_CHECK(ndr_push_samr_UserInfo20(ndr
, NDR_SCALARS
, &r
->info20
));
3282 NDR_CHECK(ndr_push_samr_UserInfo21(ndr
, NDR_SCALARS
, &r
->info21
));
3286 NDR_CHECK(ndr_push_samr_UserInfo23(ndr
, NDR_SCALARS
, &r
->info23
));
3290 NDR_CHECK(ndr_push_samr_UserInfo24(ndr
, NDR_SCALARS
, &r
->info24
));
3294 NDR_CHECK(ndr_push_samr_UserInfo25(ndr
, NDR_SCALARS
, &r
->info25
));
3298 NDR_CHECK(ndr_push_samr_UserInfo26(ndr
, NDR_SCALARS
, &r
->info26
));
3302 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3305 if (ndr_flags
& NDR_BUFFERS
) {
3306 int level
= ndr_push_get_switch_value(ndr
, r
);
3309 NDR_CHECK(ndr_push_samr_UserInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
3313 NDR_CHECK(ndr_push_samr_UserInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
3317 NDR_CHECK(ndr_push_samr_UserInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
3321 NDR_CHECK(ndr_push_samr_UserInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
3325 NDR_CHECK(ndr_push_samr_UserInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
3329 NDR_CHECK(ndr_push_samr_UserInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
3333 NDR_CHECK(ndr_push_samr_UserInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
3337 NDR_CHECK(ndr_push_samr_UserInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
3344 NDR_CHECK(ndr_push_samr_UserInfo10(ndr
, NDR_BUFFERS
, &r
->info10
));
3348 NDR_CHECK(ndr_push_samr_UserInfo11(ndr
, NDR_BUFFERS
, &r
->info11
));
3352 NDR_CHECK(ndr_push_samr_UserInfo12(ndr
, NDR_BUFFERS
, &r
->info12
));
3356 NDR_CHECK(ndr_push_samr_UserInfo13(ndr
, NDR_BUFFERS
, &r
->info13
));
3360 NDR_CHECK(ndr_push_samr_UserInfo14(ndr
, NDR_BUFFERS
, &r
->info14
));
3373 NDR_CHECK(ndr_push_samr_UserInfo20(ndr
, NDR_BUFFERS
, &r
->info20
));
3377 NDR_CHECK(ndr_push_samr_UserInfo21(ndr
, NDR_BUFFERS
, &r
->info21
));
3381 NDR_CHECK(ndr_push_samr_UserInfo23(ndr
, NDR_BUFFERS
, &r
->info23
));
3388 NDR_CHECK(ndr_push_samr_UserInfo25(ndr
, NDR_BUFFERS
, &r
->info25
));
3395 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3398 return NDR_ERR_SUCCESS
;
3401 static enum ndr_err_code
ndr_pull_samr_UserInfo(struct ndr_pull
*ndr
, int ndr_flags
, union samr_UserInfo
*r
)
3405 level
= ndr_pull_get_switch_value(ndr
, r
);
3406 if (ndr_flags
& NDR_SCALARS
) {
3407 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
3408 if (_level
!= level
) {
3409 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
3413 NDR_CHECK(ndr_pull_samr_UserInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
3417 NDR_CHECK(ndr_pull_samr_UserInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
3421 NDR_CHECK(ndr_pull_samr_UserInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
3425 NDR_CHECK(ndr_pull_samr_UserInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
3429 NDR_CHECK(ndr_pull_samr_UserInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
3433 NDR_CHECK(ndr_pull_samr_UserInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
3437 NDR_CHECK(ndr_pull_samr_UserInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
3441 NDR_CHECK(ndr_pull_samr_UserInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
3445 NDR_CHECK(ndr_pull_samr_UserInfo9(ndr
, NDR_SCALARS
, &r
->info9
));
3449 NDR_CHECK(ndr_pull_samr_UserInfo10(ndr
, NDR_SCALARS
, &r
->info10
));
3453 NDR_CHECK(ndr_pull_samr_UserInfo11(ndr
, NDR_SCALARS
, &r
->info11
));
3457 NDR_CHECK(ndr_pull_samr_UserInfo12(ndr
, NDR_SCALARS
, &r
->info12
));
3461 NDR_CHECK(ndr_pull_samr_UserInfo13(ndr
, NDR_SCALARS
, &r
->info13
));
3465 NDR_CHECK(ndr_pull_samr_UserInfo14(ndr
, NDR_SCALARS
, &r
->info14
));
3469 NDR_CHECK(ndr_pull_samr_UserInfo16(ndr
, NDR_SCALARS
, &r
->info16
));
3473 NDR_CHECK(ndr_pull_samr_UserInfo17(ndr
, NDR_SCALARS
, &r
->info17
));
3477 NDR_CHECK(ndr_pull_samr_UserInfo18(ndr
, NDR_SCALARS
, &r
->info18
));
3481 NDR_CHECK(ndr_pull_samr_UserInfo20(ndr
, NDR_SCALARS
, &r
->info20
));
3485 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr
, NDR_SCALARS
, &r
->info21
));
3489 NDR_CHECK(ndr_pull_samr_UserInfo23(ndr
, NDR_SCALARS
, &r
->info23
));
3493 NDR_CHECK(ndr_pull_samr_UserInfo24(ndr
, NDR_SCALARS
, &r
->info24
));
3497 NDR_CHECK(ndr_pull_samr_UserInfo25(ndr
, NDR_SCALARS
, &r
->info25
));
3501 NDR_CHECK(ndr_pull_samr_UserInfo26(ndr
, NDR_SCALARS
, &r
->info26
));
3505 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3508 if (ndr_flags
& NDR_BUFFERS
) {
3511 NDR_CHECK(ndr_pull_samr_UserInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
3515 NDR_CHECK(ndr_pull_samr_UserInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
3519 NDR_CHECK(ndr_pull_samr_UserInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
3523 NDR_CHECK(ndr_pull_samr_UserInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
3527 NDR_CHECK(ndr_pull_samr_UserInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
3531 NDR_CHECK(ndr_pull_samr_UserInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
3535 NDR_CHECK(ndr_pull_samr_UserInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
3539 NDR_CHECK(ndr_pull_samr_UserInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
3546 NDR_CHECK(ndr_pull_samr_UserInfo10(ndr
, NDR_BUFFERS
, &r
->info10
));
3550 NDR_CHECK(ndr_pull_samr_UserInfo11(ndr
, NDR_BUFFERS
, &r
->info11
));
3554 NDR_CHECK(ndr_pull_samr_UserInfo12(ndr
, NDR_BUFFERS
, &r
->info12
));
3558 NDR_CHECK(ndr_pull_samr_UserInfo13(ndr
, NDR_BUFFERS
, &r
->info13
));
3562 NDR_CHECK(ndr_pull_samr_UserInfo14(ndr
, NDR_BUFFERS
, &r
->info14
));
3575 NDR_CHECK(ndr_pull_samr_UserInfo20(ndr
, NDR_BUFFERS
, &r
->info20
));
3579 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr
, NDR_BUFFERS
, &r
->info21
));
3583 NDR_CHECK(ndr_pull_samr_UserInfo23(ndr
, NDR_BUFFERS
, &r
->info23
));
3590 NDR_CHECK(ndr_pull_samr_UserInfo25(ndr
, NDR_BUFFERS
, &r
->info25
));
3597 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3600 return NDR_ERR_SUCCESS
;
3603 _PUBLIC_
void ndr_print_samr_UserInfo(struct ndr_print
*ndr
, const char *name
, const union samr_UserInfo
*r
)
3606 level
= ndr_print_get_switch_value(ndr
, r
);
3607 ndr_print_union(ndr
, name
, level
, "samr_UserInfo");
3610 ndr_print_samr_UserInfo1(ndr
, "info1", &r
->info1
);
3614 ndr_print_samr_UserInfo2(ndr
, "info2", &r
->info2
);
3618 ndr_print_samr_UserInfo3(ndr
, "info3", &r
->info3
);
3622 ndr_print_samr_UserInfo4(ndr
, "info4", &r
->info4
);
3626 ndr_print_samr_UserInfo5(ndr
, "info5", &r
->info5
);
3630 ndr_print_samr_UserInfo6(ndr
, "info6", &r
->info6
);
3634 ndr_print_samr_UserInfo7(ndr
, "info7", &r
->info7
);
3638 ndr_print_samr_UserInfo8(ndr
, "info8", &r
->info8
);
3642 ndr_print_samr_UserInfo9(ndr
, "info9", &r
->info9
);
3646 ndr_print_samr_UserInfo10(ndr
, "info10", &r
->info10
);
3650 ndr_print_samr_UserInfo11(ndr
, "info11", &r
->info11
);
3654 ndr_print_samr_UserInfo12(ndr
, "info12", &r
->info12
);
3658 ndr_print_samr_UserInfo13(ndr
, "info13", &r
->info13
);
3662 ndr_print_samr_UserInfo14(ndr
, "info14", &r
->info14
);
3666 ndr_print_samr_UserInfo16(ndr
, "info16", &r
->info16
);
3670 ndr_print_samr_UserInfo17(ndr
, "info17", &r
->info17
);
3674 ndr_print_samr_UserInfo18(ndr
, "info18", &r
->info18
);
3678 ndr_print_samr_UserInfo20(ndr
, "info20", &r
->info20
);
3682 ndr_print_samr_UserInfo21(ndr
, "info21", &r
->info21
);
3686 ndr_print_samr_UserInfo23(ndr
, "info23", &r
->info23
);
3690 ndr_print_samr_UserInfo24(ndr
, "info24", &r
->info24
);
3694 ndr_print_samr_UserInfo25(ndr
, "info25", &r
->info25
);
3698 ndr_print_samr_UserInfo26(ndr
, "info26", &r
->info26
);
3702 ndr_print_bad_level(ndr
, name
, level
);
3706 _PUBLIC_
enum ndr_err_code
ndr_push_samr_RidWithAttribute(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_RidWithAttribute
*r
)
3708 if (ndr_flags
& NDR_SCALARS
) {
3709 NDR_CHECK(ndr_push_align(ndr
, 4));
3710 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
3711 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->attributes
));
3713 if (ndr_flags
& NDR_BUFFERS
) {
3715 return NDR_ERR_SUCCESS
;
3718 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_RidWithAttribute(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_RidWithAttribute
*r
)
3720 if (ndr_flags
& NDR_SCALARS
) {
3721 NDR_CHECK(ndr_pull_align(ndr
, 4));
3722 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
3723 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->attributes
));
3725 if (ndr_flags
& NDR_BUFFERS
) {
3727 return NDR_ERR_SUCCESS
;
3730 _PUBLIC_
void ndr_print_samr_RidWithAttribute(struct ndr_print
*ndr
, const char *name
, const struct samr_RidWithAttribute
*r
)
3732 ndr_print_struct(ndr
, name
, "samr_RidWithAttribute");
3734 ndr_print_uint32(ndr
, "rid", r
->rid
);
3735 ndr_print_samr_GroupAttrs(ndr
, "attributes", r
->attributes
);
3739 _PUBLIC_
enum ndr_err_code
ndr_push_samr_RidWithAttributeArray(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_RidWithAttributeArray
*r
)
3741 uint32_t cntr_rids_1
;
3742 if (ndr_flags
& NDR_SCALARS
) {
3743 NDR_CHECK(ndr_push_align(ndr
, 4));
3744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
3745 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rids
));
3747 if (ndr_flags
& NDR_BUFFERS
) {
3749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
3750 for (cntr_rids_1
= 0; cntr_rids_1
< r
->count
; cntr_rids_1
++) {
3751 NDR_CHECK(ndr_push_samr_RidWithAttribute(ndr
, NDR_SCALARS
, &r
->rids
[cntr_rids_1
]));
3755 return NDR_ERR_SUCCESS
;
3758 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_RidWithAttributeArray(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_RidWithAttributeArray
*r
)
3761 uint32_t size_rids_1
= 0;
3762 uint32_t cntr_rids_1
;
3763 TALLOC_CTX
*_mem_save_rids_0
;
3764 TALLOC_CTX
*_mem_save_rids_1
;
3765 if (ndr_flags
& NDR_SCALARS
) {
3766 NDR_CHECK(ndr_pull_align(ndr
, 4));
3767 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
3768 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
3770 NDR_PULL_ALLOC(ndr
, r
->rids
);
3775 if (ndr_flags
& NDR_BUFFERS
) {
3777 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3778 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
3779 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->rids
));
3780 size_rids_1
= ndr_get_array_size(ndr
, &r
->rids
);
3781 NDR_PULL_ALLOC_N(ndr
, r
->rids
, size_rids_1
);
3782 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3783 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
3784 for (cntr_rids_1
= 0; cntr_rids_1
< size_rids_1
; cntr_rids_1
++) {
3785 NDR_CHECK(ndr_pull_samr_RidWithAttribute(ndr
, NDR_SCALARS
, &r
->rids
[cntr_rids_1
]));
3787 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
3788 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, 0);
3791 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->rids
, r
->count
));
3794 return NDR_ERR_SUCCESS
;
3797 _PUBLIC_
void ndr_print_samr_RidWithAttributeArray(struct ndr_print
*ndr
, const char *name
, const struct samr_RidWithAttributeArray
*r
)
3799 uint32_t cntr_rids_1
;
3800 ndr_print_struct(ndr
, name
, "samr_RidWithAttributeArray");
3802 ndr_print_uint32(ndr
, "count", r
->count
);
3803 ndr_print_ptr(ndr
, "rids", r
->rids
);
3806 ndr
->print(ndr
, "%s: ARRAY(%d)", "rids", (int)r
->count
);
3808 for (cntr_rids_1
=0;cntr_rids_1
<r
->count
;cntr_rids_1
++) {
3810 if (asprintf(&idx_1
, "[%d]", cntr_rids_1
) != -1) {
3811 ndr_print_samr_RidWithAttribute(ndr
, "rids", &r
->rids
[cntr_rids_1
]);
3821 static enum ndr_err_code
ndr_push_samr_DispEntryGeneral(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DispEntryGeneral
*r
)
3823 if (ndr_flags
& NDR_SCALARS
) {
3824 NDR_CHECK(ndr_push_align(ndr
, 4));
3825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->idx
));
3826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
3827 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
3828 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
3829 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3830 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
3832 if (ndr_flags
& NDR_BUFFERS
) {
3833 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
3834 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3835 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
3837 return NDR_ERR_SUCCESS
;
3840 static enum ndr_err_code
ndr_pull_samr_DispEntryGeneral(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DispEntryGeneral
*r
)
3842 if (ndr_flags
& NDR_SCALARS
) {
3843 NDR_CHECK(ndr_pull_align(ndr
, 4));
3844 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->idx
));
3845 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
3846 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
3847 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
3848 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3849 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
3851 if (ndr_flags
& NDR_BUFFERS
) {
3852 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
3853 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3854 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
3856 return NDR_ERR_SUCCESS
;
3859 _PUBLIC_
void ndr_print_samr_DispEntryGeneral(struct ndr_print
*ndr
, const char *name
, const struct samr_DispEntryGeneral
*r
)
3861 ndr_print_struct(ndr
, name
, "samr_DispEntryGeneral");
3863 ndr_print_uint32(ndr
, "idx", r
->idx
);
3864 ndr_print_uint32(ndr
, "rid", r
->rid
);
3865 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
3866 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
3867 ndr_print_lsa_String(ndr
, "description", &r
->description
);
3868 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
3872 static enum ndr_err_code
ndr_push_samr_DispInfoGeneral(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DispInfoGeneral
*r
)
3874 uint32_t cntr_entries_1
;
3875 if (ndr_flags
& NDR_SCALARS
) {
3876 NDR_CHECK(ndr_push_align(ndr
, 4));
3877 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
3878 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->entries
));
3880 if (ndr_flags
& NDR_BUFFERS
) {
3882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
3883 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
3884 NDR_CHECK(ndr_push_samr_DispEntryGeneral(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
3886 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
3887 NDR_CHECK(ndr_push_samr_DispEntryGeneral(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
3891 return NDR_ERR_SUCCESS
;
3894 static enum ndr_err_code
ndr_pull_samr_DispInfoGeneral(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DispInfoGeneral
*r
)
3896 uint32_t _ptr_entries
;
3897 uint32_t size_entries_1
= 0;
3898 uint32_t cntr_entries_1
;
3899 TALLOC_CTX
*_mem_save_entries_0
;
3900 TALLOC_CTX
*_mem_save_entries_1
;
3901 if (ndr_flags
& NDR_SCALARS
) {
3902 NDR_CHECK(ndr_pull_align(ndr
, 4));
3903 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
3904 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_entries
));
3906 NDR_PULL_ALLOC(ndr
, r
->entries
);
3911 if (ndr_flags
& NDR_BUFFERS
) {
3913 _mem_save_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3914 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
3915 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->entries
));
3916 size_entries_1
= ndr_get_array_size(ndr
, &r
->entries
);
3917 NDR_PULL_ALLOC_N(ndr
, r
->entries
, size_entries_1
);
3918 _mem_save_entries_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3919 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
3920 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
3921 NDR_CHECK(ndr_pull_samr_DispEntryGeneral(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
3923 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
3924 NDR_CHECK(ndr_pull_samr_DispEntryGeneral(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
3926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_1
, 0);
3927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_0
, 0);
3930 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->entries
, r
->count
));
3933 return NDR_ERR_SUCCESS
;
3936 _PUBLIC_
void ndr_print_samr_DispInfoGeneral(struct ndr_print
*ndr
, const char *name
, const struct samr_DispInfoGeneral
*r
)
3938 uint32_t cntr_entries_1
;
3939 ndr_print_struct(ndr
, name
, "samr_DispInfoGeneral");
3941 ndr_print_uint32(ndr
, "count", r
->count
);
3942 ndr_print_ptr(ndr
, "entries", r
->entries
);
3945 ndr
->print(ndr
, "%s: ARRAY(%d)", "entries", (int)r
->count
);
3947 for (cntr_entries_1
=0;cntr_entries_1
<r
->count
;cntr_entries_1
++) {
3949 if (asprintf(&idx_1
, "[%d]", cntr_entries_1
) != -1) {
3950 ndr_print_samr_DispEntryGeneral(ndr
, "entries", &r
->entries
[cntr_entries_1
]);
3960 static enum ndr_err_code
ndr_push_samr_DispEntryFull(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DispEntryFull
*r
)
3962 if (ndr_flags
& NDR_SCALARS
) {
3963 NDR_CHECK(ndr_push_align(ndr
, 4));
3964 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->idx
));
3965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
3966 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
3967 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
3968 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3970 if (ndr_flags
& NDR_BUFFERS
) {
3971 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
3972 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3974 return NDR_ERR_SUCCESS
;
3977 static enum ndr_err_code
ndr_pull_samr_DispEntryFull(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DispEntryFull
*r
)
3979 if (ndr_flags
& NDR_SCALARS
) {
3980 NDR_CHECK(ndr_pull_align(ndr
, 4));
3981 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->idx
));
3982 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
3983 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
3984 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
3985 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3987 if (ndr_flags
& NDR_BUFFERS
) {
3988 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
3989 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3991 return NDR_ERR_SUCCESS
;
3994 _PUBLIC_
void ndr_print_samr_DispEntryFull(struct ndr_print
*ndr
, const char *name
, const struct samr_DispEntryFull
*r
)
3996 ndr_print_struct(ndr
, name
, "samr_DispEntryFull");
3998 ndr_print_uint32(ndr
, "idx", r
->idx
);
3999 ndr_print_uint32(ndr
, "rid", r
->rid
);
4000 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
4001 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
4002 ndr_print_lsa_String(ndr
, "description", &r
->description
);
4006 static enum ndr_err_code
ndr_push_samr_DispInfoFull(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DispInfoFull
*r
)
4008 uint32_t cntr_entries_1
;
4009 if (ndr_flags
& NDR_SCALARS
) {
4010 NDR_CHECK(ndr_push_align(ndr
, 4));
4011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
4012 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->entries
));
4014 if (ndr_flags
& NDR_BUFFERS
) {
4016 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
4017 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
4018 NDR_CHECK(ndr_push_samr_DispEntryFull(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
4020 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
4021 NDR_CHECK(ndr_push_samr_DispEntryFull(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
4025 return NDR_ERR_SUCCESS
;
4028 static enum ndr_err_code
ndr_pull_samr_DispInfoFull(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DispInfoFull
*r
)
4030 uint32_t _ptr_entries
;
4031 uint32_t size_entries_1
= 0;
4032 uint32_t cntr_entries_1
;
4033 TALLOC_CTX
*_mem_save_entries_0
;
4034 TALLOC_CTX
*_mem_save_entries_1
;
4035 if (ndr_flags
& NDR_SCALARS
) {
4036 NDR_CHECK(ndr_pull_align(ndr
, 4));
4037 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
4038 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_entries
));
4040 NDR_PULL_ALLOC(ndr
, r
->entries
);
4045 if (ndr_flags
& NDR_BUFFERS
) {
4047 _mem_save_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4048 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
4049 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->entries
));
4050 size_entries_1
= ndr_get_array_size(ndr
, &r
->entries
);
4051 NDR_PULL_ALLOC_N(ndr
, r
->entries
, size_entries_1
);
4052 _mem_save_entries_1
= NDR_PULL_GET_MEM_CTX(ndr
);
4053 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
4054 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
4055 NDR_CHECK(ndr_pull_samr_DispEntryFull(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
4057 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
4058 NDR_CHECK(ndr_pull_samr_DispEntryFull(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
4060 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_1
, 0);
4061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_0
, 0);
4064 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->entries
, r
->count
));
4067 return NDR_ERR_SUCCESS
;
4070 _PUBLIC_
void ndr_print_samr_DispInfoFull(struct ndr_print
*ndr
, const char *name
, const struct samr_DispInfoFull
*r
)
4072 uint32_t cntr_entries_1
;
4073 ndr_print_struct(ndr
, name
, "samr_DispInfoFull");
4075 ndr_print_uint32(ndr
, "count", r
->count
);
4076 ndr_print_ptr(ndr
, "entries", r
->entries
);
4079 ndr
->print(ndr
, "%s: ARRAY(%d)", "entries", (int)r
->count
);
4081 for (cntr_entries_1
=0;cntr_entries_1
<r
->count
;cntr_entries_1
++) {
4083 if (asprintf(&idx_1
, "[%d]", cntr_entries_1
) != -1) {
4084 ndr_print_samr_DispEntryFull(ndr
, "entries", &r
->entries
[cntr_entries_1
]);
4094 static enum ndr_err_code
ndr_push_samr_DispEntryFullGroup(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DispEntryFullGroup
*r
)
4096 if (ndr_flags
& NDR_SCALARS
) {
4097 NDR_CHECK(ndr_push_align(ndr
, 4));
4098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->idx
));
4099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4100 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->acct_flags
));
4101 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
4102 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
4104 if (ndr_flags
& NDR_BUFFERS
) {
4105 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
4106 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
4108 return NDR_ERR_SUCCESS
;
4111 static enum ndr_err_code
ndr_pull_samr_DispEntryFullGroup(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DispEntryFullGroup
*r
)
4113 if (ndr_flags
& NDR_SCALARS
) {
4114 NDR_CHECK(ndr_pull_align(ndr
, 4));
4115 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->idx
));
4116 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4117 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->acct_flags
));
4118 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
4119 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
4121 if (ndr_flags
& NDR_BUFFERS
) {
4122 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
4123 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
4125 return NDR_ERR_SUCCESS
;
4128 _PUBLIC_
void ndr_print_samr_DispEntryFullGroup(struct ndr_print
*ndr
, const char *name
, const struct samr_DispEntryFullGroup
*r
)
4130 ndr_print_struct(ndr
, name
, "samr_DispEntryFullGroup");
4132 ndr_print_uint32(ndr
, "idx", r
->idx
);
4133 ndr_print_uint32(ndr
, "rid", r
->rid
);
4134 ndr_print_samr_GroupAttrs(ndr
, "acct_flags", r
->acct_flags
);
4135 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
4136 ndr_print_lsa_String(ndr
, "description", &r
->description
);
4140 static enum ndr_err_code
ndr_push_samr_DispInfoFullGroups(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DispInfoFullGroups
*r
)
4142 uint32_t cntr_entries_1
;
4143 if (ndr_flags
& NDR_SCALARS
) {
4144 NDR_CHECK(ndr_push_align(ndr
, 4));
4145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
4146 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->entries
));
4148 if (ndr_flags
& NDR_BUFFERS
) {
4150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
4151 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
4152 NDR_CHECK(ndr_push_samr_DispEntryFullGroup(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
4154 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
4155 NDR_CHECK(ndr_push_samr_DispEntryFullGroup(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
4159 return NDR_ERR_SUCCESS
;
4162 static enum ndr_err_code
ndr_pull_samr_DispInfoFullGroups(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DispInfoFullGroups
*r
)
4164 uint32_t _ptr_entries
;
4165 uint32_t size_entries_1
= 0;
4166 uint32_t cntr_entries_1
;
4167 TALLOC_CTX
*_mem_save_entries_0
;
4168 TALLOC_CTX
*_mem_save_entries_1
;
4169 if (ndr_flags
& NDR_SCALARS
) {
4170 NDR_CHECK(ndr_pull_align(ndr
, 4));
4171 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
4172 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_entries
));
4174 NDR_PULL_ALLOC(ndr
, r
->entries
);
4179 if (ndr_flags
& NDR_BUFFERS
) {
4181 _mem_save_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4182 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
4183 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->entries
));
4184 size_entries_1
= ndr_get_array_size(ndr
, &r
->entries
);
4185 NDR_PULL_ALLOC_N(ndr
, r
->entries
, size_entries_1
);
4186 _mem_save_entries_1
= NDR_PULL_GET_MEM_CTX(ndr
);
4187 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
4188 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
4189 NDR_CHECK(ndr_pull_samr_DispEntryFullGroup(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
4191 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
4192 NDR_CHECK(ndr_pull_samr_DispEntryFullGroup(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
4194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_1
, 0);
4195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_0
, 0);
4198 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->entries
, r
->count
));
4201 return NDR_ERR_SUCCESS
;
4204 _PUBLIC_
void ndr_print_samr_DispInfoFullGroups(struct ndr_print
*ndr
, const char *name
, const struct samr_DispInfoFullGroups
*r
)
4206 uint32_t cntr_entries_1
;
4207 ndr_print_struct(ndr
, name
, "samr_DispInfoFullGroups");
4209 ndr_print_uint32(ndr
, "count", r
->count
);
4210 ndr_print_ptr(ndr
, "entries", r
->entries
);
4213 ndr
->print(ndr
, "%s: ARRAY(%d)", "entries", (int)r
->count
);
4215 for (cntr_entries_1
=0;cntr_entries_1
<r
->count
;cntr_entries_1
++) {
4217 if (asprintf(&idx_1
, "[%d]", cntr_entries_1
) != -1) {
4218 ndr_print_samr_DispEntryFullGroup(ndr
, "entries", &r
->entries
[cntr_entries_1
]);
4228 static enum ndr_err_code
ndr_push_samr_DispEntryAscii(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DispEntryAscii
*r
)
4230 if (ndr_flags
& NDR_SCALARS
) {
4231 NDR_CHECK(ndr_push_align(ndr
, 4));
4232 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->idx
));
4233 NDR_CHECK(ndr_push_lsa_AsciiStringLarge(ndr
, NDR_SCALARS
, &r
->account_name
));
4235 if (ndr_flags
& NDR_BUFFERS
) {
4236 NDR_CHECK(ndr_push_lsa_AsciiStringLarge(ndr
, NDR_BUFFERS
, &r
->account_name
));
4238 return NDR_ERR_SUCCESS
;
4241 static enum ndr_err_code
ndr_pull_samr_DispEntryAscii(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DispEntryAscii
*r
)
4243 if (ndr_flags
& NDR_SCALARS
) {
4244 NDR_CHECK(ndr_pull_align(ndr
, 4));
4245 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->idx
));
4246 NDR_CHECK(ndr_pull_lsa_AsciiStringLarge(ndr
, NDR_SCALARS
, &r
->account_name
));
4248 if (ndr_flags
& NDR_BUFFERS
) {
4249 NDR_CHECK(ndr_pull_lsa_AsciiStringLarge(ndr
, NDR_BUFFERS
, &r
->account_name
));
4251 return NDR_ERR_SUCCESS
;
4254 _PUBLIC_
void ndr_print_samr_DispEntryAscii(struct ndr_print
*ndr
, const char *name
, const struct samr_DispEntryAscii
*r
)
4256 ndr_print_struct(ndr
, name
, "samr_DispEntryAscii");
4258 ndr_print_uint32(ndr
, "idx", r
->idx
);
4259 ndr_print_lsa_AsciiStringLarge(ndr
, "account_name", &r
->account_name
);
4263 static enum ndr_err_code
ndr_push_samr_DispInfoAscii(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_DispInfoAscii
*r
)
4265 uint32_t cntr_entries_1
;
4266 if (ndr_flags
& NDR_SCALARS
) {
4267 NDR_CHECK(ndr_push_align(ndr
, 4));
4268 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
4269 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->entries
));
4271 if (ndr_flags
& NDR_BUFFERS
) {
4273 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
4274 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
4275 NDR_CHECK(ndr_push_samr_DispEntryAscii(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
4277 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
4278 NDR_CHECK(ndr_push_samr_DispEntryAscii(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
4282 return NDR_ERR_SUCCESS
;
4285 static enum ndr_err_code
ndr_pull_samr_DispInfoAscii(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_DispInfoAscii
*r
)
4287 uint32_t _ptr_entries
;
4288 uint32_t size_entries_1
= 0;
4289 uint32_t cntr_entries_1
;
4290 TALLOC_CTX
*_mem_save_entries_0
;
4291 TALLOC_CTX
*_mem_save_entries_1
;
4292 if (ndr_flags
& NDR_SCALARS
) {
4293 NDR_CHECK(ndr_pull_align(ndr
, 4));
4294 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
4295 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_entries
));
4297 NDR_PULL_ALLOC(ndr
, r
->entries
);
4302 if (ndr_flags
& NDR_BUFFERS
) {
4304 _mem_save_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4305 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
4306 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->entries
));
4307 size_entries_1
= ndr_get_array_size(ndr
, &r
->entries
);
4308 NDR_PULL_ALLOC_N(ndr
, r
->entries
, size_entries_1
);
4309 _mem_save_entries_1
= NDR_PULL_GET_MEM_CTX(ndr
);
4310 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
4311 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
4312 NDR_CHECK(ndr_pull_samr_DispEntryAscii(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
4314 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
4315 NDR_CHECK(ndr_pull_samr_DispEntryAscii(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
4317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_1
, 0);
4318 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_0
, 0);
4321 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->entries
, r
->count
));
4324 return NDR_ERR_SUCCESS
;
4327 _PUBLIC_
void ndr_print_samr_DispInfoAscii(struct ndr_print
*ndr
, const char *name
, const struct samr_DispInfoAscii
*r
)
4329 uint32_t cntr_entries_1
;
4330 ndr_print_struct(ndr
, name
, "samr_DispInfoAscii");
4332 ndr_print_uint32(ndr
, "count", r
->count
);
4333 ndr_print_ptr(ndr
, "entries", r
->entries
);
4336 ndr
->print(ndr
, "%s: ARRAY(%d)", "entries", (int)r
->count
);
4338 for (cntr_entries_1
=0;cntr_entries_1
<r
->count
;cntr_entries_1
++) {
4340 if (asprintf(&idx_1
, "[%d]", cntr_entries_1
) != -1) {
4341 ndr_print_samr_DispEntryAscii(ndr
, "entries", &r
->entries
[cntr_entries_1
]);
4351 static enum ndr_err_code
ndr_push_samr_DispInfo(struct ndr_push
*ndr
, int ndr_flags
, const union samr_DispInfo
*r
)
4353 if (ndr_flags
& NDR_SCALARS
) {
4354 int level
= ndr_push_get_switch_value(ndr
, r
);
4355 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
4358 NDR_CHECK(ndr_push_samr_DispInfoGeneral(ndr
, NDR_SCALARS
, &r
->info1
));
4362 NDR_CHECK(ndr_push_samr_DispInfoFull(ndr
, NDR_SCALARS
, &r
->info2
));
4366 NDR_CHECK(ndr_push_samr_DispInfoFullGroups(ndr
, NDR_SCALARS
, &r
->info3
));
4370 NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr
, NDR_SCALARS
, &r
->info4
));
4374 NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr
, NDR_SCALARS
, &r
->info5
));
4378 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4381 if (ndr_flags
& NDR_BUFFERS
) {
4382 int level
= ndr_push_get_switch_value(ndr
, r
);
4385 NDR_CHECK(ndr_push_samr_DispInfoGeneral(ndr
, NDR_BUFFERS
, &r
->info1
));
4389 NDR_CHECK(ndr_push_samr_DispInfoFull(ndr
, NDR_BUFFERS
, &r
->info2
));
4393 NDR_CHECK(ndr_push_samr_DispInfoFullGroups(ndr
, NDR_BUFFERS
, &r
->info3
));
4397 NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr
, NDR_BUFFERS
, &r
->info4
));
4401 NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr
, NDR_BUFFERS
, &r
->info5
));
4405 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4408 return NDR_ERR_SUCCESS
;
4411 static enum ndr_err_code
ndr_pull_samr_DispInfo(struct ndr_pull
*ndr
, int ndr_flags
, union samr_DispInfo
*r
)
4415 level
= ndr_pull_get_switch_value(ndr
, r
);
4416 if (ndr_flags
& NDR_SCALARS
) {
4417 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4418 if (_level
!= level
) {
4419 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
4423 NDR_CHECK(ndr_pull_samr_DispInfoGeneral(ndr
, NDR_SCALARS
, &r
->info1
));
4427 NDR_CHECK(ndr_pull_samr_DispInfoFull(ndr
, NDR_SCALARS
, &r
->info2
));
4431 NDR_CHECK(ndr_pull_samr_DispInfoFullGroups(ndr
, NDR_SCALARS
, &r
->info3
));
4435 NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr
, NDR_SCALARS
, &r
->info4
));
4439 NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr
, NDR_SCALARS
, &r
->info5
));
4443 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4446 if (ndr_flags
& NDR_BUFFERS
) {
4449 NDR_CHECK(ndr_pull_samr_DispInfoGeneral(ndr
, NDR_BUFFERS
, &r
->info1
));
4453 NDR_CHECK(ndr_pull_samr_DispInfoFull(ndr
, NDR_BUFFERS
, &r
->info2
));
4457 NDR_CHECK(ndr_pull_samr_DispInfoFullGroups(ndr
, NDR_BUFFERS
, &r
->info3
));
4461 NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr
, NDR_BUFFERS
, &r
->info4
));
4465 NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr
, NDR_BUFFERS
, &r
->info5
));
4469 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4472 return NDR_ERR_SUCCESS
;
4475 _PUBLIC_
void ndr_print_samr_DispInfo(struct ndr_print
*ndr
, const char *name
, const union samr_DispInfo
*r
)
4478 level
= ndr_print_get_switch_value(ndr
, r
);
4479 ndr_print_union(ndr
, name
, level
, "samr_DispInfo");
4482 ndr_print_samr_DispInfoGeneral(ndr
, "info1", &r
->info1
);
4486 ndr_print_samr_DispInfoFull(ndr
, "info2", &r
->info2
);
4490 ndr_print_samr_DispInfoFullGroups(ndr
, "info3", &r
->info3
);
4494 ndr_print_samr_DispInfoAscii(ndr
, "info4", &r
->info4
);
4498 ndr_print_samr_DispInfoAscii(ndr
, "info5", &r
->info5
);
4502 ndr_print_bad_level(ndr
, name
, level
);
4506 static enum ndr_err_code
ndr_push_samr_PwInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_PwInfo
*r
)
4508 if (ndr_flags
& NDR_SCALARS
) {
4509 NDR_CHECK(ndr_push_align(ndr
, 4));
4510 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->min_password_length
));
4511 NDR_CHECK(ndr_push_samr_PasswordProperties(ndr
, NDR_SCALARS
, r
->password_properties
));
4513 if (ndr_flags
& NDR_BUFFERS
) {
4515 return NDR_ERR_SUCCESS
;
4518 static enum ndr_err_code
ndr_pull_samr_PwInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_PwInfo
*r
)
4520 if (ndr_flags
& NDR_SCALARS
) {
4521 NDR_CHECK(ndr_pull_align(ndr
, 4));
4522 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->min_password_length
));
4523 NDR_CHECK(ndr_pull_samr_PasswordProperties(ndr
, NDR_SCALARS
, &r
->password_properties
));
4525 if (ndr_flags
& NDR_BUFFERS
) {
4527 return NDR_ERR_SUCCESS
;
4530 _PUBLIC_
void ndr_print_samr_PwInfo(struct ndr_print
*ndr
, const char *name
, const struct samr_PwInfo
*r
)
4532 ndr_print_struct(ndr
, name
, "samr_PwInfo");
4534 ndr_print_uint16(ndr
, "min_password_length", r
->min_password_length
);
4535 ndr_print_samr_PasswordProperties(ndr
, "password_properties", r
->password_properties
);
4539 static enum ndr_err_code
ndr_push_samr_ConnectVersion(struct ndr_push
*ndr
, int ndr_flags
, enum samr_ConnectVersion r
)
4541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
4542 return NDR_ERR_SUCCESS
;
4545 static enum ndr_err_code
ndr_pull_samr_ConnectVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum samr_ConnectVersion
*r
)
4548 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
4550 return NDR_ERR_SUCCESS
;
4553 _PUBLIC_
void ndr_print_samr_ConnectVersion(struct ndr_print
*ndr
, const char *name
, enum samr_ConnectVersion r
)
4555 const char *val
= NULL
;
4558 case SAMR_CONNECT_PRE_W2K
: val
= "SAMR_CONNECT_PRE_W2K"; break;
4559 case SAMR_CONNECT_W2K
: val
= "SAMR_CONNECT_W2K"; break;
4560 case SAMR_CONNECT_AFTER_W2K
: val
= "SAMR_CONNECT_AFTER_W2K"; break;
4562 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
4565 static enum ndr_err_code
ndr_push_samr_ChangeReject(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_ChangeReject
*r
)
4567 if (ndr_flags
& NDR_SCALARS
) {
4568 NDR_CHECK(ndr_push_align(ndr
, 4));
4569 NDR_CHECK(ndr_push_samr_RejectReason(ndr
, NDR_SCALARS
, r
->reason
));
4570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
4571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
4573 if (ndr_flags
& NDR_BUFFERS
) {
4575 return NDR_ERR_SUCCESS
;
4578 static enum ndr_err_code
ndr_pull_samr_ChangeReject(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_ChangeReject
*r
)
4580 if (ndr_flags
& NDR_SCALARS
) {
4581 NDR_CHECK(ndr_pull_align(ndr
, 4));
4582 NDR_CHECK(ndr_pull_samr_RejectReason(ndr
, NDR_SCALARS
, &r
->reason
));
4583 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
4584 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
4586 if (ndr_flags
& NDR_BUFFERS
) {
4588 return NDR_ERR_SUCCESS
;
4591 _PUBLIC_
void ndr_print_samr_ChangeReject(struct ndr_print
*ndr
, const char *name
, const struct samr_ChangeReject
*r
)
4593 ndr_print_struct(ndr
, name
, "samr_ChangeReject");
4595 ndr_print_samr_RejectReason(ndr
, "reason", r
->reason
);
4596 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
4597 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
4601 static enum ndr_err_code
ndr_push_samr_ConnectInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_ConnectInfo1
*r
)
4603 if (ndr_flags
& NDR_SCALARS
) {
4604 NDR_CHECK(ndr_push_align(ndr
, 4));
4605 NDR_CHECK(ndr_push_samr_ConnectVersion(ndr
, NDR_SCALARS
, r
->client_version
));
4606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
4608 if (ndr_flags
& NDR_BUFFERS
) {
4610 return NDR_ERR_SUCCESS
;
4613 static enum ndr_err_code
ndr_pull_samr_ConnectInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_ConnectInfo1
*r
)
4615 if (ndr_flags
& NDR_SCALARS
) {
4616 NDR_CHECK(ndr_pull_align(ndr
, 4));
4617 NDR_CHECK(ndr_pull_samr_ConnectVersion(ndr
, NDR_SCALARS
, &r
->client_version
));
4618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
4620 if (ndr_flags
& NDR_BUFFERS
) {
4622 return NDR_ERR_SUCCESS
;
4625 _PUBLIC_
void ndr_print_samr_ConnectInfo1(struct ndr_print
*ndr
, const char *name
, const struct samr_ConnectInfo1
*r
)
4627 ndr_print_struct(ndr
, name
, "samr_ConnectInfo1");
4629 ndr_print_samr_ConnectVersion(ndr
, "client_version", r
->client_version
);
4630 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
4634 static enum ndr_err_code
ndr_push_samr_ConnectInfo(struct ndr_push
*ndr
, int ndr_flags
, const union samr_ConnectInfo
*r
)
4636 if (ndr_flags
& NDR_SCALARS
) {
4637 int level
= ndr_push_get_switch_value(ndr
, r
);
4638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
4641 NDR_CHECK(ndr_push_samr_ConnectInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4645 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4648 if (ndr_flags
& NDR_BUFFERS
) {
4649 int level
= ndr_push_get_switch_value(ndr
, r
);
4655 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4658 return NDR_ERR_SUCCESS
;
4661 static enum ndr_err_code
ndr_pull_samr_ConnectInfo(struct ndr_pull
*ndr
, int ndr_flags
, union samr_ConnectInfo
*r
)
4665 level
= ndr_pull_get_switch_value(ndr
, r
);
4666 if (ndr_flags
& NDR_SCALARS
) {
4667 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
4668 if (_level
!= level
) {
4669 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
4673 NDR_CHECK(ndr_pull_samr_ConnectInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4677 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4680 if (ndr_flags
& NDR_BUFFERS
) {
4686 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4689 return NDR_ERR_SUCCESS
;
4692 _PUBLIC_
void ndr_print_samr_ConnectInfo(struct ndr_print
*ndr
, const char *name
, const union samr_ConnectInfo
*r
)
4695 level
= ndr_print_get_switch_value(ndr
, r
);
4696 ndr_print_union(ndr
, name
, level
, "samr_ConnectInfo");
4699 ndr_print_samr_ConnectInfo1(ndr
, "info1", &r
->info1
);
4703 ndr_print_bad_level(ndr
, name
, level
);
4707 static enum ndr_err_code
ndr_push_samr_ValidateFieldsPresent(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
4709 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
4710 return NDR_ERR_SUCCESS
;
4713 static enum ndr_err_code
ndr_pull_samr_ValidateFieldsPresent(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
4716 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
4718 return NDR_ERR_SUCCESS
;
4721 _PUBLIC_
void ndr_print_samr_ValidateFieldsPresent(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
4723 ndr_print_uint32(ndr
, name
, r
);
4725 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET", SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET
, r
);
4726 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME", SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME
, r
);
4727 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_LOCKOUT_TIME", SAMR_VALIDATE_FIELD_LOCKOUT_TIME
, r
);
4728 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT", SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT
, r
);
4729 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH", SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH
, r
);
4730 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY", SAMR_VALIDATE_FIELD_PASSWORD_HISTORY
, r
);
4734 static enum ndr_err_code
ndr_push_samr_ValidatePasswordLevel(struct ndr_push
*ndr
, int ndr_flags
, enum samr_ValidatePasswordLevel r
)
4736 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
4737 return NDR_ERR_SUCCESS
;
4740 static enum ndr_err_code
ndr_pull_samr_ValidatePasswordLevel(struct ndr_pull
*ndr
, int ndr_flags
, enum samr_ValidatePasswordLevel
*r
)
4743 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
4745 return NDR_ERR_SUCCESS
;
4748 _PUBLIC_
void ndr_print_samr_ValidatePasswordLevel(struct ndr_print
*ndr
, const char *name
, enum samr_ValidatePasswordLevel r
)
4750 const char *val
= NULL
;
4753 case NetValidateAuthentication
: val
= "NetValidateAuthentication"; break;
4754 case NetValidatePasswordChange
: val
= "NetValidatePasswordChange"; break;
4755 case NetValidatePasswordReset
: val
= "NetValidatePasswordReset"; break;
4757 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
4760 static enum ndr_err_code
ndr_push_samr_ValidationStatus(struct ndr_push
*ndr
, int ndr_flags
, enum samr_ValidationStatus r
)
4762 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
4763 return NDR_ERR_SUCCESS
;
4766 static enum ndr_err_code
ndr_pull_samr_ValidationStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum samr_ValidationStatus
*r
)
4769 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
4771 return NDR_ERR_SUCCESS
;
4774 _PUBLIC_
void ndr_print_samr_ValidationStatus(struct ndr_print
*ndr
, const char *name
, enum samr_ValidationStatus r
)
4776 const char *val
= NULL
;
4779 case SAMR_VALIDATION_STATUS_SUCCESS
: val
= "SAMR_VALIDATION_STATUS_SUCCESS"; break;
4780 case SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE
: val
= "SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE"; break;
4781 case SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT
: val
= "SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT"; break;
4782 case SAMR_VALIDATION_STATUS_BAD_PASSWORD
: val
= "SAMR_VALIDATION_STATUS_BAD_PASSWORD"; break;
4783 case SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT
: val
= "SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT"; break;
4784 case SAMR_VALIDATION_STATUS_PWD_TOO_SHORT
: val
= "SAMR_VALIDATION_STATUS_PWD_TOO_SHORT"; break;
4785 case SAMR_VALIDATION_STATUS_PWD_TOO_LONG
: val
= "SAMR_VALIDATION_STATUS_PWD_TOO_LONG"; break;
4786 case SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH
: val
= "SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH"; break;
4787 case SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT
: val
= "SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT"; break;
4789 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
4792 static enum ndr_err_code
ndr_push_samr_ValidationBlob(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_ValidationBlob
*r
)
4794 if (ndr_flags
& NDR_SCALARS
) {
4795 NDR_CHECK(ndr_push_align(ndr
, 4));
4796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
4797 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
4799 if (ndr_flags
& NDR_BUFFERS
) {
4801 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
4802 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
4805 return NDR_ERR_SUCCESS
;
4808 static enum ndr_err_code
ndr_pull_samr_ValidationBlob(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_ValidationBlob
*r
)
4811 uint32_t size_data_1
= 0;
4812 TALLOC_CTX
*_mem_save_data_0
;
4813 if (ndr_flags
& NDR_SCALARS
) {
4814 NDR_CHECK(ndr_pull_align(ndr
, 4));
4815 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
4816 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
4818 NDR_PULL_ALLOC(ndr
, r
->data
);
4823 if (ndr_flags
& NDR_BUFFERS
) {
4825 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4826 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
4827 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
4828 size_data_1
= ndr_get_array_size(ndr
, &r
->data
);
4829 NDR_PULL_ALLOC_N(ndr
, r
->data
, size_data_1
);
4830 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, size_data_1
));
4831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
4834 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
4837 return NDR_ERR_SUCCESS
;
4840 _PUBLIC_
void ndr_print_samr_ValidationBlob(struct ndr_print
*ndr
, const char *name
, const struct samr_ValidationBlob
*r
)
4842 ndr_print_struct(ndr
, name
, "samr_ValidationBlob");
4844 ndr_print_uint32(ndr
, "length", r
->length
);
4845 ndr_print_ptr(ndr
, "data", r
->data
);
4848 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
4854 static enum ndr_err_code
ndr_push_samr_ValidatePasswordInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_ValidatePasswordInfo
*r
)
4856 uint32_t cntr_pwd_history_1
;
4857 if (ndr_flags
& NDR_SCALARS
) {
4858 NDR_CHECK(ndr_push_align(ndr
, 8));
4859 NDR_CHECK(ndr_push_samr_ValidateFieldsPresent(ndr
, NDR_SCALARS
, r
->fields_present
));
4860 NDR_CHECK(ndr_push_NTTIME_hyper(ndr
, NDR_SCALARS
, r
->last_password_change
));
4861 NDR_CHECK(ndr_push_NTTIME_hyper(ndr
, NDR_SCALARS
, r
->bad_password_time
));
4862 NDR_CHECK(ndr_push_NTTIME_hyper(ndr
, NDR_SCALARS
, r
->lockout_time
));
4863 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_pwd_count
));
4864 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pwd_history_len
));
4865 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pwd_history
));
4867 if (ndr_flags
& NDR_BUFFERS
) {
4868 if (r
->pwd_history
) {
4869 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pwd_history_len
));
4870 for (cntr_pwd_history_1
= 0; cntr_pwd_history_1
< r
->pwd_history_len
; cntr_pwd_history_1
++) {
4871 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr
, NDR_SCALARS
, &r
->pwd_history
[cntr_pwd_history_1
]));
4873 for (cntr_pwd_history_1
= 0; cntr_pwd_history_1
< r
->pwd_history_len
; cntr_pwd_history_1
++) {
4874 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr
, NDR_BUFFERS
, &r
->pwd_history
[cntr_pwd_history_1
]));
4878 return NDR_ERR_SUCCESS
;
4881 static enum ndr_err_code
ndr_pull_samr_ValidatePasswordInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_ValidatePasswordInfo
*r
)
4883 uint32_t _ptr_pwd_history
;
4884 uint32_t size_pwd_history_1
= 0;
4885 uint32_t cntr_pwd_history_1
;
4886 TALLOC_CTX
*_mem_save_pwd_history_0
;
4887 TALLOC_CTX
*_mem_save_pwd_history_1
;
4888 if (ndr_flags
& NDR_SCALARS
) {
4889 NDR_CHECK(ndr_pull_align(ndr
, 8));
4890 NDR_CHECK(ndr_pull_samr_ValidateFieldsPresent(ndr
, NDR_SCALARS
, &r
->fields_present
));
4891 NDR_CHECK(ndr_pull_NTTIME_hyper(ndr
, NDR_SCALARS
, &r
->last_password_change
));
4892 NDR_CHECK(ndr_pull_NTTIME_hyper(ndr
, NDR_SCALARS
, &r
->bad_password_time
));
4893 NDR_CHECK(ndr_pull_NTTIME_hyper(ndr
, NDR_SCALARS
, &r
->lockout_time
));
4894 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_pwd_count
));
4895 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pwd_history_len
));
4896 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pwd_history
));
4897 if (_ptr_pwd_history
) {
4898 NDR_PULL_ALLOC(ndr
, r
->pwd_history
);
4900 r
->pwd_history
= NULL
;
4903 if (ndr_flags
& NDR_BUFFERS
) {
4904 if (r
->pwd_history
) {
4905 _mem_save_pwd_history_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4906 NDR_PULL_SET_MEM_CTX(ndr
, r
->pwd_history
, 0);
4907 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->pwd_history
));
4908 size_pwd_history_1
= ndr_get_array_size(ndr
, &r
->pwd_history
);
4909 NDR_PULL_ALLOC_N(ndr
, r
->pwd_history
, size_pwd_history_1
);
4910 _mem_save_pwd_history_1
= NDR_PULL_GET_MEM_CTX(ndr
);
4911 NDR_PULL_SET_MEM_CTX(ndr
, r
->pwd_history
, 0);
4912 for (cntr_pwd_history_1
= 0; cntr_pwd_history_1
< size_pwd_history_1
; cntr_pwd_history_1
++) {
4913 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr
, NDR_SCALARS
, &r
->pwd_history
[cntr_pwd_history_1
]));
4915 for (cntr_pwd_history_1
= 0; cntr_pwd_history_1
< size_pwd_history_1
; cntr_pwd_history_1
++) {
4916 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr
, NDR_BUFFERS
, &r
->pwd_history
[cntr_pwd_history_1
]));
4918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pwd_history_1
, 0);
4919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pwd_history_0
, 0);
4921 if (r
->pwd_history
) {
4922 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->pwd_history
, r
->pwd_history_len
));
4925 return NDR_ERR_SUCCESS
;
4928 _PUBLIC_
void ndr_print_samr_ValidatePasswordInfo(struct ndr_print
*ndr
, const char *name
, const struct samr_ValidatePasswordInfo
*r
)
4930 uint32_t cntr_pwd_history_1
;
4931 ndr_print_struct(ndr
, name
, "samr_ValidatePasswordInfo");
4933 ndr_print_samr_ValidateFieldsPresent(ndr
, "fields_present", r
->fields_present
);
4934 ndr_print_NTTIME_hyper(ndr
, "last_password_change", r
->last_password_change
);
4935 ndr_print_NTTIME_hyper(ndr
, "bad_password_time", r
->bad_password_time
);
4936 ndr_print_NTTIME_hyper(ndr
, "lockout_time", r
->lockout_time
);
4937 ndr_print_uint32(ndr
, "bad_pwd_count", r
->bad_pwd_count
);
4938 ndr_print_uint32(ndr
, "pwd_history_len", r
->pwd_history_len
);
4939 ndr_print_ptr(ndr
, "pwd_history", r
->pwd_history
);
4941 if (r
->pwd_history
) {
4942 ndr
->print(ndr
, "%s: ARRAY(%d)", "pwd_history", (int)r
->pwd_history_len
);
4944 for (cntr_pwd_history_1
=0;cntr_pwd_history_1
<r
->pwd_history_len
;cntr_pwd_history_1
++) {
4946 if (asprintf(&idx_1
, "[%d]", cntr_pwd_history_1
) != -1) {
4947 ndr_print_samr_ValidationBlob(ndr
, "pwd_history", &r
->pwd_history
[cntr_pwd_history_1
]);
4957 static enum ndr_err_code
ndr_push_samr_ValidatePasswordRepCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_ValidatePasswordRepCtr
*r
)
4959 if (ndr_flags
& NDR_SCALARS
) {
4960 NDR_CHECK(ndr_push_align(ndr
, 8));
4961 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr
, NDR_SCALARS
, &r
->info
));
4962 NDR_CHECK(ndr_push_samr_ValidationStatus(ndr
, NDR_SCALARS
, r
->status
));
4964 if (ndr_flags
& NDR_BUFFERS
) {
4965 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr
, NDR_BUFFERS
, &r
->info
));
4967 return NDR_ERR_SUCCESS
;
4970 static enum ndr_err_code
ndr_pull_samr_ValidatePasswordRepCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_ValidatePasswordRepCtr
*r
)
4972 if (ndr_flags
& NDR_SCALARS
) {
4973 NDR_CHECK(ndr_pull_align(ndr
, 8));
4974 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr
, NDR_SCALARS
, &r
->info
));
4975 NDR_CHECK(ndr_pull_samr_ValidationStatus(ndr
, NDR_SCALARS
, &r
->status
));
4977 if (ndr_flags
& NDR_BUFFERS
) {
4978 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr
, NDR_BUFFERS
, &r
->info
));
4980 return NDR_ERR_SUCCESS
;
4983 _PUBLIC_
void ndr_print_samr_ValidatePasswordRepCtr(struct ndr_print
*ndr
, const char *name
, const struct samr_ValidatePasswordRepCtr
*r
)
4985 ndr_print_struct(ndr
, name
, "samr_ValidatePasswordRepCtr");
4987 ndr_print_samr_ValidatePasswordInfo(ndr
, "info", &r
->info
);
4988 ndr_print_samr_ValidationStatus(ndr
, "status", r
->status
);
4992 static enum ndr_err_code
ndr_push_samr_ValidatePasswordRep(struct ndr_push
*ndr
, int ndr_flags
, const union samr_ValidatePasswordRep
*r
)
4994 if (ndr_flags
& NDR_SCALARS
) {
4995 int level
= ndr_push_get_switch_value(ndr
, r
);
4996 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
4999 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr
, NDR_SCALARS
, &r
->ctr1
));
5003 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr
, NDR_SCALARS
, &r
->ctr2
));
5007 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr
, NDR_SCALARS
, &r
->ctr3
));
5011 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5014 if (ndr_flags
& NDR_BUFFERS
) {
5015 int level
= ndr_push_get_switch_value(ndr
, r
);
5018 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr
, NDR_BUFFERS
, &r
->ctr1
));
5022 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr
, NDR_BUFFERS
, &r
->ctr2
));
5026 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr
, NDR_BUFFERS
, &r
->ctr3
));
5030 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5033 return NDR_ERR_SUCCESS
;
5036 static enum ndr_err_code
ndr_pull_samr_ValidatePasswordRep(struct ndr_pull
*ndr
, int ndr_flags
, union samr_ValidatePasswordRep
*r
)
5040 level
= ndr_pull_get_switch_value(ndr
, r
);
5041 if (ndr_flags
& NDR_SCALARS
) {
5042 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
5043 if (_level
!= level
) {
5044 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5048 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr
, NDR_SCALARS
, &r
->ctr1
));
5052 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr
, NDR_SCALARS
, &r
->ctr2
));
5056 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr
, NDR_SCALARS
, &r
->ctr3
));
5060 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5063 if (ndr_flags
& NDR_BUFFERS
) {
5066 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr
, NDR_BUFFERS
, &r
->ctr1
));
5070 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr
, NDR_BUFFERS
, &r
->ctr2
));
5074 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr
, NDR_BUFFERS
, &r
->ctr3
));
5078 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5081 return NDR_ERR_SUCCESS
;
5084 _PUBLIC_
void ndr_print_samr_ValidatePasswordRep(struct ndr_print
*ndr
, const char *name
, const union samr_ValidatePasswordRep
*r
)
5087 level
= ndr_print_get_switch_value(ndr
, r
);
5088 ndr_print_union(ndr
, name
, level
, "samr_ValidatePasswordRep");
5091 ndr_print_samr_ValidatePasswordRepCtr(ndr
, "ctr1", &r
->ctr1
);
5095 ndr_print_samr_ValidatePasswordRepCtr(ndr
, "ctr2", &r
->ctr2
);
5099 ndr_print_samr_ValidatePasswordRepCtr(ndr
, "ctr3", &r
->ctr3
);
5103 ndr_print_bad_level(ndr
, name
, level
);
5107 static enum ndr_err_code
ndr_push_samr_ValidatePasswordReq3(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_ValidatePasswordReq3
*r
)
5109 if (ndr_flags
& NDR_SCALARS
) {
5110 NDR_CHECK(ndr_push_align(ndr
, 8));
5111 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr
, NDR_SCALARS
, &r
->info
));
5112 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->password
));
5113 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->account
));
5114 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr
, NDR_SCALARS
, &r
->hash
));
5115 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->pwd_must_change_at_next_logon
));
5116 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->clear_lockout
));
5118 if (ndr_flags
& NDR_BUFFERS
) {
5119 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5120 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->password
));
5121 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->account
));
5122 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr
, NDR_BUFFERS
, &r
->hash
));
5124 return NDR_ERR_SUCCESS
;
5127 static enum ndr_err_code
ndr_pull_samr_ValidatePasswordReq3(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_ValidatePasswordReq3
*r
)
5129 if (ndr_flags
& NDR_SCALARS
) {
5130 NDR_CHECK(ndr_pull_align(ndr
, 8));
5131 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr
, NDR_SCALARS
, &r
->info
));
5132 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->password
));
5133 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->account
));
5134 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr
, NDR_SCALARS
, &r
->hash
));
5135 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->pwd_must_change_at_next_logon
));
5136 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->clear_lockout
));
5138 if (ndr_flags
& NDR_BUFFERS
) {
5139 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5140 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->password
));
5141 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->account
));
5142 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr
, NDR_BUFFERS
, &r
->hash
));
5144 return NDR_ERR_SUCCESS
;
5147 _PUBLIC_
void ndr_print_samr_ValidatePasswordReq3(struct ndr_print
*ndr
, const char *name
, const struct samr_ValidatePasswordReq3
*r
)
5149 ndr_print_struct(ndr
, name
, "samr_ValidatePasswordReq3");
5151 ndr_print_samr_ValidatePasswordInfo(ndr
, "info", &r
->info
);
5152 ndr_print_lsa_StringLarge(ndr
, "password", &r
->password
);
5153 ndr_print_lsa_StringLarge(ndr
, "account", &r
->account
);
5154 ndr_print_samr_ValidationBlob(ndr
, "hash", &r
->hash
);
5155 ndr_print_uint8(ndr
, "pwd_must_change_at_next_logon", r
->pwd_must_change_at_next_logon
);
5156 ndr_print_uint8(ndr
, "clear_lockout", r
->clear_lockout
);
5160 static enum ndr_err_code
ndr_push_samr_ValidatePasswordReq2(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_ValidatePasswordReq2
*r
)
5162 if (ndr_flags
& NDR_SCALARS
) {
5163 NDR_CHECK(ndr_push_align(ndr
, 8));
5164 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr
, NDR_SCALARS
, &r
->info
));
5165 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->password
));
5166 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->account
));
5167 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr
, NDR_SCALARS
, &r
->hash
));
5168 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_matched
));
5170 if (ndr_flags
& NDR_BUFFERS
) {
5171 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5172 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->password
));
5173 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->account
));
5174 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr
, NDR_BUFFERS
, &r
->hash
));
5176 return NDR_ERR_SUCCESS
;
5179 static enum ndr_err_code
ndr_pull_samr_ValidatePasswordReq2(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_ValidatePasswordReq2
*r
)
5181 if (ndr_flags
& NDR_SCALARS
) {
5182 NDR_CHECK(ndr_pull_align(ndr
, 8));
5183 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr
, NDR_SCALARS
, &r
->info
));
5184 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->password
));
5185 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->account
));
5186 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr
, NDR_SCALARS
, &r
->hash
));
5187 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_matched
));
5189 if (ndr_flags
& NDR_BUFFERS
) {
5190 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5191 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->password
));
5192 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->account
));
5193 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr
, NDR_BUFFERS
, &r
->hash
));
5195 return NDR_ERR_SUCCESS
;
5198 _PUBLIC_
void ndr_print_samr_ValidatePasswordReq2(struct ndr_print
*ndr
, const char *name
, const struct samr_ValidatePasswordReq2
*r
)
5200 ndr_print_struct(ndr
, name
, "samr_ValidatePasswordReq2");
5202 ndr_print_samr_ValidatePasswordInfo(ndr
, "info", &r
->info
);
5203 ndr_print_lsa_StringLarge(ndr
, "password", &r
->password
);
5204 ndr_print_lsa_StringLarge(ndr
, "account", &r
->account
);
5205 ndr_print_samr_ValidationBlob(ndr
, "hash", &r
->hash
);
5206 ndr_print_uint8(ndr
, "password_matched", r
->password_matched
);
5210 static enum ndr_err_code
ndr_push_samr_ValidatePasswordReq1(struct ndr_push
*ndr
, int ndr_flags
, const struct samr_ValidatePasswordReq1
*r
)
5212 if (ndr_flags
& NDR_SCALARS
) {
5213 NDR_CHECK(ndr_push_align(ndr
, 8));
5214 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr
, NDR_SCALARS
, &r
->info
));
5215 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_matched
));
5217 if (ndr_flags
& NDR_BUFFERS
) {
5218 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5220 return NDR_ERR_SUCCESS
;
5223 static enum ndr_err_code
ndr_pull_samr_ValidatePasswordReq1(struct ndr_pull
*ndr
, int ndr_flags
, struct samr_ValidatePasswordReq1
*r
)
5225 if (ndr_flags
& NDR_SCALARS
) {
5226 NDR_CHECK(ndr_pull_align(ndr
, 8));
5227 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr
, NDR_SCALARS
, &r
->info
));
5228 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_matched
));
5230 if (ndr_flags
& NDR_BUFFERS
) {
5231 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5233 return NDR_ERR_SUCCESS
;
5236 _PUBLIC_
void ndr_print_samr_ValidatePasswordReq1(struct ndr_print
*ndr
, const char *name
, const struct samr_ValidatePasswordReq1
*r
)
5238 ndr_print_struct(ndr
, name
, "samr_ValidatePasswordReq1");
5240 ndr_print_samr_ValidatePasswordInfo(ndr
, "info", &r
->info
);
5241 ndr_print_uint8(ndr
, "password_matched", r
->password_matched
);
5245 static enum ndr_err_code
ndr_push_samr_ValidatePasswordReq(struct ndr_push
*ndr
, int ndr_flags
, const union samr_ValidatePasswordReq
*r
)
5247 if (ndr_flags
& NDR_SCALARS
) {
5248 int level
= ndr_push_get_switch_value(ndr
, r
);
5249 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
5252 NDR_CHECK(ndr_push_samr_ValidatePasswordReq1(ndr
, NDR_SCALARS
, &r
->req1
));
5256 NDR_CHECK(ndr_push_samr_ValidatePasswordReq2(ndr
, NDR_SCALARS
, &r
->req2
));
5260 NDR_CHECK(ndr_push_samr_ValidatePasswordReq3(ndr
, NDR_SCALARS
, &r
->req3
));
5264 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5267 if (ndr_flags
& NDR_BUFFERS
) {
5268 int level
= ndr_push_get_switch_value(ndr
, r
);
5271 NDR_CHECK(ndr_push_samr_ValidatePasswordReq1(ndr
, NDR_BUFFERS
, &r
->req1
));
5275 NDR_CHECK(ndr_push_samr_ValidatePasswordReq2(ndr
, NDR_BUFFERS
, &r
->req2
));
5279 NDR_CHECK(ndr_push_samr_ValidatePasswordReq3(ndr
, NDR_BUFFERS
, &r
->req3
));
5283 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5286 return NDR_ERR_SUCCESS
;
5289 static enum ndr_err_code
ndr_pull_samr_ValidatePasswordReq(struct ndr_pull
*ndr
, int ndr_flags
, union samr_ValidatePasswordReq
*r
)
5293 level
= ndr_pull_get_switch_value(ndr
, r
);
5294 if (ndr_flags
& NDR_SCALARS
) {
5295 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
5296 if (_level
!= level
) {
5297 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5301 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq1(ndr
, NDR_SCALARS
, &r
->req1
));
5305 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq2(ndr
, NDR_SCALARS
, &r
->req2
));
5309 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq3(ndr
, NDR_SCALARS
, &r
->req3
));
5313 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5316 if (ndr_flags
& NDR_BUFFERS
) {
5319 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq1(ndr
, NDR_BUFFERS
, &r
->req1
));
5323 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq2(ndr
, NDR_BUFFERS
, &r
->req2
));
5327 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq3(ndr
, NDR_BUFFERS
, &r
->req3
));
5331 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5334 return NDR_ERR_SUCCESS
;
5337 _PUBLIC_
void ndr_print_samr_ValidatePasswordReq(struct ndr_print
*ndr
, const char *name
, const union samr_ValidatePasswordReq
*r
)
5340 level
= ndr_print_get_switch_value(ndr
, r
);
5341 ndr_print_union(ndr
, name
, level
, "samr_ValidatePasswordReq");
5344 ndr_print_samr_ValidatePasswordReq1(ndr
, "req1", &r
->req1
);
5348 ndr_print_samr_ValidatePasswordReq2(ndr
, "req2", &r
->req2
);
5352 ndr_print_samr_ValidatePasswordReq3(ndr
, "req3", &r
->req3
);
5356 ndr_print_bad_level(ndr
, name
, level
);
5360 static enum ndr_err_code
ndr_push_samr_Connect(struct ndr_push
*ndr
, int flags
, const struct samr_Connect
*r
)
5362 if (flags
& NDR_IN
) {
5363 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
5364 if (r
->in
.system_name
) {
5365 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, *r
->in
.system_name
));
5367 NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
5369 if (flags
& NDR_OUT
) {
5370 if (r
->out
.connect_handle
== NULL
) {
5371 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5373 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.connect_handle
));
5374 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
5376 return NDR_ERR_SUCCESS
;
5379 static enum ndr_err_code
ndr_pull_samr_Connect(struct ndr_pull
*ndr
, int flags
, struct samr_Connect
*r
)
5381 uint32_t _ptr_system_name
;
5382 TALLOC_CTX
*_mem_save_system_name_0
;
5383 TALLOC_CTX
*_mem_save_connect_handle_0
;
5384 if (flags
& NDR_IN
) {
5385 ZERO_STRUCT(r
->out
);
5387 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
5388 if (_ptr_system_name
) {
5389 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
5391 r
->in
.system_name
= NULL
;
5393 if (r
->in
.system_name
) {
5394 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5395 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
5396 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, r
->in
.system_name
));
5397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
5399 NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
5400 NDR_PULL_ALLOC(ndr
, r
->out
.connect_handle
);
5401 ZERO_STRUCTP(r
->out
.connect_handle
);
5403 if (flags
& NDR_OUT
) {
5404 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5405 NDR_PULL_ALLOC(ndr
, r
->out
.connect_handle
);
5407 _mem_save_connect_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5408 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.connect_handle
, LIBNDR_FLAG_REF_ALLOC
);
5409 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.connect_handle
));
5410 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connect_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
5411 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
5413 return NDR_ERR_SUCCESS
;
5416 _PUBLIC_
void ndr_print_samr_Connect(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_Connect
*r
)
5418 ndr_print_struct(ndr
, name
, "samr_Connect");
5420 if (flags
& NDR_SET_VALUES
) {
5421 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
5423 if (flags
& NDR_IN
) {
5424 ndr_print_struct(ndr
, "in", "samr_Connect");
5426 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
5428 if (r
->in
.system_name
) {
5429 ndr_print_uint16(ndr
, "system_name", *r
->in
.system_name
);
5432 ndr_print_samr_ConnectAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
5435 if (flags
& NDR_OUT
) {
5436 ndr_print_struct(ndr
, "out", "samr_Connect");
5438 ndr_print_ptr(ndr
, "connect_handle", r
->out
.connect_handle
);
5440 ndr_print_policy_handle(ndr
, "connect_handle", r
->out
.connect_handle
);
5442 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
5448 _PUBLIC_
enum ndr_err_code
ndr_push_samr_Close(struct ndr_push
*ndr
, int flags
, const struct samr_Close
*r
)
5450 if (flags
& NDR_IN
) {
5451 if (r
->in
.handle
== NULL
) {
5452 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5454 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
5456 if (flags
& NDR_OUT
) {
5457 if (r
->out
.handle
== NULL
) {
5458 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5460 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
5461 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
5463 return NDR_ERR_SUCCESS
;
5466 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_Close(struct ndr_pull
*ndr
, int flags
, struct samr_Close
*r
)
5468 TALLOC_CTX
*_mem_save_handle_0
;
5469 if (flags
& NDR_IN
) {
5470 ZERO_STRUCT(r
->out
);
5472 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5473 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
5475 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5476 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
5477 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
5478 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
5479 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
5480 *r
->out
.handle
= *r
->in
.handle
;
5482 if (flags
& NDR_OUT
) {
5483 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5484 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
5486 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5487 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
5488 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
5489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
5490 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
5492 return NDR_ERR_SUCCESS
;
5495 _PUBLIC_
void ndr_print_samr_Close(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_Close
*r
)
5497 ndr_print_struct(ndr
, name
, "samr_Close");
5499 if (flags
& NDR_SET_VALUES
) {
5500 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
5502 if (flags
& NDR_IN
) {
5503 ndr_print_struct(ndr
, "in", "samr_Close");
5505 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
5507 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
5511 if (flags
& NDR_OUT
) {
5512 ndr_print_struct(ndr
, "out", "samr_Close");
5514 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
5516 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
5518 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
5524 static enum ndr_err_code
ndr_push_samr_SetSecurity(struct ndr_push
*ndr
, int flags
, const struct samr_SetSecurity
*r
)
5526 if (flags
& NDR_IN
) {
5527 if (r
->in
.handle
== NULL
) {
5528 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5530 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
5531 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
5532 if (r
->in
.sdbuf
== NULL
) {
5533 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5535 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sdbuf
));
5537 if (flags
& NDR_OUT
) {
5538 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
5540 return NDR_ERR_SUCCESS
;
5543 static enum ndr_err_code
ndr_pull_samr_SetSecurity(struct ndr_pull
*ndr
, int flags
, struct samr_SetSecurity
*r
)
5545 TALLOC_CTX
*_mem_save_handle_0
;
5546 TALLOC_CTX
*_mem_save_sdbuf_0
;
5547 if (flags
& NDR_IN
) {
5548 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5549 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
5551 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5552 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
5553 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
5554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
5555 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
5556 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5557 NDR_PULL_ALLOC(ndr
, r
->in
.sdbuf
);
5559 _mem_save_sdbuf_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5560 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sdbuf
, LIBNDR_FLAG_REF_ALLOC
);
5561 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sdbuf
));
5562 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sdbuf_0
, LIBNDR_FLAG_REF_ALLOC
);
5564 if (flags
& NDR_OUT
) {
5565 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
5567 return NDR_ERR_SUCCESS
;
5570 _PUBLIC_
void ndr_print_samr_SetSecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_SetSecurity
*r
)
5572 ndr_print_struct(ndr
, name
, "samr_SetSecurity");
5574 if (flags
& NDR_SET_VALUES
) {
5575 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
5577 if (flags
& NDR_IN
) {
5578 ndr_print_struct(ndr
, "in", "samr_SetSecurity");
5580 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
5582 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
5584 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
5585 ndr_print_ptr(ndr
, "sdbuf", r
->in
.sdbuf
);
5587 ndr_print_sec_desc_buf(ndr
, "sdbuf", r
->in
.sdbuf
);
5591 if (flags
& NDR_OUT
) {
5592 ndr_print_struct(ndr
, "out", "samr_SetSecurity");
5594 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
5600 static enum ndr_err_code
ndr_push_samr_QuerySecurity(struct ndr_push
*ndr
, int flags
, const struct samr_QuerySecurity
*r
)
5602 if (flags
& NDR_IN
) {
5603 if (r
->in
.handle
== NULL
) {
5604 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5606 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
5607 NDR_CHECK(ndr_push_security_secinfo(ndr
, NDR_SCALARS
, r
->in
.sec_info
));
5609 if (flags
& NDR_OUT
) {
5610 if (r
->out
.sdbuf
== NULL
) {
5611 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5613 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.sdbuf
));
5614 if (*r
->out
.sdbuf
) {
5615 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sdbuf
));
5617 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
5619 return NDR_ERR_SUCCESS
;
5622 static enum ndr_err_code
ndr_pull_samr_QuerySecurity(struct ndr_pull
*ndr
, int flags
, struct samr_QuerySecurity
*r
)
5624 uint32_t _ptr_sdbuf
;
5625 TALLOC_CTX
*_mem_save_handle_0
;
5626 TALLOC_CTX
*_mem_save_sdbuf_0
;
5627 TALLOC_CTX
*_mem_save_sdbuf_1
;
5628 if (flags
& NDR_IN
) {
5629 ZERO_STRUCT(r
->out
);
5631 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5632 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
5634 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5635 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
5636 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
5637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
5638 NDR_CHECK(ndr_pull_security_secinfo(ndr
, NDR_SCALARS
, &r
->in
.sec_info
));
5639 NDR_PULL_ALLOC(ndr
, r
->out
.sdbuf
);
5640 ZERO_STRUCTP(r
->out
.sdbuf
);
5642 if (flags
& NDR_OUT
) {
5643 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5644 NDR_PULL_ALLOC(ndr
, r
->out
.sdbuf
);
5646 _mem_save_sdbuf_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5647 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sdbuf
, LIBNDR_FLAG_REF_ALLOC
);
5648 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sdbuf
));
5650 NDR_PULL_ALLOC(ndr
, *r
->out
.sdbuf
);
5652 *r
->out
.sdbuf
= NULL
;
5654 if (*r
->out
.sdbuf
) {
5655 _mem_save_sdbuf_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5656 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.sdbuf
, 0);
5657 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sdbuf
));
5658 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sdbuf_1
, 0);
5660 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sdbuf_0
, LIBNDR_FLAG_REF_ALLOC
);
5661 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
5663 return NDR_ERR_SUCCESS
;
5666 _PUBLIC_
void ndr_print_samr_QuerySecurity(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QuerySecurity
*r
)
5668 ndr_print_struct(ndr
, name
, "samr_QuerySecurity");
5670 if (flags
& NDR_SET_VALUES
) {
5671 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
5673 if (flags
& NDR_IN
) {
5674 ndr_print_struct(ndr
, "in", "samr_QuerySecurity");
5676 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
5678 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
5680 ndr_print_security_secinfo(ndr
, "sec_info", r
->in
.sec_info
);
5683 if (flags
& NDR_OUT
) {
5684 ndr_print_struct(ndr
, "out", "samr_QuerySecurity");
5686 ndr_print_ptr(ndr
, "sdbuf", r
->out
.sdbuf
);
5688 ndr_print_ptr(ndr
, "sdbuf", *r
->out
.sdbuf
);
5690 if (*r
->out
.sdbuf
) {
5691 ndr_print_sec_desc_buf(ndr
, "sdbuf", *r
->out
.sdbuf
);
5695 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
5701 static enum ndr_err_code
ndr_push_samr_Shutdown(struct ndr_push
*ndr
, int flags
, const struct samr_Shutdown
*r
)
5703 if (flags
& NDR_IN
) {
5704 if (r
->in
.connect_handle
== NULL
) {
5705 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5707 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.connect_handle
));
5709 if (flags
& NDR_OUT
) {
5710 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
5712 return NDR_ERR_SUCCESS
;
5715 static enum ndr_err_code
ndr_pull_samr_Shutdown(struct ndr_pull
*ndr
, int flags
, struct samr_Shutdown
*r
)
5717 TALLOC_CTX
*_mem_save_connect_handle_0
;
5718 if (flags
& NDR_IN
) {
5719 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5720 NDR_PULL_ALLOC(ndr
, r
->in
.connect_handle
);
5722 _mem_save_connect_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5723 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.connect_handle
, LIBNDR_FLAG_REF_ALLOC
);
5724 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.connect_handle
));
5725 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connect_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
5727 if (flags
& NDR_OUT
) {
5728 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
5730 return NDR_ERR_SUCCESS
;
5733 _PUBLIC_
void ndr_print_samr_Shutdown(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_Shutdown
*r
)
5735 ndr_print_struct(ndr
, name
, "samr_Shutdown");
5737 if (flags
& NDR_SET_VALUES
) {
5738 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
5740 if (flags
& NDR_IN
) {
5741 ndr_print_struct(ndr
, "in", "samr_Shutdown");
5743 ndr_print_ptr(ndr
, "connect_handle", r
->in
.connect_handle
);
5745 ndr_print_policy_handle(ndr
, "connect_handle", r
->in
.connect_handle
);
5749 if (flags
& NDR_OUT
) {
5750 ndr_print_struct(ndr
, "out", "samr_Shutdown");
5752 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
5758 static enum ndr_err_code
ndr_push_samr_LookupDomain(struct ndr_push
*ndr
, int flags
, const struct samr_LookupDomain
*r
)
5760 if (flags
& NDR_IN
) {
5761 if (r
->in
.connect_handle
== NULL
) {
5762 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5764 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.connect_handle
));
5765 if (r
->in
.domain_name
== NULL
) {
5766 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5768 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_name
));
5770 if (flags
& NDR_OUT
) {
5771 if (r
->out
.sid
== NULL
) {
5772 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5774 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.sid
));
5776 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sid
));
5778 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
5780 return NDR_ERR_SUCCESS
;
5783 static enum ndr_err_code
ndr_pull_samr_LookupDomain(struct ndr_pull
*ndr
, int flags
, struct samr_LookupDomain
*r
)
5786 TALLOC_CTX
*_mem_save_connect_handle_0
;
5787 TALLOC_CTX
*_mem_save_domain_name_0
;
5788 TALLOC_CTX
*_mem_save_sid_0
;
5789 TALLOC_CTX
*_mem_save_sid_1
;
5790 if (flags
& NDR_IN
) {
5791 ZERO_STRUCT(r
->out
);
5793 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5794 NDR_PULL_ALLOC(ndr
, r
->in
.connect_handle
);
5796 _mem_save_connect_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5797 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.connect_handle
, LIBNDR_FLAG_REF_ALLOC
);
5798 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.connect_handle
));
5799 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connect_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
5800 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5801 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
5803 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5804 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, LIBNDR_FLAG_REF_ALLOC
);
5805 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_name
));
5806 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, LIBNDR_FLAG_REF_ALLOC
);
5807 NDR_PULL_ALLOC(ndr
, r
->out
.sid
);
5808 ZERO_STRUCTP(r
->out
.sid
);
5810 if (flags
& NDR_OUT
) {
5811 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5812 NDR_PULL_ALLOC(ndr
, r
->out
.sid
);
5814 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5815 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sid
, LIBNDR_FLAG_REF_ALLOC
);
5816 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5818 NDR_PULL_ALLOC(ndr
, *r
->out
.sid
);
5823 _mem_save_sid_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5824 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.sid
, 0);
5825 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sid
));
5826 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_1
, 0);
5828 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, LIBNDR_FLAG_REF_ALLOC
);
5829 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
5831 return NDR_ERR_SUCCESS
;
5834 _PUBLIC_
void ndr_print_samr_LookupDomain(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_LookupDomain
*r
)
5836 ndr_print_struct(ndr
, name
, "samr_LookupDomain");
5838 if (flags
& NDR_SET_VALUES
) {
5839 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
5841 if (flags
& NDR_IN
) {
5842 ndr_print_struct(ndr
, "in", "samr_LookupDomain");
5844 ndr_print_ptr(ndr
, "connect_handle", r
->in
.connect_handle
);
5846 ndr_print_policy_handle(ndr
, "connect_handle", r
->in
.connect_handle
);
5848 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
5850 ndr_print_lsa_String(ndr
, "domain_name", r
->in
.domain_name
);
5854 if (flags
& NDR_OUT
) {
5855 ndr_print_struct(ndr
, "out", "samr_LookupDomain");
5857 ndr_print_ptr(ndr
, "sid", r
->out
.sid
);
5859 ndr_print_ptr(ndr
, "sid", *r
->out
.sid
);
5862 ndr_print_dom_sid2(ndr
, "sid", *r
->out
.sid
);
5866 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
5872 static enum ndr_err_code
ndr_push_samr_EnumDomains(struct ndr_push
*ndr
, int flags
, const struct samr_EnumDomains
*r
)
5874 if (flags
& NDR_IN
) {
5875 if (r
->in
.connect_handle
== NULL
) {
5876 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5878 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.connect_handle
));
5879 if (r
->in
.resume_handle
== NULL
) {
5880 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.resume_handle
));
5883 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buf_size
));
5885 if (flags
& NDR_OUT
) {
5886 if (r
->out
.resume_handle
== NULL
) {
5887 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5889 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.resume_handle
));
5890 if (r
->out
.sam
== NULL
) {
5891 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5893 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.sam
));
5895 NDR_CHECK(ndr_push_samr_SamArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sam
));
5897 if (r
->out
.num_entries
== NULL
) {
5898 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
5900 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_entries
));
5901 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
5903 return NDR_ERR_SUCCESS
;
5906 static enum ndr_err_code
ndr_pull_samr_EnumDomains(struct ndr_pull
*ndr
, int flags
, struct samr_EnumDomains
*r
)
5909 TALLOC_CTX
*_mem_save_connect_handle_0
;
5910 TALLOC_CTX
*_mem_save_resume_handle_0
;
5911 TALLOC_CTX
*_mem_save_sam_0
;
5912 TALLOC_CTX
*_mem_save_sam_1
;
5913 TALLOC_CTX
*_mem_save_num_entries_0
;
5914 if (flags
& NDR_IN
) {
5915 ZERO_STRUCT(r
->out
);
5917 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5918 NDR_PULL_ALLOC(ndr
, r
->in
.connect_handle
);
5920 _mem_save_connect_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5921 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.connect_handle
, LIBNDR_FLAG_REF_ALLOC
);
5922 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.connect_handle
));
5923 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connect_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
5924 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5925 NDR_PULL_ALLOC(ndr
, r
->in
.resume_handle
);
5927 _mem_save_resume_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5928 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.resume_handle
, LIBNDR_FLAG_REF_ALLOC
);
5929 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.resume_handle
));
5930 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_resume_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
5931 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buf_size
));
5932 NDR_PULL_ALLOC(ndr
, r
->out
.resume_handle
);
5933 *r
->out
.resume_handle
= *r
->in
.resume_handle
;
5934 NDR_PULL_ALLOC(ndr
, r
->out
.sam
);
5935 ZERO_STRUCTP(r
->out
.sam
);
5936 NDR_PULL_ALLOC(ndr
, r
->out
.num_entries
);
5937 ZERO_STRUCTP(r
->out
.num_entries
);
5939 if (flags
& NDR_OUT
) {
5940 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5941 NDR_PULL_ALLOC(ndr
, r
->out
.resume_handle
);
5943 _mem_save_resume_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5944 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.resume_handle
, LIBNDR_FLAG_REF_ALLOC
);
5945 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.resume_handle
));
5946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_resume_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
5947 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5948 NDR_PULL_ALLOC(ndr
, r
->out
.sam
);
5950 _mem_save_sam_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5951 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sam
, LIBNDR_FLAG_REF_ALLOC
);
5952 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam
));
5954 NDR_PULL_ALLOC(ndr
, *r
->out
.sam
);
5959 _mem_save_sam_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5960 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.sam
, 0);
5961 NDR_CHECK(ndr_pull_samr_SamArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sam
));
5962 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam_1
, 0);
5964 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam_0
, LIBNDR_FLAG_REF_ALLOC
);
5965 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
5966 NDR_PULL_ALLOC(ndr
, r
->out
.num_entries
);
5968 _mem_save_num_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5969 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_entries
, LIBNDR_FLAG_REF_ALLOC
);
5970 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_entries
));
5971 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
5972 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
5974 return NDR_ERR_SUCCESS
;
5977 _PUBLIC_
void ndr_print_samr_EnumDomains(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_EnumDomains
*r
)
5979 ndr_print_struct(ndr
, name
, "samr_EnumDomains");
5981 if (flags
& NDR_SET_VALUES
) {
5982 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
5984 if (flags
& NDR_IN
) {
5985 ndr_print_struct(ndr
, "in", "samr_EnumDomains");
5987 ndr_print_ptr(ndr
, "connect_handle", r
->in
.connect_handle
);
5989 ndr_print_policy_handle(ndr
, "connect_handle", r
->in
.connect_handle
);
5991 ndr_print_ptr(ndr
, "resume_handle", r
->in
.resume_handle
);
5993 ndr_print_uint32(ndr
, "resume_handle", *r
->in
.resume_handle
);
5995 ndr_print_uint32(ndr
, "buf_size", r
->in
.buf_size
);
5998 if (flags
& NDR_OUT
) {
5999 ndr_print_struct(ndr
, "out", "samr_EnumDomains");
6001 ndr_print_ptr(ndr
, "resume_handle", r
->out
.resume_handle
);
6003 ndr_print_uint32(ndr
, "resume_handle", *r
->out
.resume_handle
);
6005 ndr_print_ptr(ndr
, "sam", r
->out
.sam
);
6007 ndr_print_ptr(ndr
, "sam", *r
->out
.sam
);
6010 ndr_print_samr_SamArray(ndr
, "sam", *r
->out
.sam
);
6014 ndr_print_ptr(ndr
, "num_entries", r
->out
.num_entries
);
6016 ndr_print_uint32(ndr
, "num_entries", *r
->out
.num_entries
);
6018 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
6024 _PUBLIC_
enum ndr_err_code
ndr_push_samr_OpenDomain(struct ndr_push
*ndr
, int flags
, const struct samr_OpenDomain
*r
)
6026 if (flags
& NDR_IN
) {
6027 if (r
->in
.connect_handle
== NULL
) {
6028 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6030 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.connect_handle
));
6031 NDR_CHECK(ndr_push_samr_DomainAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
6032 if (r
->in
.sid
== NULL
) {
6033 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6035 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sid
));
6037 if (flags
& NDR_OUT
) {
6038 if (r
->out
.domain_handle
== NULL
) {
6039 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6041 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.domain_handle
));
6042 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
6044 return NDR_ERR_SUCCESS
;
6047 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_OpenDomain(struct ndr_pull
*ndr
, int flags
, struct samr_OpenDomain
*r
)
6049 TALLOC_CTX
*_mem_save_connect_handle_0
;
6050 TALLOC_CTX
*_mem_save_sid_0
;
6051 TALLOC_CTX
*_mem_save_domain_handle_0
;
6052 if (flags
& NDR_IN
) {
6053 ZERO_STRUCT(r
->out
);
6055 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6056 NDR_PULL_ALLOC(ndr
, r
->in
.connect_handle
);
6058 _mem_save_connect_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6059 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.connect_handle
, LIBNDR_FLAG_REF_ALLOC
);
6060 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.connect_handle
));
6061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connect_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6062 NDR_CHECK(ndr_pull_samr_DomainAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
6063 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6064 NDR_PULL_ALLOC(ndr
, r
->in
.sid
);
6066 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6067 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sid
, LIBNDR_FLAG_REF_ALLOC
);
6068 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sid
));
6069 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, LIBNDR_FLAG_REF_ALLOC
);
6070 NDR_PULL_ALLOC(ndr
, r
->out
.domain_handle
);
6071 ZERO_STRUCTP(r
->out
.domain_handle
);
6073 if (flags
& NDR_OUT
) {
6074 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6075 NDR_PULL_ALLOC(ndr
, r
->out
.domain_handle
);
6077 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6078 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
6079 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.domain_handle
));
6080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6081 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
6083 return NDR_ERR_SUCCESS
;
6086 _PUBLIC_
void ndr_print_samr_OpenDomain(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_OpenDomain
*r
)
6088 ndr_print_struct(ndr
, name
, "samr_OpenDomain");
6090 if (flags
& NDR_SET_VALUES
) {
6091 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
6093 if (flags
& NDR_IN
) {
6094 ndr_print_struct(ndr
, "in", "samr_OpenDomain");
6096 ndr_print_ptr(ndr
, "connect_handle", r
->in
.connect_handle
);
6098 ndr_print_policy_handle(ndr
, "connect_handle", r
->in
.connect_handle
);
6100 ndr_print_samr_DomainAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
6101 ndr_print_ptr(ndr
, "sid", r
->in
.sid
);
6103 ndr_print_dom_sid2(ndr
, "sid", r
->in
.sid
);
6107 if (flags
& NDR_OUT
) {
6108 ndr_print_struct(ndr
, "out", "samr_OpenDomain");
6110 ndr_print_ptr(ndr
, "domain_handle", r
->out
.domain_handle
);
6112 ndr_print_policy_handle(ndr
, "domain_handle", r
->out
.domain_handle
);
6114 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
6120 static enum ndr_err_code
ndr_push_samr_QueryDomainInfo(struct ndr_push
*ndr
, int flags
, const struct samr_QueryDomainInfo
*r
)
6122 if (flags
& NDR_IN
) {
6123 if (r
->in
.domain_handle
== NULL
) {
6124 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6126 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6127 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
6129 if (flags
& NDR_OUT
) {
6130 if (r
->out
.info
== NULL
) {
6131 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6133 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
6135 NDR_CHECK(ndr_push_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
6136 NDR_CHECK(ndr_push_samr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
6138 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
6140 return NDR_ERR_SUCCESS
;
6143 static enum ndr_err_code
ndr_pull_samr_QueryDomainInfo(struct ndr_pull
*ndr
, int flags
, struct samr_QueryDomainInfo
*r
)
6146 TALLOC_CTX
*_mem_save_domain_handle_0
;
6147 TALLOC_CTX
*_mem_save_info_0
;
6148 TALLOC_CTX
*_mem_save_info_1
;
6149 if (flags
& NDR_IN
) {
6150 ZERO_STRUCT(r
->out
);
6152 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6153 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
6155 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6156 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
6157 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6158 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6159 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
6160 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
6161 ZERO_STRUCTP(r
->out
.info
);
6163 if (flags
& NDR_OUT
) {
6164 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6165 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
6167 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6168 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
6169 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
6171 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
6173 *r
->out
.info
= NULL
;
6176 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
6177 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
6178 NDR_CHECK(ndr_pull_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
6179 NDR_CHECK(ndr_pull_samr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
6180 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
6182 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
6183 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
6185 return NDR_ERR_SUCCESS
;
6188 _PUBLIC_
void ndr_print_samr_QueryDomainInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QueryDomainInfo
*r
)
6190 ndr_print_struct(ndr
, name
, "samr_QueryDomainInfo");
6192 if (flags
& NDR_SET_VALUES
) {
6193 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
6195 if (flags
& NDR_IN
) {
6196 ndr_print_struct(ndr
, "in", "samr_QueryDomainInfo");
6198 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
6200 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
6202 ndr_print_uint16(ndr
, "level", r
->in
.level
);
6205 if (flags
& NDR_OUT
) {
6206 ndr_print_struct(ndr
, "out", "samr_QueryDomainInfo");
6208 ndr_print_ptr(ndr
, "info", r
->out
.info
);
6210 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
6213 ndr_print_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
);
6214 ndr_print_samr_DomainInfo(ndr
, "info", *r
->out
.info
);
6218 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
6224 static enum ndr_err_code
ndr_push_samr_SetDomainInfo(struct ndr_push
*ndr
, int flags
, const struct samr_SetDomainInfo
*r
)
6226 if (flags
& NDR_IN
) {
6227 if (r
->in
.domain_handle
== NULL
) {
6228 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6230 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6231 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
6232 if (r
->in
.info
== NULL
) {
6233 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6235 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
));
6236 NDR_CHECK(ndr_push_samr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info
));
6238 if (flags
& NDR_OUT
) {
6239 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
6241 return NDR_ERR_SUCCESS
;
6244 static enum ndr_err_code
ndr_pull_samr_SetDomainInfo(struct ndr_pull
*ndr
, int flags
, struct samr_SetDomainInfo
*r
)
6246 TALLOC_CTX
*_mem_save_domain_handle_0
;
6247 TALLOC_CTX
*_mem_save_info_0
;
6248 if (flags
& NDR_IN
) {
6249 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6250 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
6252 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6253 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
6254 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6255 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6256 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
6257 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6258 NDR_PULL_ALLOC(ndr
, r
->in
.info
);
6260 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6261 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info
, LIBNDR_FLAG_REF_ALLOC
);
6262 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
));
6263 NDR_CHECK(ndr_pull_samr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info
));
6264 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
6266 if (flags
& NDR_OUT
) {
6267 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
6269 return NDR_ERR_SUCCESS
;
6272 _PUBLIC_
void ndr_print_samr_SetDomainInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_SetDomainInfo
*r
)
6274 ndr_print_struct(ndr
, name
, "samr_SetDomainInfo");
6276 if (flags
& NDR_SET_VALUES
) {
6277 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
6279 if (flags
& NDR_IN
) {
6280 ndr_print_struct(ndr
, "in", "samr_SetDomainInfo");
6282 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
6284 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
6286 ndr_print_uint16(ndr
, "level", r
->in
.level
);
6287 ndr_print_ptr(ndr
, "info", r
->in
.info
);
6289 ndr_print_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
);
6290 ndr_print_samr_DomainInfo(ndr
, "info", r
->in
.info
);
6294 if (flags
& NDR_OUT
) {
6295 ndr_print_struct(ndr
, "out", "samr_SetDomainInfo");
6297 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
6303 static enum ndr_err_code
ndr_push_samr_CreateDomainGroup(struct ndr_push
*ndr
, int flags
, const struct samr_CreateDomainGroup
*r
)
6305 if (flags
& NDR_IN
) {
6306 if (r
->in
.domain_handle
== NULL
) {
6307 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6309 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6310 if (r
->in
.name
== NULL
) {
6311 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6313 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
6314 NDR_CHECK(ndr_push_samr_GroupAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
6316 if (flags
& NDR_OUT
) {
6317 if (r
->out
.group_handle
== NULL
) {
6318 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6320 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.group_handle
));
6321 if (r
->out
.rid
== NULL
) {
6322 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
6325 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
6327 return NDR_ERR_SUCCESS
;
6330 static enum ndr_err_code
ndr_pull_samr_CreateDomainGroup(struct ndr_pull
*ndr
, int flags
, struct samr_CreateDomainGroup
*r
)
6332 TALLOC_CTX
*_mem_save_domain_handle_0
;
6333 TALLOC_CTX
*_mem_save_name_0
;
6334 TALLOC_CTX
*_mem_save_group_handle_0
;
6335 TALLOC_CTX
*_mem_save_rid_0
;
6336 if (flags
& NDR_IN
) {
6337 ZERO_STRUCT(r
->out
);
6339 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6340 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
6342 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6343 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
6344 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6345 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6346 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6347 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
6349 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6350 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
6351 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
6352 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
6353 NDR_CHECK(ndr_pull_samr_GroupAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
6354 NDR_PULL_ALLOC(ndr
, r
->out
.group_handle
);
6355 ZERO_STRUCTP(r
->out
.group_handle
);
6356 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
6357 ZERO_STRUCTP(r
->out
.rid
);
6359 if (flags
& NDR_OUT
) {
6360 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6361 NDR_PULL_ALLOC(ndr
, r
->out
.group_handle
);
6363 _mem_save_group_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6364 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.group_handle
, LIBNDR_FLAG_REF_ALLOC
);
6365 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.group_handle
));
6366 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6367 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6368 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
6370 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6371 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
6372 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
6373 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
6374 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
6376 return NDR_ERR_SUCCESS
;
6379 _PUBLIC_
void ndr_print_samr_CreateDomainGroup(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_CreateDomainGroup
*r
)
6381 ndr_print_struct(ndr
, name
, "samr_CreateDomainGroup");
6383 if (flags
& NDR_SET_VALUES
) {
6384 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
6386 if (flags
& NDR_IN
) {
6387 ndr_print_struct(ndr
, "in", "samr_CreateDomainGroup");
6389 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
6391 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
6393 ndr_print_ptr(ndr
, "name", r
->in
.name
);
6395 ndr_print_lsa_String(ndr
, "name", r
->in
.name
);
6397 ndr_print_samr_GroupAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
6400 if (flags
& NDR_OUT
) {
6401 ndr_print_struct(ndr
, "out", "samr_CreateDomainGroup");
6403 ndr_print_ptr(ndr
, "group_handle", r
->out
.group_handle
);
6405 ndr_print_policy_handle(ndr
, "group_handle", r
->out
.group_handle
);
6407 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
6409 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
6411 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
6417 static enum ndr_err_code
ndr_push_samr_EnumDomainGroups(struct ndr_push
*ndr
, int flags
, const struct samr_EnumDomainGroups
*r
)
6419 if (flags
& NDR_IN
) {
6420 if (r
->in
.domain_handle
== NULL
) {
6421 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6423 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6424 if (r
->in
.resume_handle
== NULL
) {
6425 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6427 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.resume_handle
));
6428 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.max_size
));
6430 if (flags
& NDR_OUT
) {
6431 if (r
->out
.resume_handle
== NULL
) {
6432 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.resume_handle
));
6435 if (r
->out
.sam
== NULL
) {
6436 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6438 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.sam
));
6440 NDR_CHECK(ndr_push_samr_SamArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sam
));
6442 if (r
->out
.num_entries
== NULL
) {
6443 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_entries
));
6446 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
6448 return NDR_ERR_SUCCESS
;
6451 static enum ndr_err_code
ndr_pull_samr_EnumDomainGroups(struct ndr_pull
*ndr
, int flags
, struct samr_EnumDomainGroups
*r
)
6454 TALLOC_CTX
*_mem_save_domain_handle_0
;
6455 TALLOC_CTX
*_mem_save_resume_handle_0
;
6456 TALLOC_CTX
*_mem_save_sam_0
;
6457 TALLOC_CTX
*_mem_save_sam_1
;
6458 TALLOC_CTX
*_mem_save_num_entries_0
;
6459 if (flags
& NDR_IN
) {
6460 ZERO_STRUCT(r
->out
);
6462 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6463 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
6465 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6466 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
6467 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6468 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6469 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6470 NDR_PULL_ALLOC(ndr
, r
->in
.resume_handle
);
6472 _mem_save_resume_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6473 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.resume_handle
, LIBNDR_FLAG_REF_ALLOC
);
6474 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.resume_handle
));
6475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_resume_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6476 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.max_size
));
6477 NDR_PULL_ALLOC(ndr
, r
->out
.resume_handle
);
6478 *r
->out
.resume_handle
= *r
->in
.resume_handle
;
6479 NDR_PULL_ALLOC(ndr
, r
->out
.sam
);
6480 ZERO_STRUCTP(r
->out
.sam
);
6481 NDR_PULL_ALLOC(ndr
, r
->out
.num_entries
);
6482 ZERO_STRUCTP(r
->out
.num_entries
);
6484 if (flags
& NDR_OUT
) {
6485 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6486 NDR_PULL_ALLOC(ndr
, r
->out
.resume_handle
);
6488 _mem_save_resume_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6489 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.resume_handle
, LIBNDR_FLAG_REF_ALLOC
);
6490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.resume_handle
));
6491 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_resume_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6492 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6493 NDR_PULL_ALLOC(ndr
, r
->out
.sam
);
6495 _mem_save_sam_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6496 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sam
, LIBNDR_FLAG_REF_ALLOC
);
6497 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam
));
6499 NDR_PULL_ALLOC(ndr
, *r
->out
.sam
);
6504 _mem_save_sam_1
= NDR_PULL_GET_MEM_CTX(ndr
);
6505 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.sam
, 0);
6506 NDR_CHECK(ndr_pull_samr_SamArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sam
));
6507 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam_1
, 0);
6509 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam_0
, LIBNDR_FLAG_REF_ALLOC
);
6510 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6511 NDR_PULL_ALLOC(ndr
, r
->out
.num_entries
);
6513 _mem_save_num_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6514 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_entries
, LIBNDR_FLAG_REF_ALLOC
);
6515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_entries
));
6516 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
6517 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
6519 return NDR_ERR_SUCCESS
;
6522 _PUBLIC_
void ndr_print_samr_EnumDomainGroups(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_EnumDomainGroups
*r
)
6524 ndr_print_struct(ndr
, name
, "samr_EnumDomainGroups");
6526 if (flags
& NDR_SET_VALUES
) {
6527 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
6529 if (flags
& NDR_IN
) {
6530 ndr_print_struct(ndr
, "in", "samr_EnumDomainGroups");
6532 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
6534 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
6536 ndr_print_ptr(ndr
, "resume_handle", r
->in
.resume_handle
);
6538 ndr_print_uint32(ndr
, "resume_handle", *r
->in
.resume_handle
);
6540 ndr_print_uint32(ndr
, "max_size", r
->in
.max_size
);
6543 if (flags
& NDR_OUT
) {
6544 ndr_print_struct(ndr
, "out", "samr_EnumDomainGroups");
6546 ndr_print_ptr(ndr
, "resume_handle", r
->out
.resume_handle
);
6548 ndr_print_uint32(ndr
, "resume_handle", *r
->out
.resume_handle
);
6550 ndr_print_ptr(ndr
, "sam", r
->out
.sam
);
6552 ndr_print_ptr(ndr
, "sam", *r
->out
.sam
);
6555 ndr_print_samr_SamArray(ndr
, "sam", *r
->out
.sam
);
6559 ndr_print_ptr(ndr
, "num_entries", r
->out
.num_entries
);
6561 ndr_print_uint32(ndr
, "num_entries", *r
->out
.num_entries
);
6563 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
6569 static enum ndr_err_code
ndr_push_samr_CreateUser(struct ndr_push
*ndr
, int flags
, const struct samr_CreateUser
*r
)
6571 if (flags
& NDR_IN
) {
6572 if (r
->in
.domain_handle
== NULL
) {
6573 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6575 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6576 if (r
->in
.account_name
== NULL
) {
6577 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6579 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.account_name
));
6580 NDR_CHECK(ndr_push_samr_UserAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
6582 if (flags
& NDR_OUT
) {
6583 if (r
->out
.user_handle
== NULL
) {
6584 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6586 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.user_handle
));
6587 if (r
->out
.rid
== NULL
) {
6588 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
6591 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
6593 return NDR_ERR_SUCCESS
;
6596 static enum ndr_err_code
ndr_pull_samr_CreateUser(struct ndr_pull
*ndr
, int flags
, struct samr_CreateUser
*r
)
6598 TALLOC_CTX
*_mem_save_domain_handle_0
;
6599 TALLOC_CTX
*_mem_save_account_name_0
;
6600 TALLOC_CTX
*_mem_save_user_handle_0
;
6601 TALLOC_CTX
*_mem_save_rid_0
;
6602 if (flags
& NDR_IN
) {
6603 ZERO_STRUCT(r
->out
);
6605 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6606 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
6608 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6609 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
6610 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6611 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6612 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6613 NDR_PULL_ALLOC(ndr
, r
->in
.account_name
);
6615 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6616 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.account_name
, LIBNDR_FLAG_REF_ALLOC
);
6617 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.account_name
));
6618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, LIBNDR_FLAG_REF_ALLOC
);
6619 NDR_CHECK(ndr_pull_samr_UserAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
6620 NDR_PULL_ALLOC(ndr
, r
->out
.user_handle
);
6621 ZERO_STRUCTP(r
->out
.user_handle
);
6622 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
6623 ZERO_STRUCTP(r
->out
.rid
);
6625 if (flags
& NDR_OUT
) {
6626 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6627 NDR_PULL_ALLOC(ndr
, r
->out
.user_handle
);
6629 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6630 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
6631 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.user_handle
));
6632 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6633 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6634 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
6636 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6637 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
6638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
6639 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
6640 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
6642 return NDR_ERR_SUCCESS
;
6645 _PUBLIC_
void ndr_print_samr_CreateUser(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_CreateUser
*r
)
6647 ndr_print_struct(ndr
, name
, "samr_CreateUser");
6649 if (flags
& NDR_SET_VALUES
) {
6650 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
6652 if (flags
& NDR_IN
) {
6653 ndr_print_struct(ndr
, "in", "samr_CreateUser");
6655 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
6657 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
6659 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
6661 ndr_print_lsa_String(ndr
, "account_name", r
->in
.account_name
);
6663 ndr_print_samr_UserAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
6666 if (flags
& NDR_OUT
) {
6667 ndr_print_struct(ndr
, "out", "samr_CreateUser");
6669 ndr_print_ptr(ndr
, "user_handle", r
->out
.user_handle
);
6671 ndr_print_policy_handle(ndr
, "user_handle", r
->out
.user_handle
);
6673 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
6675 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
6677 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
6683 static enum ndr_err_code
ndr_push_samr_EnumDomainUsers(struct ndr_push
*ndr
, int flags
, const struct samr_EnumDomainUsers
*r
)
6685 if (flags
& NDR_IN
) {
6686 if (r
->in
.domain_handle
== NULL
) {
6687 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6689 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6690 if (r
->in
.resume_handle
== NULL
) {
6691 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.resume_handle
));
6694 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->in
.acct_flags
));
6695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.max_size
));
6697 if (flags
& NDR_OUT
) {
6698 if (r
->out
.resume_handle
== NULL
) {
6699 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6701 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.resume_handle
));
6702 if (r
->out
.sam
== NULL
) {
6703 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6705 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.sam
));
6707 NDR_CHECK(ndr_push_samr_SamArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sam
));
6709 if (r
->out
.num_entries
== NULL
) {
6710 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_entries
));
6713 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
6715 return NDR_ERR_SUCCESS
;
6718 static enum ndr_err_code
ndr_pull_samr_EnumDomainUsers(struct ndr_pull
*ndr
, int flags
, struct samr_EnumDomainUsers
*r
)
6721 TALLOC_CTX
*_mem_save_domain_handle_0
;
6722 TALLOC_CTX
*_mem_save_resume_handle_0
;
6723 TALLOC_CTX
*_mem_save_sam_0
;
6724 TALLOC_CTX
*_mem_save_sam_1
;
6725 TALLOC_CTX
*_mem_save_num_entries_0
;
6726 if (flags
& NDR_IN
) {
6727 ZERO_STRUCT(r
->out
);
6729 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6730 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
6732 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6733 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
6734 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6736 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6737 NDR_PULL_ALLOC(ndr
, r
->in
.resume_handle
);
6739 _mem_save_resume_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6740 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.resume_handle
, LIBNDR_FLAG_REF_ALLOC
);
6741 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.resume_handle
));
6742 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_resume_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6743 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->in
.acct_flags
));
6744 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.max_size
));
6745 NDR_PULL_ALLOC(ndr
, r
->out
.resume_handle
);
6746 *r
->out
.resume_handle
= *r
->in
.resume_handle
;
6747 NDR_PULL_ALLOC(ndr
, r
->out
.sam
);
6748 ZERO_STRUCTP(r
->out
.sam
);
6749 NDR_PULL_ALLOC(ndr
, r
->out
.num_entries
);
6750 ZERO_STRUCTP(r
->out
.num_entries
);
6752 if (flags
& NDR_OUT
) {
6753 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6754 NDR_PULL_ALLOC(ndr
, r
->out
.resume_handle
);
6756 _mem_save_resume_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6757 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.resume_handle
, LIBNDR_FLAG_REF_ALLOC
);
6758 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.resume_handle
));
6759 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_resume_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6760 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6761 NDR_PULL_ALLOC(ndr
, r
->out
.sam
);
6763 _mem_save_sam_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6764 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sam
, LIBNDR_FLAG_REF_ALLOC
);
6765 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam
));
6767 NDR_PULL_ALLOC(ndr
, *r
->out
.sam
);
6772 _mem_save_sam_1
= NDR_PULL_GET_MEM_CTX(ndr
);
6773 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.sam
, 0);
6774 NDR_CHECK(ndr_pull_samr_SamArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sam
));
6775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam_1
, 0);
6777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam_0
, LIBNDR_FLAG_REF_ALLOC
);
6778 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6779 NDR_PULL_ALLOC(ndr
, r
->out
.num_entries
);
6781 _mem_save_num_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6782 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_entries
, LIBNDR_FLAG_REF_ALLOC
);
6783 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_entries
));
6784 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
6785 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
6787 return NDR_ERR_SUCCESS
;
6790 _PUBLIC_
void ndr_print_samr_EnumDomainUsers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_EnumDomainUsers
*r
)
6792 ndr_print_struct(ndr
, name
, "samr_EnumDomainUsers");
6794 if (flags
& NDR_SET_VALUES
) {
6795 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
6797 if (flags
& NDR_IN
) {
6798 ndr_print_struct(ndr
, "in", "samr_EnumDomainUsers");
6800 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
6802 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
6804 ndr_print_ptr(ndr
, "resume_handle", r
->in
.resume_handle
);
6806 ndr_print_uint32(ndr
, "resume_handle", *r
->in
.resume_handle
);
6808 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->in
.acct_flags
);
6809 ndr_print_uint32(ndr
, "max_size", r
->in
.max_size
);
6812 if (flags
& NDR_OUT
) {
6813 ndr_print_struct(ndr
, "out", "samr_EnumDomainUsers");
6815 ndr_print_ptr(ndr
, "resume_handle", r
->out
.resume_handle
);
6817 ndr_print_uint32(ndr
, "resume_handle", *r
->out
.resume_handle
);
6819 ndr_print_ptr(ndr
, "sam", r
->out
.sam
);
6821 ndr_print_ptr(ndr
, "sam", *r
->out
.sam
);
6824 ndr_print_samr_SamArray(ndr
, "sam", *r
->out
.sam
);
6828 ndr_print_ptr(ndr
, "num_entries", r
->out
.num_entries
);
6830 ndr_print_uint32(ndr
, "num_entries", *r
->out
.num_entries
);
6832 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
6838 static enum ndr_err_code
ndr_push_samr_CreateDomAlias(struct ndr_push
*ndr
, int flags
, const struct samr_CreateDomAlias
*r
)
6840 if (flags
& NDR_IN
) {
6841 if (r
->in
.domain_handle
== NULL
) {
6842 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6844 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6845 if (r
->in
.alias_name
== NULL
) {
6846 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6848 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.alias_name
));
6849 NDR_CHECK(ndr_push_samr_AliasAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
6851 if (flags
& NDR_OUT
) {
6852 if (r
->out
.alias_handle
== NULL
) {
6853 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6855 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.alias_handle
));
6856 if (r
->out
.rid
== NULL
) {
6857 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6859 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
6860 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
6862 return NDR_ERR_SUCCESS
;
6865 static enum ndr_err_code
ndr_pull_samr_CreateDomAlias(struct ndr_pull
*ndr
, int flags
, struct samr_CreateDomAlias
*r
)
6867 TALLOC_CTX
*_mem_save_domain_handle_0
;
6868 TALLOC_CTX
*_mem_save_alias_name_0
;
6869 TALLOC_CTX
*_mem_save_alias_handle_0
;
6870 TALLOC_CTX
*_mem_save_rid_0
;
6871 if (flags
& NDR_IN
) {
6872 ZERO_STRUCT(r
->out
);
6874 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6875 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
6877 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6878 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
6879 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6880 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6881 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6882 NDR_PULL_ALLOC(ndr
, r
->in
.alias_name
);
6884 _mem_save_alias_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6885 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.alias_name
, LIBNDR_FLAG_REF_ALLOC
);
6886 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.alias_name
));
6887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_name_0
, LIBNDR_FLAG_REF_ALLOC
);
6888 NDR_CHECK(ndr_pull_samr_AliasAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
6889 NDR_PULL_ALLOC(ndr
, r
->out
.alias_handle
);
6890 ZERO_STRUCTP(r
->out
.alias_handle
);
6891 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
6892 ZERO_STRUCTP(r
->out
.rid
);
6894 if (flags
& NDR_OUT
) {
6895 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6896 NDR_PULL_ALLOC(ndr
, r
->out
.alias_handle
);
6898 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6899 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
6900 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.alias_handle
));
6901 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
6902 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6903 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
6905 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6906 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
6907 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
6908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
6909 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
6911 return NDR_ERR_SUCCESS
;
6914 _PUBLIC_
void ndr_print_samr_CreateDomAlias(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_CreateDomAlias
*r
)
6916 ndr_print_struct(ndr
, name
, "samr_CreateDomAlias");
6918 if (flags
& NDR_SET_VALUES
) {
6919 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
6921 if (flags
& NDR_IN
) {
6922 ndr_print_struct(ndr
, "in", "samr_CreateDomAlias");
6924 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
6926 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
6928 ndr_print_ptr(ndr
, "alias_name", r
->in
.alias_name
);
6930 ndr_print_lsa_String(ndr
, "alias_name", r
->in
.alias_name
);
6932 ndr_print_samr_AliasAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
6935 if (flags
& NDR_OUT
) {
6936 ndr_print_struct(ndr
, "out", "samr_CreateDomAlias");
6938 ndr_print_ptr(ndr
, "alias_handle", r
->out
.alias_handle
);
6940 ndr_print_policy_handle(ndr
, "alias_handle", r
->out
.alias_handle
);
6942 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
6944 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
6946 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
6952 static enum ndr_err_code
ndr_push_samr_EnumDomainAliases(struct ndr_push
*ndr
, int flags
, const struct samr_EnumDomainAliases
*r
)
6954 if (flags
& NDR_IN
) {
6955 if (r
->in
.domain_handle
== NULL
) {
6956 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6958 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
6959 if (r
->in
.resume_handle
== NULL
) {
6960 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.resume_handle
));
6963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.max_size
));
6965 if (flags
& NDR_OUT
) {
6966 if (r
->out
.resume_handle
== NULL
) {
6967 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.resume_handle
));
6970 if (r
->out
.sam
== NULL
) {
6971 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6973 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.sam
));
6975 NDR_CHECK(ndr_push_samr_SamArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sam
));
6977 if (r
->out
.num_entries
== NULL
) {
6978 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
6980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_entries
));
6981 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
6983 return NDR_ERR_SUCCESS
;
6986 static enum ndr_err_code
ndr_pull_samr_EnumDomainAliases(struct ndr_pull
*ndr
, int flags
, struct samr_EnumDomainAliases
*r
)
6989 TALLOC_CTX
*_mem_save_domain_handle_0
;
6990 TALLOC_CTX
*_mem_save_resume_handle_0
;
6991 TALLOC_CTX
*_mem_save_sam_0
;
6992 TALLOC_CTX
*_mem_save_sam_1
;
6993 TALLOC_CTX
*_mem_save_num_entries_0
;
6994 if (flags
& NDR_IN
) {
6995 ZERO_STRUCT(r
->out
);
6997 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
6998 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
7000 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7001 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
7002 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
7003 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7004 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7005 NDR_PULL_ALLOC(ndr
, r
->in
.resume_handle
);
7007 _mem_save_resume_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7008 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.resume_handle
, LIBNDR_FLAG_REF_ALLOC
);
7009 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.resume_handle
));
7010 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_resume_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7011 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.max_size
));
7012 NDR_PULL_ALLOC(ndr
, r
->out
.resume_handle
);
7013 *r
->out
.resume_handle
= *r
->in
.resume_handle
;
7014 NDR_PULL_ALLOC(ndr
, r
->out
.sam
);
7015 ZERO_STRUCTP(r
->out
.sam
);
7016 NDR_PULL_ALLOC(ndr
, r
->out
.num_entries
);
7017 ZERO_STRUCTP(r
->out
.num_entries
);
7019 if (flags
& NDR_OUT
) {
7020 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7021 NDR_PULL_ALLOC(ndr
, r
->out
.resume_handle
);
7023 _mem_save_resume_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7024 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.resume_handle
, LIBNDR_FLAG_REF_ALLOC
);
7025 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.resume_handle
));
7026 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_resume_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7027 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7028 NDR_PULL_ALLOC(ndr
, r
->out
.sam
);
7030 _mem_save_sam_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7031 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sam
, LIBNDR_FLAG_REF_ALLOC
);
7032 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam
));
7034 NDR_PULL_ALLOC(ndr
, *r
->out
.sam
);
7039 _mem_save_sam_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7040 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.sam
, 0);
7041 NDR_CHECK(ndr_pull_samr_SamArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sam
));
7042 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam_1
, 0);
7044 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam_0
, LIBNDR_FLAG_REF_ALLOC
);
7045 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7046 NDR_PULL_ALLOC(ndr
, r
->out
.num_entries
);
7048 _mem_save_num_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7049 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_entries
, LIBNDR_FLAG_REF_ALLOC
);
7050 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_entries
));
7051 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
7052 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7054 return NDR_ERR_SUCCESS
;
7057 _PUBLIC_
void ndr_print_samr_EnumDomainAliases(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_EnumDomainAliases
*r
)
7059 ndr_print_struct(ndr
, name
, "samr_EnumDomainAliases");
7061 if (flags
& NDR_SET_VALUES
) {
7062 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7064 if (flags
& NDR_IN
) {
7065 ndr_print_struct(ndr
, "in", "samr_EnumDomainAliases");
7067 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
7069 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
7071 ndr_print_ptr(ndr
, "resume_handle", r
->in
.resume_handle
);
7073 ndr_print_uint32(ndr
, "resume_handle", *r
->in
.resume_handle
);
7075 ndr_print_uint32(ndr
, "max_size", r
->in
.max_size
);
7078 if (flags
& NDR_OUT
) {
7079 ndr_print_struct(ndr
, "out", "samr_EnumDomainAliases");
7081 ndr_print_ptr(ndr
, "resume_handle", r
->out
.resume_handle
);
7083 ndr_print_uint32(ndr
, "resume_handle", *r
->out
.resume_handle
);
7085 ndr_print_ptr(ndr
, "sam", r
->out
.sam
);
7087 ndr_print_ptr(ndr
, "sam", *r
->out
.sam
);
7090 ndr_print_samr_SamArray(ndr
, "sam", *r
->out
.sam
);
7094 ndr_print_ptr(ndr
, "num_entries", r
->out
.num_entries
);
7096 ndr_print_uint32(ndr
, "num_entries", *r
->out
.num_entries
);
7098 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7104 static enum ndr_err_code
ndr_push_samr_GetAliasMembership(struct ndr_push
*ndr
, int flags
, const struct samr_GetAliasMembership
*r
)
7106 if (flags
& NDR_IN
) {
7107 if (r
->in
.domain_handle
== NULL
) {
7108 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7110 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
7111 if (r
->in
.sids
== NULL
) {
7112 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7114 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sids
));
7116 if (flags
& NDR_OUT
) {
7117 if (r
->out
.rids
== NULL
) {
7118 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7120 NDR_CHECK(ndr_push_samr_Ids(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.rids
));
7121 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7123 return NDR_ERR_SUCCESS
;
7126 static enum ndr_err_code
ndr_pull_samr_GetAliasMembership(struct ndr_pull
*ndr
, int flags
, struct samr_GetAliasMembership
*r
)
7128 TALLOC_CTX
*_mem_save_domain_handle_0
;
7129 TALLOC_CTX
*_mem_save_sids_0
;
7130 TALLOC_CTX
*_mem_save_rids_0
;
7131 if (flags
& NDR_IN
) {
7132 ZERO_STRUCT(r
->out
);
7134 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7135 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
7137 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7138 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
7139 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
7140 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7141 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7142 NDR_PULL_ALLOC(ndr
, r
->in
.sids
);
7144 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7145 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sids
, LIBNDR_FLAG_REF_ALLOC
);
7146 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sids
));
7147 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, LIBNDR_FLAG_REF_ALLOC
);
7148 NDR_PULL_ALLOC(ndr
, r
->out
.rids
);
7149 ZERO_STRUCTP(r
->out
.rids
);
7151 if (flags
& NDR_OUT
) {
7152 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7153 NDR_PULL_ALLOC(ndr
, r
->out
.rids
);
7155 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7156 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rids
, LIBNDR_FLAG_REF_ALLOC
);
7157 NDR_CHECK(ndr_pull_samr_Ids(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.rids
));
7158 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, LIBNDR_FLAG_REF_ALLOC
);
7159 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7161 return NDR_ERR_SUCCESS
;
7164 _PUBLIC_
void ndr_print_samr_GetAliasMembership(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_GetAliasMembership
*r
)
7166 ndr_print_struct(ndr
, name
, "samr_GetAliasMembership");
7168 if (flags
& NDR_SET_VALUES
) {
7169 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7171 if (flags
& NDR_IN
) {
7172 ndr_print_struct(ndr
, "in", "samr_GetAliasMembership");
7174 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
7176 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
7178 ndr_print_ptr(ndr
, "sids", r
->in
.sids
);
7180 ndr_print_lsa_SidArray(ndr
, "sids", r
->in
.sids
);
7184 if (flags
& NDR_OUT
) {
7185 ndr_print_struct(ndr
, "out", "samr_GetAliasMembership");
7187 ndr_print_ptr(ndr
, "rids", r
->out
.rids
);
7189 ndr_print_samr_Ids(ndr
, "rids", r
->out
.rids
);
7191 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7197 _PUBLIC_
enum ndr_err_code
ndr_push_samr_LookupNames(struct ndr_push
*ndr
, int flags
, const struct samr_LookupNames
*r
)
7199 uint32_t cntr_names_0
;
7200 if (flags
& NDR_IN
) {
7201 if (r
->in
.domain_handle
== NULL
) {
7202 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7204 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
7205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_names
));
7206 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 1000));
7207 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_names
));
7209 for (cntr_names_0
= 0; cntr_names_0
< r
->in
.num_names
; cntr_names_0
++) {
7210 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->in
.names
[cntr_names_0
]));
7212 for (cntr_names_0
= 0; cntr_names_0
< r
->in
.num_names
; cntr_names_0
++) {
7213 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->in
.names
[cntr_names_0
]));
7216 if (flags
& NDR_OUT
) {
7217 if (r
->out
.rids
== NULL
) {
7218 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7220 NDR_CHECK(ndr_push_samr_Ids(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.rids
));
7221 if (r
->out
.types
== NULL
) {
7222 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7224 NDR_CHECK(ndr_push_samr_Ids(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.types
));
7225 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7227 return NDR_ERR_SUCCESS
;
7230 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_LookupNames(struct ndr_pull
*ndr
, int flags
, struct samr_LookupNames
*r
)
7232 uint32_t size_names_0
= 0;
7233 uint32_t length_names_0
= 0;
7234 uint32_t cntr_names_0
;
7235 TALLOC_CTX
*_mem_save_domain_handle_0
;
7236 TALLOC_CTX
*_mem_save_names_0
;
7237 TALLOC_CTX
*_mem_save_rids_0
;
7238 TALLOC_CTX
*_mem_save_types_0
;
7239 if (flags
& NDR_IN
) {
7240 ZERO_STRUCT(r
->out
);
7242 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7243 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
7245 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7246 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
7247 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
7248 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7249 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.num_names
));
7250 if (r
->in
.num_names
> 1000) {
7251 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
7253 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.names
));
7254 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.names
));
7255 size_names_0
= ndr_get_array_size(ndr
, &r
->in
.names
);
7256 length_names_0
= ndr_get_array_length(ndr
, &r
->in
.names
);
7257 if (length_names_0
> size_names_0
) {
7258 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_names_0
, length_names_0
);
7260 NDR_PULL_ALLOC_N(ndr
, r
->in
.names
, size_names_0
);
7261 _mem_save_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7262 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.names
, 0);
7263 for (cntr_names_0
= 0; cntr_names_0
< length_names_0
; cntr_names_0
++) {
7264 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->in
.names
[cntr_names_0
]));
7266 for (cntr_names_0
= 0; cntr_names_0
< length_names_0
; cntr_names_0
++) {
7267 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->in
.names
[cntr_names_0
]));
7269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_names_0
, 0);
7270 NDR_PULL_ALLOC(ndr
, r
->out
.rids
);
7271 ZERO_STRUCTP(r
->out
.rids
);
7272 NDR_PULL_ALLOC(ndr
, r
->out
.types
);
7273 ZERO_STRUCTP(r
->out
.types
);
7275 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.names
, 1000));
7278 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.names
, r
->in
.num_names
));
7281 if (flags
& NDR_OUT
) {
7282 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7283 NDR_PULL_ALLOC(ndr
, r
->out
.rids
);
7285 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7286 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rids
, LIBNDR_FLAG_REF_ALLOC
);
7287 NDR_CHECK(ndr_pull_samr_Ids(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.rids
));
7288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, LIBNDR_FLAG_REF_ALLOC
);
7289 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7290 NDR_PULL_ALLOC(ndr
, r
->out
.types
);
7292 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7293 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.types
, LIBNDR_FLAG_REF_ALLOC
);
7294 NDR_CHECK(ndr_pull_samr_Ids(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.types
));
7295 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, LIBNDR_FLAG_REF_ALLOC
);
7296 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7298 return NDR_ERR_SUCCESS
;
7301 _PUBLIC_
void ndr_print_samr_LookupNames(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_LookupNames
*r
)
7303 uint32_t cntr_names_0
;
7304 ndr_print_struct(ndr
, name
, "samr_LookupNames");
7306 if (flags
& NDR_SET_VALUES
) {
7307 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7309 if (flags
& NDR_IN
) {
7310 ndr_print_struct(ndr
, "in", "samr_LookupNames");
7312 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
7314 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
7316 ndr_print_uint32(ndr
, "num_names", r
->in
.num_names
);
7317 ndr
->print(ndr
, "%s: ARRAY(%d)", "names", (int)r
->in
.num_names
);
7319 for (cntr_names_0
=0;cntr_names_0
<r
->in
.num_names
;cntr_names_0
++) {
7321 if (asprintf(&idx_0
, "[%d]", cntr_names_0
) != -1) {
7322 ndr_print_lsa_String(ndr
, "names", &r
->in
.names
[cntr_names_0
]);
7329 if (flags
& NDR_OUT
) {
7330 ndr_print_struct(ndr
, "out", "samr_LookupNames");
7332 ndr_print_ptr(ndr
, "rids", r
->out
.rids
);
7334 ndr_print_samr_Ids(ndr
, "rids", r
->out
.rids
);
7336 ndr_print_ptr(ndr
, "types", r
->out
.types
);
7338 ndr_print_samr_Ids(ndr
, "types", r
->out
.types
);
7340 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7346 static enum ndr_err_code
ndr_push_samr_LookupRids(struct ndr_push
*ndr
, int flags
, const struct samr_LookupRids
*r
)
7348 uint32_t cntr_rids_0
;
7349 if (flags
& NDR_IN
) {
7350 if (r
->in
.domain_handle
== NULL
) {
7351 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7353 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
7354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_rids
));
7355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 1000));
7356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.num_rids
));
7358 for (cntr_rids_0
= 0; cntr_rids_0
< r
->in
.num_rids
; cntr_rids_0
++) {
7359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.rids
[cntr_rids_0
]));
7362 if (flags
& NDR_OUT
) {
7363 if (r
->out
.names
== NULL
) {
7364 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7366 NDR_CHECK(ndr_push_lsa_Strings(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.names
));
7367 if (r
->out
.types
== NULL
) {
7368 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7370 NDR_CHECK(ndr_push_samr_Ids(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.types
));
7371 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7373 return NDR_ERR_SUCCESS
;
7376 static enum ndr_err_code
ndr_pull_samr_LookupRids(struct ndr_pull
*ndr
, int flags
, struct samr_LookupRids
*r
)
7378 uint32_t size_rids_0
= 0;
7379 uint32_t length_rids_0
= 0;
7380 uint32_t cntr_rids_0
;
7381 TALLOC_CTX
*_mem_save_domain_handle_0
;
7382 TALLOC_CTX
*_mem_save_rids_0
;
7383 TALLOC_CTX
*_mem_save_names_0
;
7384 TALLOC_CTX
*_mem_save_types_0
;
7385 if (flags
& NDR_IN
) {
7386 ZERO_STRUCT(r
->out
);
7388 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7389 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
7391 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7392 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
7393 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
7394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7395 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.num_rids
));
7396 if (r
->in
.num_rids
> 1000) {
7397 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
7399 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.rids
));
7400 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.rids
));
7401 size_rids_0
= ndr_get_array_size(ndr
, &r
->in
.rids
);
7402 length_rids_0
= ndr_get_array_length(ndr
, &r
->in
.rids
);
7403 if (length_rids_0
> size_rids_0
) {
7404 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_rids_0
, length_rids_0
);
7406 NDR_PULL_ALLOC_N(ndr
, r
->in
.rids
, size_rids_0
);
7407 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7408 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.rids
, 0);
7409 for (cntr_rids_0
= 0; cntr_rids_0
< length_rids_0
; cntr_rids_0
++) {
7410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.rids
[cntr_rids_0
]));
7412 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, 0);
7413 NDR_PULL_ALLOC(ndr
, r
->out
.names
);
7414 ZERO_STRUCTP(r
->out
.names
);
7415 NDR_PULL_ALLOC(ndr
, r
->out
.types
);
7416 ZERO_STRUCTP(r
->out
.types
);
7418 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.rids
, 1000));
7421 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->in
.rids
, r
->in
.num_rids
));
7424 if (flags
& NDR_OUT
) {
7425 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7426 NDR_PULL_ALLOC(ndr
, r
->out
.names
);
7428 _mem_save_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7429 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.names
, LIBNDR_FLAG_REF_ALLOC
);
7430 NDR_CHECK(ndr_pull_lsa_Strings(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.names
));
7431 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_names_0
, LIBNDR_FLAG_REF_ALLOC
);
7432 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7433 NDR_PULL_ALLOC(ndr
, r
->out
.types
);
7435 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7436 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.types
, LIBNDR_FLAG_REF_ALLOC
);
7437 NDR_CHECK(ndr_pull_samr_Ids(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.types
));
7438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, LIBNDR_FLAG_REF_ALLOC
);
7439 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7441 return NDR_ERR_SUCCESS
;
7444 _PUBLIC_
void ndr_print_samr_LookupRids(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_LookupRids
*r
)
7446 uint32_t cntr_rids_0
;
7447 ndr_print_struct(ndr
, name
, "samr_LookupRids");
7449 if (flags
& NDR_SET_VALUES
) {
7450 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7452 if (flags
& NDR_IN
) {
7453 ndr_print_struct(ndr
, "in", "samr_LookupRids");
7455 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
7457 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
7459 ndr_print_uint32(ndr
, "num_rids", r
->in
.num_rids
);
7460 ndr
->print(ndr
, "%s: ARRAY(%d)", "rids", (int)r
->in
.num_rids
);
7462 for (cntr_rids_0
=0;cntr_rids_0
<r
->in
.num_rids
;cntr_rids_0
++) {
7464 if (asprintf(&idx_0
, "[%d]", cntr_rids_0
) != -1) {
7465 ndr_print_uint32(ndr
, "rids", r
->in
.rids
[cntr_rids_0
]);
7472 if (flags
& NDR_OUT
) {
7473 ndr_print_struct(ndr
, "out", "samr_LookupRids");
7475 ndr_print_ptr(ndr
, "names", r
->out
.names
);
7477 ndr_print_lsa_Strings(ndr
, "names", r
->out
.names
);
7479 ndr_print_ptr(ndr
, "types", r
->out
.types
);
7481 ndr_print_samr_Ids(ndr
, "types", r
->out
.types
);
7483 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7489 static enum ndr_err_code
ndr_push_samr_OpenGroup(struct ndr_push
*ndr
, int flags
, const struct samr_OpenGroup
*r
)
7491 if (flags
& NDR_IN
) {
7492 if (r
->in
.domain_handle
== NULL
) {
7493 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7495 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
7496 NDR_CHECK(ndr_push_samr_GroupAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
7497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.rid
));
7499 if (flags
& NDR_OUT
) {
7500 if (r
->out
.group_handle
== NULL
) {
7501 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7503 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.group_handle
));
7504 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7506 return NDR_ERR_SUCCESS
;
7509 static enum ndr_err_code
ndr_pull_samr_OpenGroup(struct ndr_pull
*ndr
, int flags
, struct samr_OpenGroup
*r
)
7511 TALLOC_CTX
*_mem_save_domain_handle_0
;
7512 TALLOC_CTX
*_mem_save_group_handle_0
;
7513 if (flags
& NDR_IN
) {
7514 ZERO_STRUCT(r
->out
);
7516 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7517 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
7519 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7520 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
7521 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
7522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7523 NDR_CHECK(ndr_pull_samr_GroupAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
7524 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.rid
));
7525 NDR_PULL_ALLOC(ndr
, r
->out
.group_handle
);
7526 ZERO_STRUCTP(r
->out
.group_handle
);
7528 if (flags
& NDR_OUT
) {
7529 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7530 NDR_PULL_ALLOC(ndr
, r
->out
.group_handle
);
7532 _mem_save_group_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7533 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.group_handle
, LIBNDR_FLAG_REF_ALLOC
);
7534 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.group_handle
));
7535 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7536 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7538 return NDR_ERR_SUCCESS
;
7541 _PUBLIC_
void ndr_print_samr_OpenGroup(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_OpenGroup
*r
)
7543 ndr_print_struct(ndr
, name
, "samr_OpenGroup");
7545 if (flags
& NDR_SET_VALUES
) {
7546 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7548 if (flags
& NDR_IN
) {
7549 ndr_print_struct(ndr
, "in", "samr_OpenGroup");
7551 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
7553 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
7555 ndr_print_samr_GroupAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
7556 ndr_print_uint32(ndr
, "rid", r
->in
.rid
);
7559 if (flags
& NDR_OUT
) {
7560 ndr_print_struct(ndr
, "out", "samr_OpenGroup");
7562 ndr_print_ptr(ndr
, "group_handle", r
->out
.group_handle
);
7564 ndr_print_policy_handle(ndr
, "group_handle", r
->out
.group_handle
);
7566 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7572 static enum ndr_err_code
ndr_push_samr_QueryGroupInfo(struct ndr_push
*ndr
, int flags
, const struct samr_QueryGroupInfo
*r
)
7574 if (flags
& NDR_IN
) {
7575 if (r
->in
.group_handle
== NULL
) {
7576 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7578 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7579 NDR_CHECK(ndr_push_samr_GroupInfoEnum(ndr
, NDR_SCALARS
, r
->in
.level
));
7581 if (flags
& NDR_OUT
) {
7582 if (r
->out
.info
== NULL
) {
7583 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7585 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
7587 NDR_CHECK(ndr_push_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
7588 NDR_CHECK(ndr_push_samr_GroupInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
7590 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7592 return NDR_ERR_SUCCESS
;
7595 static enum ndr_err_code
ndr_pull_samr_QueryGroupInfo(struct ndr_pull
*ndr
, int flags
, struct samr_QueryGroupInfo
*r
)
7598 TALLOC_CTX
*_mem_save_group_handle_0
;
7599 TALLOC_CTX
*_mem_save_info_0
;
7600 TALLOC_CTX
*_mem_save_info_1
;
7601 if (flags
& NDR_IN
) {
7602 ZERO_STRUCT(r
->out
);
7604 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7605 NDR_PULL_ALLOC(ndr
, r
->in
.group_handle
);
7607 _mem_save_group_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7608 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.group_handle
, LIBNDR_FLAG_REF_ALLOC
);
7609 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7610 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7611 NDR_CHECK(ndr_pull_samr_GroupInfoEnum(ndr
, NDR_SCALARS
, &r
->in
.level
));
7612 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
7613 ZERO_STRUCTP(r
->out
.info
);
7615 if (flags
& NDR_OUT
) {
7616 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7617 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
7619 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7620 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
7621 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
7623 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
7625 *r
->out
.info
= NULL
;
7628 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7629 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
7630 NDR_CHECK(ndr_pull_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
7631 NDR_CHECK(ndr_pull_samr_GroupInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
7632 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
7634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
7635 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7637 return NDR_ERR_SUCCESS
;
7640 _PUBLIC_
void ndr_print_samr_QueryGroupInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QueryGroupInfo
*r
)
7642 ndr_print_struct(ndr
, name
, "samr_QueryGroupInfo");
7644 if (flags
& NDR_SET_VALUES
) {
7645 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7647 if (flags
& NDR_IN
) {
7648 ndr_print_struct(ndr
, "in", "samr_QueryGroupInfo");
7650 ndr_print_ptr(ndr
, "group_handle", r
->in
.group_handle
);
7652 ndr_print_policy_handle(ndr
, "group_handle", r
->in
.group_handle
);
7654 ndr_print_samr_GroupInfoEnum(ndr
, "level", r
->in
.level
);
7657 if (flags
& NDR_OUT
) {
7658 ndr_print_struct(ndr
, "out", "samr_QueryGroupInfo");
7660 ndr_print_ptr(ndr
, "info", r
->out
.info
);
7662 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
7665 ndr_print_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
);
7666 ndr_print_samr_GroupInfo(ndr
, "info", *r
->out
.info
);
7670 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7676 static enum ndr_err_code
ndr_push_samr_SetGroupInfo(struct ndr_push
*ndr
, int flags
, const struct samr_SetGroupInfo
*r
)
7678 if (flags
& NDR_IN
) {
7679 if (r
->in
.group_handle
== NULL
) {
7680 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7682 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7683 NDR_CHECK(ndr_push_samr_GroupInfoEnum(ndr
, NDR_SCALARS
, r
->in
.level
));
7684 if (r
->in
.info
== NULL
) {
7685 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7687 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
));
7688 NDR_CHECK(ndr_push_samr_GroupInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info
));
7690 if (flags
& NDR_OUT
) {
7691 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7693 return NDR_ERR_SUCCESS
;
7696 static enum ndr_err_code
ndr_pull_samr_SetGroupInfo(struct ndr_pull
*ndr
, int flags
, struct samr_SetGroupInfo
*r
)
7698 TALLOC_CTX
*_mem_save_group_handle_0
;
7699 TALLOC_CTX
*_mem_save_info_0
;
7700 if (flags
& NDR_IN
) {
7701 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7702 NDR_PULL_ALLOC(ndr
, r
->in
.group_handle
);
7704 _mem_save_group_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7705 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.group_handle
, LIBNDR_FLAG_REF_ALLOC
);
7706 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7707 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7708 NDR_CHECK(ndr_pull_samr_GroupInfoEnum(ndr
, NDR_SCALARS
, &r
->in
.level
));
7709 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7710 NDR_PULL_ALLOC(ndr
, r
->in
.info
);
7712 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7713 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info
, LIBNDR_FLAG_REF_ALLOC
);
7714 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
));
7715 NDR_CHECK(ndr_pull_samr_GroupInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info
));
7716 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
7718 if (flags
& NDR_OUT
) {
7719 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7721 return NDR_ERR_SUCCESS
;
7724 _PUBLIC_
void ndr_print_samr_SetGroupInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_SetGroupInfo
*r
)
7726 ndr_print_struct(ndr
, name
, "samr_SetGroupInfo");
7728 if (flags
& NDR_SET_VALUES
) {
7729 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7731 if (flags
& NDR_IN
) {
7732 ndr_print_struct(ndr
, "in", "samr_SetGroupInfo");
7734 ndr_print_ptr(ndr
, "group_handle", r
->in
.group_handle
);
7736 ndr_print_policy_handle(ndr
, "group_handle", r
->in
.group_handle
);
7738 ndr_print_samr_GroupInfoEnum(ndr
, "level", r
->in
.level
);
7739 ndr_print_ptr(ndr
, "info", r
->in
.info
);
7741 ndr_print_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
);
7742 ndr_print_samr_GroupInfo(ndr
, "info", r
->in
.info
);
7746 if (flags
& NDR_OUT
) {
7747 ndr_print_struct(ndr
, "out", "samr_SetGroupInfo");
7749 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7755 static enum ndr_err_code
ndr_push_samr_AddGroupMember(struct ndr_push
*ndr
, int flags
, const struct samr_AddGroupMember
*r
)
7757 if (flags
& NDR_IN
) {
7758 if (r
->in
.group_handle
== NULL
) {
7759 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7761 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.rid
));
7763 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
7765 if (flags
& NDR_OUT
) {
7766 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7768 return NDR_ERR_SUCCESS
;
7771 static enum ndr_err_code
ndr_pull_samr_AddGroupMember(struct ndr_pull
*ndr
, int flags
, struct samr_AddGroupMember
*r
)
7773 TALLOC_CTX
*_mem_save_group_handle_0
;
7774 if (flags
& NDR_IN
) {
7775 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7776 NDR_PULL_ALLOC(ndr
, r
->in
.group_handle
);
7778 _mem_save_group_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7779 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.group_handle
, LIBNDR_FLAG_REF_ALLOC
);
7780 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7781 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7782 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.rid
));
7783 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
7785 if (flags
& NDR_OUT
) {
7786 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7788 return NDR_ERR_SUCCESS
;
7791 _PUBLIC_
void ndr_print_samr_AddGroupMember(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_AddGroupMember
*r
)
7793 ndr_print_struct(ndr
, name
, "samr_AddGroupMember");
7795 if (flags
& NDR_SET_VALUES
) {
7796 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7798 if (flags
& NDR_IN
) {
7799 ndr_print_struct(ndr
, "in", "samr_AddGroupMember");
7801 ndr_print_ptr(ndr
, "group_handle", r
->in
.group_handle
);
7803 ndr_print_policy_handle(ndr
, "group_handle", r
->in
.group_handle
);
7805 ndr_print_uint32(ndr
, "rid", r
->in
.rid
);
7806 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
7809 if (flags
& NDR_OUT
) {
7810 ndr_print_struct(ndr
, "out", "samr_AddGroupMember");
7812 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7818 static enum ndr_err_code
ndr_push_samr_DeleteDomainGroup(struct ndr_push
*ndr
, int flags
, const struct samr_DeleteDomainGroup
*r
)
7820 if (flags
& NDR_IN
) {
7821 if (r
->in
.group_handle
== NULL
) {
7822 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7824 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7826 if (flags
& NDR_OUT
) {
7827 if (r
->out
.group_handle
== NULL
) {
7828 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7830 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.group_handle
));
7831 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7833 return NDR_ERR_SUCCESS
;
7836 static enum ndr_err_code
ndr_pull_samr_DeleteDomainGroup(struct ndr_pull
*ndr
, int flags
, struct samr_DeleteDomainGroup
*r
)
7838 TALLOC_CTX
*_mem_save_group_handle_0
;
7839 if (flags
& NDR_IN
) {
7840 ZERO_STRUCT(r
->out
);
7842 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7843 NDR_PULL_ALLOC(ndr
, r
->in
.group_handle
);
7845 _mem_save_group_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7846 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.group_handle
, LIBNDR_FLAG_REF_ALLOC
);
7847 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7849 NDR_PULL_ALLOC(ndr
, r
->out
.group_handle
);
7850 *r
->out
.group_handle
= *r
->in
.group_handle
;
7852 if (flags
& NDR_OUT
) {
7853 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7854 NDR_PULL_ALLOC(ndr
, r
->out
.group_handle
);
7856 _mem_save_group_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7857 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.group_handle
, LIBNDR_FLAG_REF_ALLOC
);
7858 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.group_handle
));
7859 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7860 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7862 return NDR_ERR_SUCCESS
;
7865 _PUBLIC_
void ndr_print_samr_DeleteDomainGroup(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_DeleteDomainGroup
*r
)
7867 ndr_print_struct(ndr
, name
, "samr_DeleteDomainGroup");
7869 if (flags
& NDR_SET_VALUES
) {
7870 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7872 if (flags
& NDR_IN
) {
7873 ndr_print_struct(ndr
, "in", "samr_DeleteDomainGroup");
7875 ndr_print_ptr(ndr
, "group_handle", r
->in
.group_handle
);
7877 ndr_print_policy_handle(ndr
, "group_handle", r
->in
.group_handle
);
7881 if (flags
& NDR_OUT
) {
7882 ndr_print_struct(ndr
, "out", "samr_DeleteDomainGroup");
7884 ndr_print_ptr(ndr
, "group_handle", r
->out
.group_handle
);
7886 ndr_print_policy_handle(ndr
, "group_handle", r
->out
.group_handle
);
7888 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7894 static enum ndr_err_code
ndr_push_samr_DeleteGroupMember(struct ndr_push
*ndr
, int flags
, const struct samr_DeleteGroupMember
*r
)
7896 if (flags
& NDR_IN
) {
7897 if (r
->in
.group_handle
== NULL
) {
7898 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7900 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.rid
));
7903 if (flags
& NDR_OUT
) {
7904 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7906 return NDR_ERR_SUCCESS
;
7909 static enum ndr_err_code
ndr_pull_samr_DeleteGroupMember(struct ndr_pull
*ndr
, int flags
, struct samr_DeleteGroupMember
*r
)
7911 TALLOC_CTX
*_mem_save_group_handle_0
;
7912 if (flags
& NDR_IN
) {
7913 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7914 NDR_PULL_ALLOC(ndr
, r
->in
.group_handle
);
7916 _mem_save_group_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7917 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.group_handle
, LIBNDR_FLAG_REF_ALLOC
);
7918 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7920 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.rid
));
7922 if (flags
& NDR_OUT
) {
7923 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7925 return NDR_ERR_SUCCESS
;
7928 _PUBLIC_
void ndr_print_samr_DeleteGroupMember(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_DeleteGroupMember
*r
)
7930 ndr_print_struct(ndr
, name
, "samr_DeleteGroupMember");
7932 if (flags
& NDR_SET_VALUES
) {
7933 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7935 if (flags
& NDR_IN
) {
7936 ndr_print_struct(ndr
, "in", "samr_DeleteGroupMember");
7938 ndr_print_ptr(ndr
, "group_handle", r
->in
.group_handle
);
7940 ndr_print_policy_handle(ndr
, "group_handle", r
->in
.group_handle
);
7942 ndr_print_uint32(ndr
, "rid", r
->in
.rid
);
7945 if (flags
& NDR_OUT
) {
7946 ndr_print_struct(ndr
, "out", "samr_DeleteGroupMember");
7948 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7954 static enum ndr_err_code
ndr_push_samr_QueryGroupMember(struct ndr_push
*ndr
, int flags
, const struct samr_QueryGroupMember
*r
)
7956 if (flags
& NDR_IN
) {
7957 if (r
->in
.group_handle
== NULL
) {
7958 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7960 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7962 if (flags
& NDR_OUT
) {
7963 if (r
->out
.rids
== NULL
) {
7964 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
7966 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.rids
));
7968 NDR_CHECK(ndr_push_samr_RidTypeArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.rids
));
7970 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7972 return NDR_ERR_SUCCESS
;
7975 static enum ndr_err_code
ndr_pull_samr_QueryGroupMember(struct ndr_pull
*ndr
, int flags
, struct samr_QueryGroupMember
*r
)
7978 TALLOC_CTX
*_mem_save_group_handle_0
;
7979 TALLOC_CTX
*_mem_save_rids_0
;
7980 TALLOC_CTX
*_mem_save_rids_1
;
7981 if (flags
& NDR_IN
) {
7982 ZERO_STRUCT(r
->out
);
7984 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7985 NDR_PULL_ALLOC(ndr
, r
->in
.group_handle
);
7987 _mem_save_group_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7988 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.group_handle
, LIBNDR_FLAG_REF_ALLOC
);
7989 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
7990 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
7991 NDR_PULL_ALLOC(ndr
, r
->out
.rids
);
7992 ZERO_STRUCTP(r
->out
.rids
);
7994 if (flags
& NDR_OUT
) {
7995 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7996 NDR_PULL_ALLOC(ndr
, r
->out
.rids
);
7998 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7999 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rids
, LIBNDR_FLAG_REF_ALLOC
);
8000 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
8002 NDR_PULL_ALLOC(ndr
, *r
->out
.rids
);
8004 *r
->out
.rids
= NULL
;
8007 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8008 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.rids
, 0);
8009 NDR_CHECK(ndr_pull_samr_RidTypeArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.rids
));
8010 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
8012 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, LIBNDR_FLAG_REF_ALLOC
);
8013 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8015 return NDR_ERR_SUCCESS
;
8018 _PUBLIC_
void ndr_print_samr_QueryGroupMember(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QueryGroupMember
*r
)
8020 ndr_print_struct(ndr
, name
, "samr_QueryGroupMember");
8022 if (flags
& NDR_SET_VALUES
) {
8023 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8025 if (flags
& NDR_IN
) {
8026 ndr_print_struct(ndr
, "in", "samr_QueryGroupMember");
8028 ndr_print_ptr(ndr
, "group_handle", r
->in
.group_handle
);
8030 ndr_print_policy_handle(ndr
, "group_handle", r
->in
.group_handle
);
8034 if (flags
& NDR_OUT
) {
8035 ndr_print_struct(ndr
, "out", "samr_QueryGroupMember");
8037 ndr_print_ptr(ndr
, "rids", r
->out
.rids
);
8039 ndr_print_ptr(ndr
, "rids", *r
->out
.rids
);
8042 ndr_print_samr_RidTypeArray(ndr
, "rids", *r
->out
.rids
);
8046 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8052 static enum ndr_err_code
ndr_push_samr_SetMemberAttributesOfGroup(struct ndr_push
*ndr
, int flags
, const struct samr_SetMemberAttributesOfGroup
*r
)
8054 if (flags
& NDR_IN
) {
8055 if (r
->in
.group_handle
== NULL
) {
8056 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8058 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
8059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown1
));
8060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown2
));
8062 if (flags
& NDR_OUT
) {
8063 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8065 return NDR_ERR_SUCCESS
;
8068 static enum ndr_err_code
ndr_pull_samr_SetMemberAttributesOfGroup(struct ndr_pull
*ndr
, int flags
, struct samr_SetMemberAttributesOfGroup
*r
)
8070 TALLOC_CTX
*_mem_save_group_handle_0
;
8071 if (flags
& NDR_IN
) {
8072 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8073 NDR_PULL_ALLOC(ndr
, r
->in
.group_handle
);
8075 _mem_save_group_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8076 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.group_handle
, LIBNDR_FLAG_REF_ALLOC
);
8077 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.group_handle
));
8078 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8079 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown1
));
8080 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown2
));
8082 if (flags
& NDR_OUT
) {
8083 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8085 return NDR_ERR_SUCCESS
;
8088 _PUBLIC_
void ndr_print_samr_SetMemberAttributesOfGroup(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_SetMemberAttributesOfGroup
*r
)
8090 ndr_print_struct(ndr
, name
, "samr_SetMemberAttributesOfGroup");
8092 if (flags
& NDR_SET_VALUES
) {
8093 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8095 if (flags
& NDR_IN
) {
8096 ndr_print_struct(ndr
, "in", "samr_SetMemberAttributesOfGroup");
8098 ndr_print_ptr(ndr
, "group_handle", r
->in
.group_handle
);
8100 ndr_print_policy_handle(ndr
, "group_handle", r
->in
.group_handle
);
8102 ndr_print_uint32(ndr
, "unknown1", r
->in
.unknown1
);
8103 ndr_print_uint32(ndr
, "unknown2", r
->in
.unknown2
);
8106 if (flags
& NDR_OUT
) {
8107 ndr_print_struct(ndr
, "out", "samr_SetMemberAttributesOfGroup");
8109 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8115 static enum ndr_err_code
ndr_push_samr_OpenAlias(struct ndr_push
*ndr
, int flags
, const struct samr_OpenAlias
*r
)
8117 if (flags
& NDR_IN
) {
8118 if (r
->in
.domain_handle
== NULL
) {
8119 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8121 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
8122 NDR_CHECK(ndr_push_samr_AliasAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
8123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.rid
));
8125 if (flags
& NDR_OUT
) {
8126 if (r
->out
.alias_handle
== NULL
) {
8127 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8129 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.alias_handle
));
8130 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8132 return NDR_ERR_SUCCESS
;
8135 static enum ndr_err_code
ndr_pull_samr_OpenAlias(struct ndr_pull
*ndr
, int flags
, struct samr_OpenAlias
*r
)
8137 TALLOC_CTX
*_mem_save_domain_handle_0
;
8138 TALLOC_CTX
*_mem_save_alias_handle_0
;
8139 if (flags
& NDR_IN
) {
8140 ZERO_STRUCT(r
->out
);
8142 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8143 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
8145 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8146 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
8147 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
8148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8149 NDR_CHECK(ndr_pull_samr_AliasAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
8150 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.rid
));
8151 NDR_PULL_ALLOC(ndr
, r
->out
.alias_handle
);
8152 ZERO_STRUCTP(r
->out
.alias_handle
);
8154 if (flags
& NDR_OUT
) {
8155 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8156 NDR_PULL_ALLOC(ndr
, r
->out
.alias_handle
);
8158 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8159 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
8160 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.alias_handle
));
8161 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8162 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8164 return NDR_ERR_SUCCESS
;
8167 _PUBLIC_
void ndr_print_samr_OpenAlias(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_OpenAlias
*r
)
8169 ndr_print_struct(ndr
, name
, "samr_OpenAlias");
8171 if (flags
& NDR_SET_VALUES
) {
8172 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8174 if (flags
& NDR_IN
) {
8175 ndr_print_struct(ndr
, "in", "samr_OpenAlias");
8177 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
8179 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
8181 ndr_print_samr_AliasAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
8182 ndr_print_uint32(ndr
, "rid", r
->in
.rid
);
8185 if (flags
& NDR_OUT
) {
8186 ndr_print_struct(ndr
, "out", "samr_OpenAlias");
8188 ndr_print_ptr(ndr
, "alias_handle", r
->out
.alias_handle
);
8190 ndr_print_policy_handle(ndr
, "alias_handle", r
->out
.alias_handle
);
8192 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8198 static enum ndr_err_code
ndr_push_samr_QueryAliasInfo(struct ndr_push
*ndr
, int flags
, const struct samr_QueryAliasInfo
*r
)
8200 if (flags
& NDR_IN
) {
8201 if (r
->in
.alias_handle
== NULL
) {
8202 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8204 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8205 NDR_CHECK(ndr_push_samr_AliasInfoEnum(ndr
, NDR_SCALARS
, r
->in
.level
));
8207 if (flags
& NDR_OUT
) {
8208 if (r
->out
.info
== NULL
) {
8209 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8211 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
8213 NDR_CHECK(ndr_push_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
8214 NDR_CHECK(ndr_push_samr_AliasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
8216 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8218 return NDR_ERR_SUCCESS
;
8221 static enum ndr_err_code
ndr_pull_samr_QueryAliasInfo(struct ndr_pull
*ndr
, int flags
, struct samr_QueryAliasInfo
*r
)
8224 TALLOC_CTX
*_mem_save_alias_handle_0
;
8225 TALLOC_CTX
*_mem_save_info_0
;
8226 TALLOC_CTX
*_mem_save_info_1
;
8227 if (flags
& NDR_IN
) {
8228 ZERO_STRUCT(r
->out
);
8230 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8231 NDR_PULL_ALLOC(ndr
, r
->in
.alias_handle
);
8233 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8234 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
8235 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8236 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8237 NDR_CHECK(ndr_pull_samr_AliasInfoEnum(ndr
, NDR_SCALARS
, &r
->in
.level
));
8238 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8239 ZERO_STRUCTP(r
->out
.info
);
8241 if (flags
& NDR_OUT
) {
8242 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8243 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8245 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8246 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
8247 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
8249 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
8251 *r
->out
.info
= NULL
;
8254 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8255 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
8256 NDR_CHECK(ndr_pull_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
8257 NDR_CHECK(ndr_pull_samr_AliasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
8258 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
8260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
8261 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8263 return NDR_ERR_SUCCESS
;
8266 _PUBLIC_
void ndr_print_samr_QueryAliasInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QueryAliasInfo
*r
)
8268 ndr_print_struct(ndr
, name
, "samr_QueryAliasInfo");
8270 if (flags
& NDR_SET_VALUES
) {
8271 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8273 if (flags
& NDR_IN
) {
8274 ndr_print_struct(ndr
, "in", "samr_QueryAliasInfo");
8276 ndr_print_ptr(ndr
, "alias_handle", r
->in
.alias_handle
);
8278 ndr_print_policy_handle(ndr
, "alias_handle", r
->in
.alias_handle
);
8280 ndr_print_samr_AliasInfoEnum(ndr
, "level", r
->in
.level
);
8283 if (flags
& NDR_OUT
) {
8284 ndr_print_struct(ndr
, "out", "samr_QueryAliasInfo");
8286 ndr_print_ptr(ndr
, "info", r
->out
.info
);
8288 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
8291 ndr_print_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
);
8292 ndr_print_samr_AliasInfo(ndr
, "info", *r
->out
.info
);
8296 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8302 static enum ndr_err_code
ndr_push_samr_SetAliasInfo(struct ndr_push
*ndr
, int flags
, const struct samr_SetAliasInfo
*r
)
8304 if (flags
& NDR_IN
) {
8305 if (r
->in
.alias_handle
== NULL
) {
8306 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8308 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8309 NDR_CHECK(ndr_push_samr_AliasInfoEnum(ndr
, NDR_SCALARS
, r
->in
.level
));
8310 if (r
->in
.info
== NULL
) {
8311 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8313 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
));
8314 NDR_CHECK(ndr_push_samr_AliasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info
));
8316 if (flags
& NDR_OUT
) {
8317 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8319 return NDR_ERR_SUCCESS
;
8322 static enum ndr_err_code
ndr_pull_samr_SetAliasInfo(struct ndr_pull
*ndr
, int flags
, struct samr_SetAliasInfo
*r
)
8324 TALLOC_CTX
*_mem_save_alias_handle_0
;
8325 TALLOC_CTX
*_mem_save_info_0
;
8326 if (flags
& NDR_IN
) {
8327 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8328 NDR_PULL_ALLOC(ndr
, r
->in
.alias_handle
);
8330 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8331 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
8332 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8333 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8334 NDR_CHECK(ndr_pull_samr_AliasInfoEnum(ndr
, NDR_SCALARS
, &r
->in
.level
));
8335 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8336 NDR_PULL_ALLOC(ndr
, r
->in
.info
);
8338 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8339 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info
, LIBNDR_FLAG_REF_ALLOC
);
8340 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
));
8341 NDR_CHECK(ndr_pull_samr_AliasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info
));
8342 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
8344 if (flags
& NDR_OUT
) {
8345 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8347 return NDR_ERR_SUCCESS
;
8350 _PUBLIC_
void ndr_print_samr_SetAliasInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_SetAliasInfo
*r
)
8352 ndr_print_struct(ndr
, name
, "samr_SetAliasInfo");
8354 if (flags
& NDR_SET_VALUES
) {
8355 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8357 if (flags
& NDR_IN
) {
8358 ndr_print_struct(ndr
, "in", "samr_SetAliasInfo");
8360 ndr_print_ptr(ndr
, "alias_handle", r
->in
.alias_handle
);
8362 ndr_print_policy_handle(ndr
, "alias_handle", r
->in
.alias_handle
);
8364 ndr_print_samr_AliasInfoEnum(ndr
, "level", r
->in
.level
);
8365 ndr_print_ptr(ndr
, "info", r
->in
.info
);
8367 ndr_print_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
);
8368 ndr_print_samr_AliasInfo(ndr
, "info", r
->in
.info
);
8372 if (flags
& NDR_OUT
) {
8373 ndr_print_struct(ndr
, "out", "samr_SetAliasInfo");
8375 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8381 static enum ndr_err_code
ndr_push_samr_DeleteDomAlias(struct ndr_push
*ndr
, int flags
, const struct samr_DeleteDomAlias
*r
)
8383 if (flags
& NDR_IN
) {
8384 if (r
->in
.alias_handle
== NULL
) {
8385 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8387 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8389 if (flags
& NDR_OUT
) {
8390 if (r
->out
.alias_handle
== NULL
) {
8391 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8393 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.alias_handle
));
8394 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8396 return NDR_ERR_SUCCESS
;
8399 static enum ndr_err_code
ndr_pull_samr_DeleteDomAlias(struct ndr_pull
*ndr
, int flags
, struct samr_DeleteDomAlias
*r
)
8401 TALLOC_CTX
*_mem_save_alias_handle_0
;
8402 if (flags
& NDR_IN
) {
8403 ZERO_STRUCT(r
->out
);
8405 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8406 NDR_PULL_ALLOC(ndr
, r
->in
.alias_handle
);
8408 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8409 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
8410 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8411 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8412 NDR_PULL_ALLOC(ndr
, r
->out
.alias_handle
);
8413 *r
->out
.alias_handle
= *r
->in
.alias_handle
;
8415 if (flags
& NDR_OUT
) {
8416 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8417 NDR_PULL_ALLOC(ndr
, r
->out
.alias_handle
);
8419 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8420 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
8421 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.alias_handle
));
8422 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8423 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8425 return NDR_ERR_SUCCESS
;
8428 _PUBLIC_
void ndr_print_samr_DeleteDomAlias(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_DeleteDomAlias
*r
)
8430 ndr_print_struct(ndr
, name
, "samr_DeleteDomAlias");
8432 if (flags
& NDR_SET_VALUES
) {
8433 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8435 if (flags
& NDR_IN
) {
8436 ndr_print_struct(ndr
, "in", "samr_DeleteDomAlias");
8438 ndr_print_ptr(ndr
, "alias_handle", r
->in
.alias_handle
);
8440 ndr_print_policy_handle(ndr
, "alias_handle", r
->in
.alias_handle
);
8444 if (flags
& NDR_OUT
) {
8445 ndr_print_struct(ndr
, "out", "samr_DeleteDomAlias");
8447 ndr_print_ptr(ndr
, "alias_handle", r
->out
.alias_handle
);
8449 ndr_print_policy_handle(ndr
, "alias_handle", r
->out
.alias_handle
);
8451 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8457 static enum ndr_err_code
ndr_push_samr_AddAliasMember(struct ndr_push
*ndr
, int flags
, const struct samr_AddAliasMember
*r
)
8459 if (flags
& NDR_IN
) {
8460 if (r
->in
.alias_handle
== NULL
) {
8461 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8463 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8464 if (r
->in
.sid
== NULL
) {
8465 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8467 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sid
));
8469 if (flags
& NDR_OUT
) {
8470 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8472 return NDR_ERR_SUCCESS
;
8475 static enum ndr_err_code
ndr_pull_samr_AddAliasMember(struct ndr_pull
*ndr
, int flags
, struct samr_AddAliasMember
*r
)
8477 TALLOC_CTX
*_mem_save_alias_handle_0
;
8478 TALLOC_CTX
*_mem_save_sid_0
;
8479 if (flags
& NDR_IN
) {
8480 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8481 NDR_PULL_ALLOC(ndr
, r
->in
.alias_handle
);
8483 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8484 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
8485 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8486 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8487 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8488 NDR_PULL_ALLOC(ndr
, r
->in
.sid
);
8490 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8491 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sid
, LIBNDR_FLAG_REF_ALLOC
);
8492 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sid
));
8493 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, LIBNDR_FLAG_REF_ALLOC
);
8495 if (flags
& NDR_OUT
) {
8496 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8498 return NDR_ERR_SUCCESS
;
8501 _PUBLIC_
void ndr_print_samr_AddAliasMember(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_AddAliasMember
*r
)
8503 ndr_print_struct(ndr
, name
, "samr_AddAliasMember");
8505 if (flags
& NDR_SET_VALUES
) {
8506 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8508 if (flags
& NDR_IN
) {
8509 ndr_print_struct(ndr
, "in", "samr_AddAliasMember");
8511 ndr_print_ptr(ndr
, "alias_handle", r
->in
.alias_handle
);
8513 ndr_print_policy_handle(ndr
, "alias_handle", r
->in
.alias_handle
);
8515 ndr_print_ptr(ndr
, "sid", r
->in
.sid
);
8517 ndr_print_dom_sid2(ndr
, "sid", r
->in
.sid
);
8521 if (flags
& NDR_OUT
) {
8522 ndr_print_struct(ndr
, "out", "samr_AddAliasMember");
8524 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8530 static enum ndr_err_code
ndr_push_samr_DeleteAliasMember(struct ndr_push
*ndr
, int flags
, const struct samr_DeleteAliasMember
*r
)
8532 if (flags
& NDR_IN
) {
8533 if (r
->in
.alias_handle
== NULL
) {
8534 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8536 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8537 if (r
->in
.sid
== NULL
) {
8538 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8540 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sid
));
8542 if (flags
& NDR_OUT
) {
8543 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8545 return NDR_ERR_SUCCESS
;
8548 static enum ndr_err_code
ndr_pull_samr_DeleteAliasMember(struct ndr_pull
*ndr
, int flags
, struct samr_DeleteAliasMember
*r
)
8550 TALLOC_CTX
*_mem_save_alias_handle_0
;
8551 TALLOC_CTX
*_mem_save_sid_0
;
8552 if (flags
& NDR_IN
) {
8553 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8554 NDR_PULL_ALLOC(ndr
, r
->in
.alias_handle
);
8556 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8557 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
8558 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8560 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8561 NDR_PULL_ALLOC(ndr
, r
->in
.sid
);
8563 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8564 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sid
, LIBNDR_FLAG_REF_ALLOC
);
8565 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sid
));
8566 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, LIBNDR_FLAG_REF_ALLOC
);
8568 if (flags
& NDR_OUT
) {
8569 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8571 return NDR_ERR_SUCCESS
;
8574 _PUBLIC_
void ndr_print_samr_DeleteAliasMember(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_DeleteAliasMember
*r
)
8576 ndr_print_struct(ndr
, name
, "samr_DeleteAliasMember");
8578 if (flags
& NDR_SET_VALUES
) {
8579 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8581 if (flags
& NDR_IN
) {
8582 ndr_print_struct(ndr
, "in", "samr_DeleteAliasMember");
8584 ndr_print_ptr(ndr
, "alias_handle", r
->in
.alias_handle
);
8586 ndr_print_policy_handle(ndr
, "alias_handle", r
->in
.alias_handle
);
8588 ndr_print_ptr(ndr
, "sid", r
->in
.sid
);
8590 ndr_print_dom_sid2(ndr
, "sid", r
->in
.sid
);
8594 if (flags
& NDR_OUT
) {
8595 ndr_print_struct(ndr
, "out", "samr_DeleteAliasMember");
8597 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8603 static enum ndr_err_code
ndr_push_samr_GetMembersInAlias(struct ndr_push
*ndr
, int flags
, const struct samr_GetMembersInAlias
*r
)
8605 if (flags
& NDR_IN
) {
8606 if (r
->in
.alias_handle
== NULL
) {
8607 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8609 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8611 if (flags
& NDR_OUT
) {
8612 if (r
->out
.sids
== NULL
) {
8613 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8615 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sids
));
8616 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8618 return NDR_ERR_SUCCESS
;
8621 static enum ndr_err_code
ndr_pull_samr_GetMembersInAlias(struct ndr_pull
*ndr
, int flags
, struct samr_GetMembersInAlias
*r
)
8623 TALLOC_CTX
*_mem_save_alias_handle_0
;
8624 TALLOC_CTX
*_mem_save_sids_0
;
8625 if (flags
& NDR_IN
) {
8626 ZERO_STRUCT(r
->out
);
8628 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8629 NDR_PULL_ALLOC(ndr
, r
->in
.alias_handle
);
8631 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8632 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
8633 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
8634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8635 NDR_PULL_ALLOC(ndr
, r
->out
.sids
);
8636 ZERO_STRUCTP(r
->out
.sids
);
8638 if (flags
& NDR_OUT
) {
8639 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8640 NDR_PULL_ALLOC(ndr
, r
->out
.sids
);
8642 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8643 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sids
, LIBNDR_FLAG_REF_ALLOC
);
8644 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.sids
));
8645 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, LIBNDR_FLAG_REF_ALLOC
);
8646 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8648 return NDR_ERR_SUCCESS
;
8651 _PUBLIC_
void ndr_print_samr_GetMembersInAlias(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_GetMembersInAlias
*r
)
8653 ndr_print_struct(ndr
, name
, "samr_GetMembersInAlias");
8655 if (flags
& NDR_SET_VALUES
) {
8656 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8658 if (flags
& NDR_IN
) {
8659 ndr_print_struct(ndr
, "in", "samr_GetMembersInAlias");
8661 ndr_print_ptr(ndr
, "alias_handle", r
->in
.alias_handle
);
8663 ndr_print_policy_handle(ndr
, "alias_handle", r
->in
.alias_handle
);
8667 if (flags
& NDR_OUT
) {
8668 ndr_print_struct(ndr
, "out", "samr_GetMembersInAlias");
8670 ndr_print_ptr(ndr
, "sids", r
->out
.sids
);
8672 ndr_print_lsa_SidArray(ndr
, "sids", r
->out
.sids
);
8674 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8680 _PUBLIC_
enum ndr_err_code
ndr_push_samr_OpenUser(struct ndr_push
*ndr
, int flags
, const struct samr_OpenUser
*r
)
8682 if (flags
& NDR_IN
) {
8683 if (r
->in
.domain_handle
== NULL
) {
8684 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8686 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
8687 NDR_CHECK(ndr_push_samr_UserAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
8688 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.rid
));
8690 if (flags
& NDR_OUT
) {
8691 if (r
->out
.user_handle
== NULL
) {
8692 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8694 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.user_handle
));
8695 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8697 return NDR_ERR_SUCCESS
;
8700 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_OpenUser(struct ndr_pull
*ndr
, int flags
, struct samr_OpenUser
*r
)
8702 TALLOC_CTX
*_mem_save_domain_handle_0
;
8703 TALLOC_CTX
*_mem_save_user_handle_0
;
8704 if (flags
& NDR_IN
) {
8705 ZERO_STRUCT(r
->out
);
8707 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8708 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
8710 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8711 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
8712 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
8713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8714 NDR_CHECK(ndr_pull_samr_UserAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
8715 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.rid
));
8716 NDR_PULL_ALLOC(ndr
, r
->out
.user_handle
);
8717 ZERO_STRUCTP(r
->out
.user_handle
);
8719 if (flags
& NDR_OUT
) {
8720 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8721 NDR_PULL_ALLOC(ndr
, r
->out
.user_handle
);
8723 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8724 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
8725 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.user_handle
));
8726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8727 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8729 return NDR_ERR_SUCCESS
;
8732 _PUBLIC_
void ndr_print_samr_OpenUser(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_OpenUser
*r
)
8734 ndr_print_struct(ndr
, name
, "samr_OpenUser");
8736 if (flags
& NDR_SET_VALUES
) {
8737 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8739 if (flags
& NDR_IN
) {
8740 ndr_print_struct(ndr
, "in", "samr_OpenUser");
8742 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
8744 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
8746 ndr_print_samr_UserAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
8747 ndr_print_uint32(ndr
, "rid", r
->in
.rid
);
8750 if (flags
& NDR_OUT
) {
8751 ndr_print_struct(ndr
, "out", "samr_OpenUser");
8753 ndr_print_ptr(ndr
, "user_handle", r
->out
.user_handle
);
8755 ndr_print_policy_handle(ndr
, "user_handle", r
->out
.user_handle
);
8757 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8763 static enum ndr_err_code
ndr_push_samr_DeleteUser(struct ndr_push
*ndr
, int flags
, const struct samr_DeleteUser
*r
)
8765 if (flags
& NDR_IN
) {
8766 if (r
->in
.user_handle
== NULL
) {
8767 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8769 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
8771 if (flags
& NDR_OUT
) {
8772 if (r
->out
.user_handle
== NULL
) {
8773 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8775 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.user_handle
));
8776 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8778 return NDR_ERR_SUCCESS
;
8781 static enum ndr_err_code
ndr_pull_samr_DeleteUser(struct ndr_pull
*ndr
, int flags
, struct samr_DeleteUser
*r
)
8783 TALLOC_CTX
*_mem_save_user_handle_0
;
8784 if (flags
& NDR_IN
) {
8785 ZERO_STRUCT(r
->out
);
8787 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8788 NDR_PULL_ALLOC(ndr
, r
->in
.user_handle
);
8790 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8791 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
8792 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
8793 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8794 NDR_PULL_ALLOC(ndr
, r
->out
.user_handle
);
8795 *r
->out
.user_handle
= *r
->in
.user_handle
;
8797 if (flags
& NDR_OUT
) {
8798 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8799 NDR_PULL_ALLOC(ndr
, r
->out
.user_handle
);
8801 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8802 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
8803 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.user_handle
));
8804 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8805 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8807 return NDR_ERR_SUCCESS
;
8810 _PUBLIC_
void ndr_print_samr_DeleteUser(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_DeleteUser
*r
)
8812 ndr_print_struct(ndr
, name
, "samr_DeleteUser");
8814 if (flags
& NDR_SET_VALUES
) {
8815 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8817 if (flags
& NDR_IN
) {
8818 ndr_print_struct(ndr
, "in", "samr_DeleteUser");
8820 ndr_print_ptr(ndr
, "user_handle", r
->in
.user_handle
);
8822 ndr_print_policy_handle(ndr
, "user_handle", r
->in
.user_handle
);
8826 if (flags
& NDR_OUT
) {
8827 ndr_print_struct(ndr
, "out", "samr_DeleteUser");
8829 ndr_print_ptr(ndr
, "user_handle", r
->out
.user_handle
);
8831 ndr_print_policy_handle(ndr
, "user_handle", r
->out
.user_handle
);
8833 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8839 _PUBLIC_
enum ndr_err_code
ndr_push_samr_QueryUserInfo(struct ndr_push
*ndr
, int flags
, const struct samr_QueryUserInfo
*r
)
8841 if (flags
& NDR_IN
) {
8842 if (r
->in
.user_handle
== NULL
) {
8843 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8845 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
8846 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
8848 if (flags
& NDR_OUT
) {
8849 if (r
->out
.info
== NULL
) {
8850 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8852 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
8854 NDR_CHECK(ndr_push_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
8855 NDR_CHECK(ndr_push_samr_UserInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
8857 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8859 return NDR_ERR_SUCCESS
;
8862 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_QueryUserInfo(struct ndr_pull
*ndr
, int flags
, struct samr_QueryUserInfo
*r
)
8865 TALLOC_CTX
*_mem_save_user_handle_0
;
8866 TALLOC_CTX
*_mem_save_info_0
;
8867 TALLOC_CTX
*_mem_save_info_1
;
8868 if (flags
& NDR_IN
) {
8869 ZERO_STRUCT(r
->out
);
8871 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8872 NDR_PULL_ALLOC(ndr
, r
->in
.user_handle
);
8874 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8875 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
8876 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
8877 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8878 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
8879 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8880 ZERO_STRUCTP(r
->out
.info
);
8882 if (flags
& NDR_OUT
) {
8883 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8884 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8886 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8887 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
8888 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
8890 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
8892 *r
->out
.info
= NULL
;
8895 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8896 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
8897 NDR_CHECK(ndr_pull_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
8898 NDR_CHECK(ndr_pull_samr_UserInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
8899 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
8901 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
8902 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8904 return NDR_ERR_SUCCESS
;
8907 _PUBLIC_
void ndr_print_samr_QueryUserInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QueryUserInfo
*r
)
8909 ndr_print_struct(ndr
, name
, "samr_QueryUserInfo");
8911 if (flags
& NDR_SET_VALUES
) {
8912 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8914 if (flags
& NDR_IN
) {
8915 ndr_print_struct(ndr
, "in", "samr_QueryUserInfo");
8917 ndr_print_ptr(ndr
, "user_handle", r
->in
.user_handle
);
8919 ndr_print_policy_handle(ndr
, "user_handle", r
->in
.user_handle
);
8921 ndr_print_uint16(ndr
, "level", r
->in
.level
);
8924 if (flags
& NDR_OUT
) {
8925 ndr_print_struct(ndr
, "out", "samr_QueryUserInfo");
8927 ndr_print_ptr(ndr
, "info", r
->out
.info
);
8929 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
8932 ndr_print_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
);
8933 ndr_print_samr_UserInfo(ndr
, "info", *r
->out
.info
);
8937 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8943 _PUBLIC_
enum ndr_err_code
ndr_push_samr_SetUserInfo(struct ndr_push
*ndr
, int flags
, const struct samr_SetUserInfo
*r
)
8945 if (flags
& NDR_IN
) {
8946 if (r
->in
.user_handle
== NULL
) {
8947 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8949 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
8950 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
8951 if (r
->in
.info
== NULL
) {
8952 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8954 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
));
8955 NDR_CHECK(ndr_push_samr_UserInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info
));
8957 if (flags
& NDR_OUT
) {
8958 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8960 return NDR_ERR_SUCCESS
;
8963 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_SetUserInfo(struct ndr_pull
*ndr
, int flags
, struct samr_SetUserInfo
*r
)
8965 TALLOC_CTX
*_mem_save_user_handle_0
;
8966 TALLOC_CTX
*_mem_save_info_0
;
8967 if (flags
& NDR_IN
) {
8968 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8969 NDR_PULL_ALLOC(ndr
, r
->in
.user_handle
);
8971 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8972 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
8973 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
8974 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
8975 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
8976 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8977 NDR_PULL_ALLOC(ndr
, r
->in
.info
);
8979 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8980 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info
, LIBNDR_FLAG_REF_ALLOC
);
8981 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
));
8982 NDR_CHECK(ndr_pull_samr_UserInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info
));
8983 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
8985 if (flags
& NDR_OUT
) {
8986 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8988 return NDR_ERR_SUCCESS
;
8991 _PUBLIC_
void ndr_print_samr_SetUserInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_SetUserInfo
*r
)
8993 ndr_print_struct(ndr
, name
, "samr_SetUserInfo");
8995 if (flags
& NDR_SET_VALUES
) {
8996 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8998 if (flags
& NDR_IN
) {
8999 ndr_print_struct(ndr
, "in", "samr_SetUserInfo");
9001 ndr_print_ptr(ndr
, "user_handle", r
->in
.user_handle
);
9003 ndr_print_policy_handle(ndr
, "user_handle", r
->in
.user_handle
);
9005 ndr_print_uint16(ndr
, "level", r
->in
.level
);
9006 ndr_print_ptr(ndr
, "info", r
->in
.info
);
9008 ndr_print_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
);
9009 ndr_print_samr_UserInfo(ndr
, "info", r
->in
.info
);
9013 if (flags
& NDR_OUT
) {
9014 ndr_print_struct(ndr
, "out", "samr_SetUserInfo");
9016 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9022 static enum ndr_err_code
ndr_push_samr_ChangePasswordUser(struct ndr_push
*ndr
, int flags
, const struct samr_ChangePasswordUser
*r
)
9024 if (flags
& NDR_IN
) {
9025 if (r
->in
.user_handle
== NULL
) {
9026 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9028 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
9029 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.lm_present
));
9030 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.old_lm_crypted
));
9031 if (r
->in
.old_lm_crypted
) {
9032 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.old_lm_crypted
));
9034 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.new_lm_crypted
));
9035 if (r
->in
.new_lm_crypted
) {
9036 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_lm_crypted
));
9038 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.nt_present
));
9039 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.old_nt_crypted
));
9040 if (r
->in
.old_nt_crypted
) {
9041 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.old_nt_crypted
));
9043 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.new_nt_crypted
));
9044 if (r
->in
.new_nt_crypted
) {
9045 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_nt_crypted
));
9047 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.cross1_present
));
9048 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.nt_cross
));
9049 if (r
->in
.nt_cross
) {
9050 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.nt_cross
));
9052 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.cross2_present
));
9053 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.lm_cross
));
9054 if (r
->in
.lm_cross
) {
9055 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.lm_cross
));
9058 if (flags
& NDR_OUT
) {
9059 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9061 return NDR_ERR_SUCCESS
;
9064 static enum ndr_err_code
ndr_pull_samr_ChangePasswordUser(struct ndr_pull
*ndr
, int flags
, struct samr_ChangePasswordUser
*r
)
9066 uint32_t _ptr_old_lm_crypted
;
9067 uint32_t _ptr_new_lm_crypted
;
9068 uint32_t _ptr_old_nt_crypted
;
9069 uint32_t _ptr_new_nt_crypted
;
9070 uint32_t _ptr_nt_cross
;
9071 uint32_t _ptr_lm_cross
;
9072 TALLOC_CTX
*_mem_save_user_handle_0
;
9073 TALLOC_CTX
*_mem_save_old_lm_crypted_0
;
9074 TALLOC_CTX
*_mem_save_new_lm_crypted_0
;
9075 TALLOC_CTX
*_mem_save_old_nt_crypted_0
;
9076 TALLOC_CTX
*_mem_save_new_nt_crypted_0
;
9077 TALLOC_CTX
*_mem_save_nt_cross_0
;
9078 TALLOC_CTX
*_mem_save_lm_cross_0
;
9079 if (flags
& NDR_IN
) {
9080 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9081 NDR_PULL_ALLOC(ndr
, r
->in
.user_handle
);
9083 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9084 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
9085 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
9086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
9087 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.lm_present
));
9088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_old_lm_crypted
));
9089 if (_ptr_old_lm_crypted
) {
9090 NDR_PULL_ALLOC(ndr
, r
->in
.old_lm_crypted
);
9092 r
->in
.old_lm_crypted
= NULL
;
9094 if (r
->in
.old_lm_crypted
) {
9095 _mem_save_old_lm_crypted_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9096 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.old_lm_crypted
, 0);
9097 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.old_lm_crypted
));
9098 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_old_lm_crypted_0
, 0);
9100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_new_lm_crypted
));
9101 if (_ptr_new_lm_crypted
) {
9102 NDR_PULL_ALLOC(ndr
, r
->in
.new_lm_crypted
);
9104 r
->in
.new_lm_crypted
= NULL
;
9106 if (r
->in
.new_lm_crypted
) {
9107 _mem_save_new_lm_crypted_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9108 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_lm_crypted
, 0);
9109 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_lm_crypted
));
9110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_lm_crypted_0
, 0);
9112 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.nt_present
));
9113 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_old_nt_crypted
));
9114 if (_ptr_old_nt_crypted
) {
9115 NDR_PULL_ALLOC(ndr
, r
->in
.old_nt_crypted
);
9117 r
->in
.old_nt_crypted
= NULL
;
9119 if (r
->in
.old_nt_crypted
) {
9120 _mem_save_old_nt_crypted_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9121 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.old_nt_crypted
, 0);
9122 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.old_nt_crypted
));
9123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_old_nt_crypted_0
, 0);
9125 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_new_nt_crypted
));
9126 if (_ptr_new_nt_crypted
) {
9127 NDR_PULL_ALLOC(ndr
, r
->in
.new_nt_crypted
);
9129 r
->in
.new_nt_crypted
= NULL
;
9131 if (r
->in
.new_nt_crypted
) {
9132 _mem_save_new_nt_crypted_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9133 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_nt_crypted
, 0);
9134 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_nt_crypted
));
9135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_nt_crypted_0
, 0);
9137 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.cross1_present
));
9138 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_nt_cross
));
9139 if (_ptr_nt_cross
) {
9140 NDR_PULL_ALLOC(ndr
, r
->in
.nt_cross
);
9142 r
->in
.nt_cross
= NULL
;
9144 if (r
->in
.nt_cross
) {
9145 _mem_save_nt_cross_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9146 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.nt_cross
, 0);
9147 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.nt_cross
));
9148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_nt_cross_0
, 0);
9150 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.cross2_present
));
9151 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lm_cross
));
9152 if (_ptr_lm_cross
) {
9153 NDR_PULL_ALLOC(ndr
, r
->in
.lm_cross
);
9155 r
->in
.lm_cross
= NULL
;
9157 if (r
->in
.lm_cross
) {
9158 _mem_save_lm_cross_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9159 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.lm_cross
, 0);
9160 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.lm_cross
));
9161 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lm_cross_0
, 0);
9164 if (flags
& NDR_OUT
) {
9165 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9167 return NDR_ERR_SUCCESS
;
9170 _PUBLIC_
void ndr_print_samr_ChangePasswordUser(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_ChangePasswordUser
*r
)
9172 ndr_print_struct(ndr
, name
, "samr_ChangePasswordUser");
9174 if (flags
& NDR_SET_VALUES
) {
9175 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9177 if (flags
& NDR_IN
) {
9178 ndr_print_struct(ndr
, "in", "samr_ChangePasswordUser");
9180 ndr_print_ptr(ndr
, "user_handle", r
->in
.user_handle
);
9182 ndr_print_policy_handle(ndr
, "user_handle", r
->in
.user_handle
);
9184 ndr_print_uint8(ndr
, "lm_present", r
->in
.lm_present
);
9185 ndr_print_ptr(ndr
, "old_lm_crypted", r
->in
.old_lm_crypted
);
9187 if (r
->in
.old_lm_crypted
) {
9188 ndr_print_samr_Password(ndr
, "old_lm_crypted", r
->in
.old_lm_crypted
);
9191 ndr_print_ptr(ndr
, "new_lm_crypted", r
->in
.new_lm_crypted
);
9193 if (r
->in
.new_lm_crypted
) {
9194 ndr_print_samr_Password(ndr
, "new_lm_crypted", r
->in
.new_lm_crypted
);
9197 ndr_print_uint8(ndr
, "nt_present", r
->in
.nt_present
);
9198 ndr_print_ptr(ndr
, "old_nt_crypted", r
->in
.old_nt_crypted
);
9200 if (r
->in
.old_nt_crypted
) {
9201 ndr_print_samr_Password(ndr
, "old_nt_crypted", r
->in
.old_nt_crypted
);
9204 ndr_print_ptr(ndr
, "new_nt_crypted", r
->in
.new_nt_crypted
);
9206 if (r
->in
.new_nt_crypted
) {
9207 ndr_print_samr_Password(ndr
, "new_nt_crypted", r
->in
.new_nt_crypted
);
9210 ndr_print_uint8(ndr
, "cross1_present", r
->in
.cross1_present
);
9211 ndr_print_ptr(ndr
, "nt_cross", r
->in
.nt_cross
);
9213 if (r
->in
.nt_cross
) {
9214 ndr_print_samr_Password(ndr
, "nt_cross", r
->in
.nt_cross
);
9217 ndr_print_uint8(ndr
, "cross2_present", r
->in
.cross2_present
);
9218 ndr_print_ptr(ndr
, "lm_cross", r
->in
.lm_cross
);
9220 if (r
->in
.lm_cross
) {
9221 ndr_print_samr_Password(ndr
, "lm_cross", r
->in
.lm_cross
);
9226 if (flags
& NDR_OUT
) {
9227 ndr_print_struct(ndr
, "out", "samr_ChangePasswordUser");
9229 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9235 static enum ndr_err_code
ndr_push_samr_GetGroupsForUser(struct ndr_push
*ndr
, int flags
, const struct samr_GetGroupsForUser
*r
)
9237 if (flags
& NDR_IN
) {
9238 if (r
->in
.user_handle
== NULL
) {
9239 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9241 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
9243 if (flags
& NDR_OUT
) {
9244 if (r
->out
.rids
== NULL
) {
9245 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9247 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.rids
));
9249 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.rids
));
9251 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9253 return NDR_ERR_SUCCESS
;
9256 static enum ndr_err_code
ndr_pull_samr_GetGroupsForUser(struct ndr_pull
*ndr
, int flags
, struct samr_GetGroupsForUser
*r
)
9259 TALLOC_CTX
*_mem_save_user_handle_0
;
9260 TALLOC_CTX
*_mem_save_rids_0
;
9261 TALLOC_CTX
*_mem_save_rids_1
;
9262 if (flags
& NDR_IN
) {
9263 ZERO_STRUCT(r
->out
);
9265 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9266 NDR_PULL_ALLOC(ndr
, r
->in
.user_handle
);
9268 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9269 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
9270 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
9271 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
9272 NDR_PULL_ALLOC(ndr
, r
->out
.rids
);
9273 ZERO_STRUCTP(r
->out
.rids
);
9275 if (flags
& NDR_OUT
) {
9276 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9277 NDR_PULL_ALLOC(ndr
, r
->out
.rids
);
9279 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9280 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rids
, LIBNDR_FLAG_REF_ALLOC
);
9281 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
9283 NDR_PULL_ALLOC(ndr
, *r
->out
.rids
);
9285 *r
->out
.rids
= NULL
;
9288 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9289 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.rids
, 0);
9290 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.rids
));
9291 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
9293 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, LIBNDR_FLAG_REF_ALLOC
);
9294 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9296 return NDR_ERR_SUCCESS
;
9299 _PUBLIC_
void ndr_print_samr_GetGroupsForUser(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_GetGroupsForUser
*r
)
9301 ndr_print_struct(ndr
, name
, "samr_GetGroupsForUser");
9303 if (flags
& NDR_SET_VALUES
) {
9304 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9306 if (flags
& NDR_IN
) {
9307 ndr_print_struct(ndr
, "in", "samr_GetGroupsForUser");
9309 ndr_print_ptr(ndr
, "user_handle", r
->in
.user_handle
);
9311 ndr_print_policy_handle(ndr
, "user_handle", r
->in
.user_handle
);
9315 if (flags
& NDR_OUT
) {
9316 ndr_print_struct(ndr
, "out", "samr_GetGroupsForUser");
9318 ndr_print_ptr(ndr
, "rids", r
->out
.rids
);
9320 ndr_print_ptr(ndr
, "rids", *r
->out
.rids
);
9323 ndr_print_samr_RidWithAttributeArray(ndr
, "rids", *r
->out
.rids
);
9327 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9333 static enum ndr_err_code
ndr_push_samr_QueryDisplayInfo(struct ndr_push
*ndr
, int flags
, const struct samr_QueryDisplayInfo
*r
)
9335 if (flags
& NDR_IN
) {
9336 if (r
->in
.domain_handle
== NULL
) {
9337 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9339 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
9340 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
9341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.start_idx
));
9342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.max_entries
));
9343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buf_size
));
9345 if (flags
& NDR_OUT
) {
9346 if (r
->out
.total_size
== NULL
) {
9347 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_size
));
9350 if (r
->out
.returned_size
== NULL
) {
9351 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9353 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.returned_size
));
9354 if (r
->out
.info
== NULL
) {
9355 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9357 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
9358 NDR_CHECK(ndr_push_samr_DispInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
9359 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9361 return NDR_ERR_SUCCESS
;
9364 static enum ndr_err_code
ndr_pull_samr_QueryDisplayInfo(struct ndr_pull
*ndr
, int flags
, struct samr_QueryDisplayInfo
*r
)
9366 TALLOC_CTX
*_mem_save_domain_handle_0
;
9367 TALLOC_CTX
*_mem_save_total_size_0
;
9368 TALLOC_CTX
*_mem_save_returned_size_0
;
9369 TALLOC_CTX
*_mem_save_info_0
;
9370 if (flags
& NDR_IN
) {
9371 ZERO_STRUCT(r
->out
);
9373 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9374 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
9376 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9377 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
9378 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
9379 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
9380 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
9381 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.start_idx
));
9382 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.max_entries
));
9383 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buf_size
));
9384 NDR_PULL_ALLOC(ndr
, r
->out
.total_size
);
9385 ZERO_STRUCTP(r
->out
.total_size
);
9386 NDR_PULL_ALLOC(ndr
, r
->out
.returned_size
);
9387 ZERO_STRUCTP(r
->out
.returned_size
);
9388 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9389 ZERO_STRUCTP(r
->out
.info
);
9391 if (flags
& NDR_OUT
) {
9392 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9393 NDR_PULL_ALLOC(ndr
, r
->out
.total_size
);
9395 _mem_save_total_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9396 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_size
, LIBNDR_FLAG_REF_ALLOC
);
9397 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_size
));
9398 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_size_0
, LIBNDR_FLAG_REF_ALLOC
);
9399 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9400 NDR_PULL_ALLOC(ndr
, r
->out
.returned_size
);
9402 _mem_save_returned_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9403 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.returned_size
, LIBNDR_FLAG_REF_ALLOC
);
9404 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.returned_size
));
9405 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_returned_size_0
, LIBNDR_FLAG_REF_ALLOC
);
9406 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9407 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9409 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9410 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9411 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
9412 NDR_CHECK(ndr_pull_samr_DispInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
9413 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9414 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9416 return NDR_ERR_SUCCESS
;
9419 _PUBLIC_
void ndr_print_samr_QueryDisplayInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QueryDisplayInfo
*r
)
9421 ndr_print_struct(ndr
, name
, "samr_QueryDisplayInfo");
9423 if (flags
& NDR_SET_VALUES
) {
9424 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9426 if (flags
& NDR_IN
) {
9427 ndr_print_struct(ndr
, "in", "samr_QueryDisplayInfo");
9429 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
9431 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
9433 ndr_print_uint16(ndr
, "level", r
->in
.level
);
9434 ndr_print_uint32(ndr
, "start_idx", r
->in
.start_idx
);
9435 ndr_print_uint32(ndr
, "max_entries", r
->in
.max_entries
);
9436 ndr_print_uint32(ndr
, "buf_size", r
->in
.buf_size
);
9439 if (flags
& NDR_OUT
) {
9440 ndr_print_struct(ndr
, "out", "samr_QueryDisplayInfo");
9442 ndr_print_ptr(ndr
, "total_size", r
->out
.total_size
);
9444 ndr_print_uint32(ndr
, "total_size", *r
->out
.total_size
);
9446 ndr_print_ptr(ndr
, "returned_size", r
->out
.returned_size
);
9448 ndr_print_uint32(ndr
, "returned_size", *r
->out
.returned_size
);
9450 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9452 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
9453 ndr_print_samr_DispInfo(ndr
, "info", r
->out
.info
);
9455 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9461 static enum ndr_err_code
ndr_push_samr_GetDisplayEnumerationIndex(struct ndr_push
*ndr
, int flags
, const struct samr_GetDisplayEnumerationIndex
*r
)
9463 if (flags
& NDR_IN
) {
9464 if (r
->in
.domain_handle
== NULL
) {
9465 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9467 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
9468 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
9469 if (r
->in
.name
== NULL
) {
9470 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9472 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
9474 if (flags
& NDR_OUT
) {
9475 if (r
->out
.idx
== NULL
) {
9476 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.idx
));
9479 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9481 return NDR_ERR_SUCCESS
;
9484 static enum ndr_err_code
ndr_pull_samr_GetDisplayEnumerationIndex(struct ndr_pull
*ndr
, int flags
, struct samr_GetDisplayEnumerationIndex
*r
)
9486 TALLOC_CTX
*_mem_save_domain_handle_0
;
9487 TALLOC_CTX
*_mem_save_name_0
;
9488 TALLOC_CTX
*_mem_save_idx_0
;
9489 if (flags
& NDR_IN
) {
9490 ZERO_STRUCT(r
->out
);
9492 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9493 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
9495 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9496 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
9497 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
9498 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
9499 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
9500 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9501 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
9503 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9504 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
9505 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
9506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
9507 NDR_PULL_ALLOC(ndr
, r
->out
.idx
);
9508 ZERO_STRUCTP(r
->out
.idx
);
9510 if (flags
& NDR_OUT
) {
9511 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9512 NDR_PULL_ALLOC(ndr
, r
->out
.idx
);
9514 _mem_save_idx_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9515 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.idx
, LIBNDR_FLAG_REF_ALLOC
);
9516 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.idx
));
9517 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_idx_0
, LIBNDR_FLAG_REF_ALLOC
);
9518 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9520 return NDR_ERR_SUCCESS
;
9523 _PUBLIC_
void ndr_print_samr_GetDisplayEnumerationIndex(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_GetDisplayEnumerationIndex
*r
)
9525 ndr_print_struct(ndr
, name
, "samr_GetDisplayEnumerationIndex");
9527 if (flags
& NDR_SET_VALUES
) {
9528 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9530 if (flags
& NDR_IN
) {
9531 ndr_print_struct(ndr
, "in", "samr_GetDisplayEnumerationIndex");
9533 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
9535 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
9537 ndr_print_uint16(ndr
, "level", r
->in
.level
);
9538 ndr_print_ptr(ndr
, "name", r
->in
.name
);
9540 ndr_print_lsa_String(ndr
, "name", r
->in
.name
);
9544 if (flags
& NDR_OUT
) {
9545 ndr_print_struct(ndr
, "out", "samr_GetDisplayEnumerationIndex");
9547 ndr_print_ptr(ndr
, "idx", r
->out
.idx
);
9549 ndr_print_uint32(ndr
, "idx", *r
->out
.idx
);
9551 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9557 static enum ndr_err_code
ndr_push_samr_TestPrivateFunctionsDomain(struct ndr_push
*ndr
, int flags
, const struct samr_TestPrivateFunctionsDomain
*r
)
9559 if (flags
& NDR_IN
) {
9560 if (r
->in
.domain_handle
== NULL
) {
9561 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9563 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
9565 if (flags
& NDR_OUT
) {
9566 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9568 return NDR_ERR_SUCCESS
;
9571 static enum ndr_err_code
ndr_pull_samr_TestPrivateFunctionsDomain(struct ndr_pull
*ndr
, int flags
, struct samr_TestPrivateFunctionsDomain
*r
)
9573 TALLOC_CTX
*_mem_save_domain_handle_0
;
9574 if (flags
& NDR_IN
) {
9575 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9576 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
9578 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9579 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
9580 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
9581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
9583 if (flags
& NDR_OUT
) {
9584 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9586 return NDR_ERR_SUCCESS
;
9589 _PUBLIC_
void ndr_print_samr_TestPrivateFunctionsDomain(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_TestPrivateFunctionsDomain
*r
)
9591 ndr_print_struct(ndr
, name
, "samr_TestPrivateFunctionsDomain");
9593 if (flags
& NDR_SET_VALUES
) {
9594 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9596 if (flags
& NDR_IN
) {
9597 ndr_print_struct(ndr
, "in", "samr_TestPrivateFunctionsDomain");
9599 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
9601 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
9605 if (flags
& NDR_OUT
) {
9606 ndr_print_struct(ndr
, "out", "samr_TestPrivateFunctionsDomain");
9608 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9614 static enum ndr_err_code
ndr_push_samr_TestPrivateFunctionsUser(struct ndr_push
*ndr
, int flags
, const struct samr_TestPrivateFunctionsUser
*r
)
9616 if (flags
& NDR_IN
) {
9617 if (r
->in
.user_handle
== NULL
) {
9618 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9620 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
9622 if (flags
& NDR_OUT
) {
9623 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9625 return NDR_ERR_SUCCESS
;
9628 static enum ndr_err_code
ndr_pull_samr_TestPrivateFunctionsUser(struct ndr_pull
*ndr
, int flags
, struct samr_TestPrivateFunctionsUser
*r
)
9630 TALLOC_CTX
*_mem_save_user_handle_0
;
9631 if (flags
& NDR_IN
) {
9632 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9633 NDR_PULL_ALLOC(ndr
, r
->in
.user_handle
);
9635 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9636 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
9637 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
9638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
9640 if (flags
& NDR_OUT
) {
9641 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9643 return NDR_ERR_SUCCESS
;
9646 _PUBLIC_
void ndr_print_samr_TestPrivateFunctionsUser(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_TestPrivateFunctionsUser
*r
)
9648 ndr_print_struct(ndr
, name
, "samr_TestPrivateFunctionsUser");
9650 if (flags
& NDR_SET_VALUES
) {
9651 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9653 if (flags
& NDR_IN
) {
9654 ndr_print_struct(ndr
, "in", "samr_TestPrivateFunctionsUser");
9656 ndr_print_ptr(ndr
, "user_handle", r
->in
.user_handle
);
9658 ndr_print_policy_handle(ndr
, "user_handle", r
->in
.user_handle
);
9662 if (flags
& NDR_OUT
) {
9663 ndr_print_struct(ndr
, "out", "samr_TestPrivateFunctionsUser");
9665 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9671 _PUBLIC_
enum ndr_err_code
ndr_push_samr_GetUserPwInfo(struct ndr_push
*ndr
, int flags
, const struct samr_GetUserPwInfo
*r
)
9673 if (flags
& NDR_IN
) {
9674 if (r
->in
.user_handle
== NULL
) {
9675 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9677 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
9679 if (flags
& NDR_OUT
) {
9680 if (r
->out
.info
== NULL
) {
9681 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9683 NDR_CHECK(ndr_push_samr_PwInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9684 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9686 return NDR_ERR_SUCCESS
;
9689 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_GetUserPwInfo(struct ndr_pull
*ndr
, int flags
, struct samr_GetUserPwInfo
*r
)
9691 TALLOC_CTX
*_mem_save_user_handle_0
;
9692 TALLOC_CTX
*_mem_save_info_0
;
9693 if (flags
& NDR_IN
) {
9694 ZERO_STRUCT(r
->out
);
9696 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9697 NDR_PULL_ALLOC(ndr
, r
->in
.user_handle
);
9699 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9700 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
9701 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
9702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
9703 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9704 ZERO_STRUCTP(r
->out
.info
);
9706 if (flags
& NDR_OUT
) {
9707 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9708 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9710 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9711 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9712 NDR_CHECK(ndr_pull_samr_PwInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9714 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9716 return NDR_ERR_SUCCESS
;
9719 _PUBLIC_
void ndr_print_samr_GetUserPwInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_GetUserPwInfo
*r
)
9721 ndr_print_struct(ndr
, name
, "samr_GetUserPwInfo");
9723 if (flags
& NDR_SET_VALUES
) {
9724 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9726 if (flags
& NDR_IN
) {
9727 ndr_print_struct(ndr
, "in", "samr_GetUserPwInfo");
9729 ndr_print_ptr(ndr
, "user_handle", r
->in
.user_handle
);
9731 ndr_print_policy_handle(ndr
, "user_handle", r
->in
.user_handle
);
9735 if (flags
& NDR_OUT
) {
9736 ndr_print_struct(ndr
, "out", "samr_GetUserPwInfo");
9738 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9740 ndr_print_samr_PwInfo(ndr
, "info", r
->out
.info
);
9742 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9748 static enum ndr_err_code
ndr_push_samr_RemoveMemberFromForeignDomain(struct ndr_push
*ndr
, int flags
, const struct samr_RemoveMemberFromForeignDomain
*r
)
9750 if (flags
& NDR_IN
) {
9751 if (r
->in
.domain_handle
== NULL
) {
9752 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9754 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
9755 if (r
->in
.sid
== NULL
) {
9756 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9758 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sid
));
9760 if (flags
& NDR_OUT
) {
9761 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9763 return NDR_ERR_SUCCESS
;
9766 static enum ndr_err_code
ndr_pull_samr_RemoveMemberFromForeignDomain(struct ndr_pull
*ndr
, int flags
, struct samr_RemoveMemberFromForeignDomain
*r
)
9768 TALLOC_CTX
*_mem_save_domain_handle_0
;
9769 TALLOC_CTX
*_mem_save_sid_0
;
9770 if (flags
& NDR_IN
) {
9771 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9772 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
9774 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9775 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
9776 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
9777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
9778 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9779 NDR_PULL_ALLOC(ndr
, r
->in
.sid
);
9781 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9782 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sid
, LIBNDR_FLAG_REF_ALLOC
);
9783 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sid
));
9784 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, LIBNDR_FLAG_REF_ALLOC
);
9786 if (flags
& NDR_OUT
) {
9787 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9789 return NDR_ERR_SUCCESS
;
9792 _PUBLIC_
void ndr_print_samr_RemoveMemberFromForeignDomain(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_RemoveMemberFromForeignDomain
*r
)
9794 ndr_print_struct(ndr
, name
, "samr_RemoveMemberFromForeignDomain");
9796 if (flags
& NDR_SET_VALUES
) {
9797 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9799 if (flags
& NDR_IN
) {
9800 ndr_print_struct(ndr
, "in", "samr_RemoveMemberFromForeignDomain");
9802 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
9804 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
9806 ndr_print_ptr(ndr
, "sid", r
->in
.sid
);
9808 ndr_print_dom_sid2(ndr
, "sid", r
->in
.sid
);
9812 if (flags
& NDR_OUT
) {
9813 ndr_print_struct(ndr
, "out", "samr_RemoveMemberFromForeignDomain");
9815 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9821 static enum ndr_err_code
ndr_push_samr_QueryDomainInfo2(struct ndr_push
*ndr
, int flags
, const struct samr_QueryDomainInfo2
*r
)
9823 if (flags
& NDR_IN
) {
9824 if (r
->in
.domain_handle
== NULL
) {
9825 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9827 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
9828 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
9830 if (flags
& NDR_OUT
) {
9831 if (r
->out
.info
== NULL
) {
9832 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9834 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
9836 NDR_CHECK(ndr_push_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
9837 NDR_CHECK(ndr_push_samr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9839 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9841 return NDR_ERR_SUCCESS
;
9844 static enum ndr_err_code
ndr_pull_samr_QueryDomainInfo2(struct ndr_pull
*ndr
, int flags
, struct samr_QueryDomainInfo2
*r
)
9847 TALLOC_CTX
*_mem_save_domain_handle_0
;
9848 TALLOC_CTX
*_mem_save_info_0
;
9849 TALLOC_CTX
*_mem_save_info_1
;
9850 if (flags
& NDR_IN
) {
9851 ZERO_STRUCT(r
->out
);
9853 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9854 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
9856 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9857 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
9858 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
9859 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
9860 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
9861 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9862 ZERO_STRUCTP(r
->out
.info
);
9864 if (flags
& NDR_OUT
) {
9865 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9866 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9868 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9869 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9870 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
9872 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
9874 *r
->out
.info
= NULL
;
9877 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9878 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
9879 NDR_CHECK(ndr_pull_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
9880 NDR_CHECK(ndr_pull_samr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
9883 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9884 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9886 return NDR_ERR_SUCCESS
;
9889 _PUBLIC_
void ndr_print_samr_QueryDomainInfo2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QueryDomainInfo2
*r
)
9891 ndr_print_struct(ndr
, name
, "samr_QueryDomainInfo2");
9893 if (flags
& NDR_SET_VALUES
) {
9894 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9896 if (flags
& NDR_IN
) {
9897 ndr_print_struct(ndr
, "in", "samr_QueryDomainInfo2");
9899 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
9901 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
9903 ndr_print_uint16(ndr
, "level", r
->in
.level
);
9906 if (flags
& NDR_OUT
) {
9907 ndr_print_struct(ndr
, "out", "samr_QueryDomainInfo2");
9909 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9911 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
9914 ndr_print_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
);
9915 ndr_print_samr_DomainInfo(ndr
, "info", *r
->out
.info
);
9919 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9925 static enum ndr_err_code
ndr_push_samr_QueryUserInfo2(struct ndr_push
*ndr
, int flags
, const struct samr_QueryUserInfo2
*r
)
9927 if (flags
& NDR_IN
) {
9928 if (r
->in
.user_handle
== NULL
) {
9929 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9931 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
9932 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
9934 if (flags
& NDR_OUT
) {
9935 if (r
->out
.info
== NULL
) {
9936 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9938 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
9940 NDR_CHECK(ndr_push_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
9941 NDR_CHECK(ndr_push_samr_UserInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9943 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9945 return NDR_ERR_SUCCESS
;
9948 static enum ndr_err_code
ndr_pull_samr_QueryUserInfo2(struct ndr_pull
*ndr
, int flags
, struct samr_QueryUserInfo2
*r
)
9951 TALLOC_CTX
*_mem_save_user_handle_0
;
9952 TALLOC_CTX
*_mem_save_info_0
;
9953 TALLOC_CTX
*_mem_save_info_1
;
9954 if (flags
& NDR_IN
) {
9955 ZERO_STRUCT(r
->out
);
9957 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9958 NDR_PULL_ALLOC(ndr
, r
->in
.user_handle
);
9960 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9961 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
9962 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
9963 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
9964 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
9965 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9966 ZERO_STRUCTP(r
->out
.info
);
9968 if (flags
& NDR_OUT
) {
9969 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9970 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9972 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9973 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9974 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
9976 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
9978 *r
->out
.info
= NULL
;
9981 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9982 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
9983 NDR_CHECK(ndr_pull_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
));
9984 NDR_CHECK(ndr_pull_samr_UserInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
9987 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9988 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9990 return NDR_ERR_SUCCESS
;
9993 _PUBLIC_
void ndr_print_samr_QueryUserInfo2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QueryUserInfo2
*r
)
9995 ndr_print_struct(ndr
, name
, "samr_QueryUserInfo2");
9997 if (flags
& NDR_SET_VALUES
) {
9998 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10000 if (flags
& NDR_IN
) {
10001 ndr_print_struct(ndr
, "in", "samr_QueryUserInfo2");
10003 ndr_print_ptr(ndr
, "user_handle", r
->in
.user_handle
);
10005 ndr_print_policy_handle(ndr
, "user_handle", r
->in
.user_handle
);
10007 ndr_print_uint16(ndr
, "level", r
->in
.level
);
10010 if (flags
& NDR_OUT
) {
10011 ndr_print_struct(ndr
, "out", "samr_QueryUserInfo2");
10013 ndr_print_ptr(ndr
, "info", r
->out
.info
);
10015 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
10017 if (*r
->out
.info
) {
10018 ndr_print_set_switch_value(ndr
, *r
->out
.info
, r
->in
.level
);
10019 ndr_print_samr_UserInfo(ndr
, "info", *r
->out
.info
);
10023 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10029 static enum ndr_err_code
ndr_push_samr_QueryDisplayInfo2(struct ndr_push
*ndr
, int flags
, const struct samr_QueryDisplayInfo2
*r
)
10031 if (flags
& NDR_IN
) {
10032 if (r
->in
.domain_handle
== NULL
) {
10033 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10035 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
10036 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
10037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.start_idx
));
10038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.max_entries
));
10039 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buf_size
));
10041 if (flags
& NDR_OUT
) {
10042 if (r
->out
.total_size
== NULL
) {
10043 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_size
));
10046 if (r
->out
.returned_size
== NULL
) {
10047 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.returned_size
));
10050 if (r
->out
.info
== NULL
) {
10051 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10053 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
10054 NDR_CHECK(ndr_push_samr_DispInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10055 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10057 return NDR_ERR_SUCCESS
;
10060 static enum ndr_err_code
ndr_pull_samr_QueryDisplayInfo2(struct ndr_pull
*ndr
, int flags
, struct samr_QueryDisplayInfo2
*r
)
10062 TALLOC_CTX
*_mem_save_domain_handle_0
;
10063 TALLOC_CTX
*_mem_save_total_size_0
;
10064 TALLOC_CTX
*_mem_save_returned_size_0
;
10065 TALLOC_CTX
*_mem_save_info_0
;
10066 if (flags
& NDR_IN
) {
10067 ZERO_STRUCT(r
->out
);
10069 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10070 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
10072 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10073 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
10074 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
10075 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
10076 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
10077 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.start_idx
));
10078 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.max_entries
));
10079 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buf_size
));
10080 NDR_PULL_ALLOC(ndr
, r
->out
.total_size
);
10081 ZERO_STRUCTP(r
->out
.total_size
);
10082 NDR_PULL_ALLOC(ndr
, r
->out
.returned_size
);
10083 ZERO_STRUCTP(r
->out
.returned_size
);
10084 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
10085 ZERO_STRUCTP(r
->out
.info
);
10087 if (flags
& NDR_OUT
) {
10088 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10089 NDR_PULL_ALLOC(ndr
, r
->out
.total_size
);
10091 _mem_save_total_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10092 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_size
, LIBNDR_FLAG_REF_ALLOC
);
10093 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_size
));
10094 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_size_0
, LIBNDR_FLAG_REF_ALLOC
);
10095 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10096 NDR_PULL_ALLOC(ndr
, r
->out
.returned_size
);
10098 _mem_save_returned_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10099 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.returned_size
, LIBNDR_FLAG_REF_ALLOC
);
10100 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.returned_size
));
10101 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_returned_size_0
, LIBNDR_FLAG_REF_ALLOC
);
10102 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10103 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
10105 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10106 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
10107 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
10108 NDR_CHECK(ndr_pull_samr_DispInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10109 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
10110 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10112 return NDR_ERR_SUCCESS
;
10115 _PUBLIC_
void ndr_print_samr_QueryDisplayInfo2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QueryDisplayInfo2
*r
)
10117 ndr_print_struct(ndr
, name
, "samr_QueryDisplayInfo2");
10119 if (flags
& NDR_SET_VALUES
) {
10120 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10122 if (flags
& NDR_IN
) {
10123 ndr_print_struct(ndr
, "in", "samr_QueryDisplayInfo2");
10125 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
10127 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
10129 ndr_print_uint16(ndr
, "level", r
->in
.level
);
10130 ndr_print_uint32(ndr
, "start_idx", r
->in
.start_idx
);
10131 ndr_print_uint32(ndr
, "max_entries", r
->in
.max_entries
);
10132 ndr_print_uint32(ndr
, "buf_size", r
->in
.buf_size
);
10135 if (flags
& NDR_OUT
) {
10136 ndr_print_struct(ndr
, "out", "samr_QueryDisplayInfo2");
10138 ndr_print_ptr(ndr
, "total_size", r
->out
.total_size
);
10140 ndr_print_uint32(ndr
, "total_size", *r
->out
.total_size
);
10142 ndr_print_ptr(ndr
, "returned_size", r
->out
.returned_size
);
10144 ndr_print_uint32(ndr
, "returned_size", *r
->out
.returned_size
);
10146 ndr_print_ptr(ndr
, "info", r
->out
.info
);
10148 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
10149 ndr_print_samr_DispInfo(ndr
, "info", r
->out
.info
);
10151 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10157 static enum ndr_err_code
ndr_push_samr_GetDisplayEnumerationIndex2(struct ndr_push
*ndr
, int flags
, const struct samr_GetDisplayEnumerationIndex2
*r
)
10159 if (flags
& NDR_IN
) {
10160 if (r
->in
.domain_handle
== NULL
) {
10161 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10163 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
10164 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
10165 if (r
->in
.name
== NULL
) {
10166 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10168 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
10170 if (flags
& NDR_OUT
) {
10171 if (r
->out
.idx
== NULL
) {
10172 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.idx
));
10175 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10177 return NDR_ERR_SUCCESS
;
10180 static enum ndr_err_code
ndr_pull_samr_GetDisplayEnumerationIndex2(struct ndr_pull
*ndr
, int flags
, struct samr_GetDisplayEnumerationIndex2
*r
)
10182 TALLOC_CTX
*_mem_save_domain_handle_0
;
10183 TALLOC_CTX
*_mem_save_name_0
;
10184 TALLOC_CTX
*_mem_save_idx_0
;
10185 if (flags
& NDR_IN
) {
10186 ZERO_STRUCT(r
->out
);
10188 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10189 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
10191 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10192 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
10193 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
10194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
10195 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
10196 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10197 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
10199 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10200 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, LIBNDR_FLAG_REF_ALLOC
);
10201 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
10202 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, LIBNDR_FLAG_REF_ALLOC
);
10203 NDR_PULL_ALLOC(ndr
, r
->out
.idx
);
10204 ZERO_STRUCTP(r
->out
.idx
);
10206 if (flags
& NDR_OUT
) {
10207 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10208 NDR_PULL_ALLOC(ndr
, r
->out
.idx
);
10210 _mem_save_idx_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10211 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.idx
, LIBNDR_FLAG_REF_ALLOC
);
10212 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.idx
));
10213 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_idx_0
, LIBNDR_FLAG_REF_ALLOC
);
10214 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10216 return NDR_ERR_SUCCESS
;
10219 _PUBLIC_
void ndr_print_samr_GetDisplayEnumerationIndex2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_GetDisplayEnumerationIndex2
*r
)
10221 ndr_print_struct(ndr
, name
, "samr_GetDisplayEnumerationIndex2");
10223 if (flags
& NDR_SET_VALUES
) {
10224 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10226 if (flags
& NDR_IN
) {
10227 ndr_print_struct(ndr
, "in", "samr_GetDisplayEnumerationIndex2");
10229 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
10231 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
10233 ndr_print_uint16(ndr
, "level", r
->in
.level
);
10234 ndr_print_ptr(ndr
, "name", r
->in
.name
);
10236 ndr_print_lsa_String(ndr
, "name", r
->in
.name
);
10240 if (flags
& NDR_OUT
) {
10241 ndr_print_struct(ndr
, "out", "samr_GetDisplayEnumerationIndex2");
10243 ndr_print_ptr(ndr
, "idx", r
->out
.idx
);
10245 ndr_print_uint32(ndr
, "idx", *r
->out
.idx
);
10247 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10253 static enum ndr_err_code
ndr_push_samr_CreateUser2(struct ndr_push
*ndr
, int flags
, const struct samr_CreateUser2
*r
)
10255 if (flags
& NDR_IN
) {
10256 if (r
->in
.domain_handle
== NULL
) {
10257 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10259 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
10260 if (r
->in
.account_name
== NULL
) {
10261 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10263 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.account_name
));
10264 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->in
.acct_flags
));
10265 NDR_CHECK(ndr_push_samr_UserAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
10267 if (flags
& NDR_OUT
) {
10268 if (r
->out
.user_handle
== NULL
) {
10269 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10271 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.user_handle
));
10272 if (r
->out
.access_granted
== NULL
) {
10273 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.access_granted
));
10276 if (r
->out
.rid
== NULL
) {
10277 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
10280 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10282 return NDR_ERR_SUCCESS
;
10285 static enum ndr_err_code
ndr_pull_samr_CreateUser2(struct ndr_pull
*ndr
, int flags
, struct samr_CreateUser2
*r
)
10287 TALLOC_CTX
*_mem_save_domain_handle_0
;
10288 TALLOC_CTX
*_mem_save_account_name_0
;
10289 TALLOC_CTX
*_mem_save_user_handle_0
;
10290 TALLOC_CTX
*_mem_save_access_granted_0
;
10291 TALLOC_CTX
*_mem_save_rid_0
;
10292 if (flags
& NDR_IN
) {
10293 ZERO_STRUCT(r
->out
);
10295 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10296 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
10298 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10299 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
10300 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
10301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
10302 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10303 NDR_PULL_ALLOC(ndr
, r
->in
.account_name
);
10305 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10306 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.account_name
, LIBNDR_FLAG_REF_ALLOC
);
10307 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.account_name
));
10308 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, LIBNDR_FLAG_REF_ALLOC
);
10309 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->in
.acct_flags
));
10310 NDR_CHECK(ndr_pull_samr_UserAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
10311 NDR_PULL_ALLOC(ndr
, r
->out
.user_handle
);
10312 ZERO_STRUCTP(r
->out
.user_handle
);
10313 NDR_PULL_ALLOC(ndr
, r
->out
.access_granted
);
10314 ZERO_STRUCTP(r
->out
.access_granted
);
10315 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
10316 ZERO_STRUCTP(r
->out
.rid
);
10318 if (flags
& NDR_OUT
) {
10319 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10320 NDR_PULL_ALLOC(ndr
, r
->out
.user_handle
);
10322 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10323 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
10324 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.user_handle
));
10325 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
10326 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10327 NDR_PULL_ALLOC(ndr
, r
->out
.access_granted
);
10329 _mem_save_access_granted_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10330 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.access_granted
, LIBNDR_FLAG_REF_ALLOC
);
10331 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.access_granted
));
10332 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_access_granted_0
, LIBNDR_FLAG_REF_ALLOC
);
10333 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10334 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
10336 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10337 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
10338 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
10339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
10340 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10342 return NDR_ERR_SUCCESS
;
10345 _PUBLIC_
void ndr_print_samr_CreateUser2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_CreateUser2
*r
)
10347 ndr_print_struct(ndr
, name
, "samr_CreateUser2");
10349 if (flags
& NDR_SET_VALUES
) {
10350 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10352 if (flags
& NDR_IN
) {
10353 ndr_print_struct(ndr
, "in", "samr_CreateUser2");
10355 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
10357 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
10359 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
10361 ndr_print_lsa_String(ndr
, "account_name", r
->in
.account_name
);
10363 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->in
.acct_flags
);
10364 ndr_print_samr_UserAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
10367 if (flags
& NDR_OUT
) {
10368 ndr_print_struct(ndr
, "out", "samr_CreateUser2");
10370 ndr_print_ptr(ndr
, "user_handle", r
->out
.user_handle
);
10372 ndr_print_policy_handle(ndr
, "user_handle", r
->out
.user_handle
);
10374 ndr_print_ptr(ndr
, "access_granted", r
->out
.access_granted
);
10376 ndr_print_uint32(ndr
, "access_granted", *r
->out
.access_granted
);
10378 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
10380 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
10382 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10388 static enum ndr_err_code
ndr_push_samr_QueryDisplayInfo3(struct ndr_push
*ndr
, int flags
, const struct samr_QueryDisplayInfo3
*r
)
10390 if (flags
& NDR_IN
) {
10391 if (r
->in
.domain_handle
== NULL
) {
10392 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10394 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
10395 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
10396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.start_idx
));
10397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.max_entries
));
10398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buf_size
));
10400 if (flags
& NDR_OUT
) {
10401 if (r
->out
.total_size
== NULL
) {
10402 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_size
));
10405 if (r
->out
.returned_size
== NULL
) {
10406 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.returned_size
));
10409 if (r
->out
.info
== NULL
) {
10410 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10412 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
10413 NDR_CHECK(ndr_push_samr_DispInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10414 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10416 return NDR_ERR_SUCCESS
;
10419 static enum ndr_err_code
ndr_pull_samr_QueryDisplayInfo3(struct ndr_pull
*ndr
, int flags
, struct samr_QueryDisplayInfo3
*r
)
10421 TALLOC_CTX
*_mem_save_domain_handle_0
;
10422 TALLOC_CTX
*_mem_save_total_size_0
;
10423 TALLOC_CTX
*_mem_save_returned_size_0
;
10424 TALLOC_CTX
*_mem_save_info_0
;
10425 if (flags
& NDR_IN
) {
10426 ZERO_STRUCT(r
->out
);
10428 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10429 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
10431 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10432 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
10433 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
10434 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
10435 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
10436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.start_idx
));
10437 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.max_entries
));
10438 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buf_size
));
10439 NDR_PULL_ALLOC(ndr
, r
->out
.total_size
);
10440 ZERO_STRUCTP(r
->out
.total_size
);
10441 NDR_PULL_ALLOC(ndr
, r
->out
.returned_size
);
10442 ZERO_STRUCTP(r
->out
.returned_size
);
10443 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
10444 ZERO_STRUCTP(r
->out
.info
);
10446 if (flags
& NDR_OUT
) {
10447 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10448 NDR_PULL_ALLOC(ndr
, r
->out
.total_size
);
10450 _mem_save_total_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10451 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_size
, LIBNDR_FLAG_REF_ALLOC
);
10452 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_size
));
10453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_size_0
, LIBNDR_FLAG_REF_ALLOC
);
10454 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10455 NDR_PULL_ALLOC(ndr
, r
->out
.returned_size
);
10457 _mem_save_returned_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10458 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.returned_size
, LIBNDR_FLAG_REF_ALLOC
);
10459 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.returned_size
));
10460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_returned_size_0
, LIBNDR_FLAG_REF_ALLOC
);
10461 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10462 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
10464 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10465 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
10466 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
10467 NDR_CHECK(ndr_pull_samr_DispInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10468 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
10469 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10471 return NDR_ERR_SUCCESS
;
10474 _PUBLIC_
void ndr_print_samr_QueryDisplayInfo3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_QueryDisplayInfo3
*r
)
10476 ndr_print_struct(ndr
, name
, "samr_QueryDisplayInfo3");
10478 if (flags
& NDR_SET_VALUES
) {
10479 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10481 if (flags
& NDR_IN
) {
10482 ndr_print_struct(ndr
, "in", "samr_QueryDisplayInfo3");
10484 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
10486 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
10488 ndr_print_uint16(ndr
, "level", r
->in
.level
);
10489 ndr_print_uint32(ndr
, "start_idx", r
->in
.start_idx
);
10490 ndr_print_uint32(ndr
, "max_entries", r
->in
.max_entries
);
10491 ndr_print_uint32(ndr
, "buf_size", r
->in
.buf_size
);
10494 if (flags
& NDR_OUT
) {
10495 ndr_print_struct(ndr
, "out", "samr_QueryDisplayInfo3");
10497 ndr_print_ptr(ndr
, "total_size", r
->out
.total_size
);
10499 ndr_print_uint32(ndr
, "total_size", *r
->out
.total_size
);
10501 ndr_print_ptr(ndr
, "returned_size", r
->out
.returned_size
);
10503 ndr_print_uint32(ndr
, "returned_size", *r
->out
.returned_size
);
10505 ndr_print_ptr(ndr
, "info", r
->out
.info
);
10507 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
10508 ndr_print_samr_DispInfo(ndr
, "info", r
->out
.info
);
10510 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10516 static enum ndr_err_code
ndr_push_samr_AddMultipleMembersToAlias(struct ndr_push
*ndr
, int flags
, const struct samr_AddMultipleMembersToAlias
*r
)
10518 if (flags
& NDR_IN
) {
10519 if (r
->in
.alias_handle
== NULL
) {
10520 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10522 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
10523 if (r
->in
.sids
== NULL
) {
10524 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10526 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sids
));
10528 if (flags
& NDR_OUT
) {
10529 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10531 return NDR_ERR_SUCCESS
;
10534 static enum ndr_err_code
ndr_pull_samr_AddMultipleMembersToAlias(struct ndr_pull
*ndr
, int flags
, struct samr_AddMultipleMembersToAlias
*r
)
10536 TALLOC_CTX
*_mem_save_alias_handle_0
;
10537 TALLOC_CTX
*_mem_save_sids_0
;
10538 if (flags
& NDR_IN
) {
10539 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10540 NDR_PULL_ALLOC(ndr
, r
->in
.alias_handle
);
10542 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10543 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
10544 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
10545 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
10546 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10547 NDR_PULL_ALLOC(ndr
, r
->in
.sids
);
10549 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10550 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sids
, LIBNDR_FLAG_REF_ALLOC
);
10551 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sids
));
10552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, LIBNDR_FLAG_REF_ALLOC
);
10554 if (flags
& NDR_OUT
) {
10555 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10557 return NDR_ERR_SUCCESS
;
10560 _PUBLIC_
void ndr_print_samr_AddMultipleMembersToAlias(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_AddMultipleMembersToAlias
*r
)
10562 ndr_print_struct(ndr
, name
, "samr_AddMultipleMembersToAlias");
10564 if (flags
& NDR_SET_VALUES
) {
10565 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10567 if (flags
& NDR_IN
) {
10568 ndr_print_struct(ndr
, "in", "samr_AddMultipleMembersToAlias");
10570 ndr_print_ptr(ndr
, "alias_handle", r
->in
.alias_handle
);
10572 ndr_print_policy_handle(ndr
, "alias_handle", r
->in
.alias_handle
);
10574 ndr_print_ptr(ndr
, "sids", r
->in
.sids
);
10576 ndr_print_lsa_SidArray(ndr
, "sids", r
->in
.sids
);
10580 if (flags
& NDR_OUT
) {
10581 ndr_print_struct(ndr
, "out", "samr_AddMultipleMembersToAlias");
10583 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10589 static enum ndr_err_code
ndr_push_samr_RemoveMultipleMembersFromAlias(struct ndr_push
*ndr
, int flags
, const struct samr_RemoveMultipleMembersFromAlias
*r
)
10591 if (flags
& NDR_IN
) {
10592 if (r
->in
.alias_handle
== NULL
) {
10593 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10595 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
10596 if (r
->in
.sids
== NULL
) {
10597 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10599 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sids
));
10601 if (flags
& NDR_OUT
) {
10602 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10604 return NDR_ERR_SUCCESS
;
10607 static enum ndr_err_code
ndr_pull_samr_RemoveMultipleMembersFromAlias(struct ndr_pull
*ndr
, int flags
, struct samr_RemoveMultipleMembersFromAlias
*r
)
10609 TALLOC_CTX
*_mem_save_alias_handle_0
;
10610 TALLOC_CTX
*_mem_save_sids_0
;
10611 if (flags
& NDR_IN
) {
10612 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10613 NDR_PULL_ALLOC(ndr
, r
->in
.alias_handle
);
10615 _mem_save_alias_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10616 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.alias_handle
, LIBNDR_FLAG_REF_ALLOC
);
10617 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.alias_handle
));
10618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
10619 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10620 NDR_PULL_ALLOC(ndr
, r
->in
.sids
);
10622 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10623 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sids
, LIBNDR_FLAG_REF_ALLOC
);
10624 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.sids
));
10625 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, LIBNDR_FLAG_REF_ALLOC
);
10627 if (flags
& NDR_OUT
) {
10628 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10630 return NDR_ERR_SUCCESS
;
10633 _PUBLIC_
void ndr_print_samr_RemoveMultipleMembersFromAlias(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_RemoveMultipleMembersFromAlias
*r
)
10635 ndr_print_struct(ndr
, name
, "samr_RemoveMultipleMembersFromAlias");
10637 if (flags
& NDR_SET_VALUES
) {
10638 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10640 if (flags
& NDR_IN
) {
10641 ndr_print_struct(ndr
, "in", "samr_RemoveMultipleMembersFromAlias");
10643 ndr_print_ptr(ndr
, "alias_handle", r
->in
.alias_handle
);
10645 ndr_print_policy_handle(ndr
, "alias_handle", r
->in
.alias_handle
);
10647 ndr_print_ptr(ndr
, "sids", r
->in
.sids
);
10649 ndr_print_lsa_SidArray(ndr
, "sids", r
->in
.sids
);
10653 if (flags
& NDR_OUT
) {
10654 ndr_print_struct(ndr
, "out", "samr_RemoveMultipleMembersFromAlias");
10656 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10662 static enum ndr_err_code
ndr_push_samr_OemChangePasswordUser2(struct ndr_push
*ndr
, int flags
, const struct samr_OemChangePasswordUser2
*r
)
10664 if (flags
& NDR_IN
) {
10665 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
10666 if (r
->in
.server
) {
10667 NDR_CHECK(ndr_push_lsa_AsciiString(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.server
));
10669 if (r
->in
.account
== NULL
) {
10670 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10672 NDR_CHECK(ndr_push_lsa_AsciiString(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.account
));
10673 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.password
));
10674 if (r
->in
.password
) {
10675 NDR_CHECK(ndr_push_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.password
));
10677 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hash
));
10679 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.hash
));
10682 if (flags
& NDR_OUT
) {
10683 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10685 return NDR_ERR_SUCCESS
;
10688 static enum ndr_err_code
ndr_pull_samr_OemChangePasswordUser2(struct ndr_pull
*ndr
, int flags
, struct samr_OemChangePasswordUser2
*r
)
10690 uint32_t _ptr_server
;
10691 uint32_t _ptr_password
;
10692 uint32_t _ptr_hash
;
10693 TALLOC_CTX
*_mem_save_server_0
;
10694 TALLOC_CTX
*_mem_save_account_0
;
10695 TALLOC_CTX
*_mem_save_password_0
;
10696 TALLOC_CTX
*_mem_save_hash_0
;
10697 if (flags
& NDR_IN
) {
10698 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
10700 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
10702 r
->in
.server
= NULL
;
10704 if (r
->in
.server
) {
10705 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10706 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
10707 NDR_CHECK(ndr_pull_lsa_AsciiString(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.server
));
10708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
10710 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10711 NDR_PULL_ALLOC(ndr
, r
->in
.account
);
10713 _mem_save_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10714 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.account
, LIBNDR_FLAG_REF_ALLOC
);
10715 NDR_CHECK(ndr_pull_lsa_AsciiString(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.account
));
10716 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_0
, LIBNDR_FLAG_REF_ALLOC
);
10717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
10718 if (_ptr_password
) {
10719 NDR_PULL_ALLOC(ndr
, r
->in
.password
);
10721 r
->in
.password
= NULL
;
10723 if (r
->in
.password
) {
10724 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10725 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.password
, 0);
10726 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.password
));
10727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
10729 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hash
));
10731 NDR_PULL_ALLOC(ndr
, r
->in
.hash
);
10736 _mem_save_hash_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10737 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hash
, 0);
10738 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.hash
));
10739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hash_0
, 0);
10742 if (flags
& NDR_OUT
) {
10743 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10745 return NDR_ERR_SUCCESS
;
10748 _PUBLIC_
void ndr_print_samr_OemChangePasswordUser2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_OemChangePasswordUser2
*r
)
10750 ndr_print_struct(ndr
, name
, "samr_OemChangePasswordUser2");
10752 if (flags
& NDR_SET_VALUES
) {
10753 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10755 if (flags
& NDR_IN
) {
10756 ndr_print_struct(ndr
, "in", "samr_OemChangePasswordUser2");
10758 ndr_print_ptr(ndr
, "server", r
->in
.server
);
10760 if (r
->in
.server
) {
10761 ndr_print_lsa_AsciiString(ndr
, "server", r
->in
.server
);
10764 ndr_print_ptr(ndr
, "account", r
->in
.account
);
10766 ndr_print_lsa_AsciiString(ndr
, "account", r
->in
.account
);
10768 ndr_print_ptr(ndr
, "password", r
->in
.password
);
10770 if (r
->in
.password
) {
10771 ndr_print_samr_CryptPassword(ndr
, "password", r
->in
.password
);
10774 ndr_print_ptr(ndr
, "hash", r
->in
.hash
);
10777 ndr_print_samr_Password(ndr
, "hash", r
->in
.hash
);
10782 if (flags
& NDR_OUT
) {
10783 ndr_print_struct(ndr
, "out", "samr_OemChangePasswordUser2");
10785 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10791 static enum ndr_err_code
ndr_push_samr_ChangePasswordUser2(struct ndr_push
*ndr
, int flags
, const struct samr_ChangePasswordUser2
*r
)
10793 if (flags
& NDR_IN
) {
10794 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
10795 if (r
->in
.server
) {
10796 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.server
));
10798 if (r
->in
.account
== NULL
) {
10799 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10801 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.account
));
10802 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.nt_password
));
10803 if (r
->in
.nt_password
) {
10804 NDR_CHECK(ndr_push_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.nt_password
));
10806 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.nt_verifier
));
10807 if (r
->in
.nt_verifier
) {
10808 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.nt_verifier
));
10810 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.lm_change
));
10811 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.lm_password
));
10812 if (r
->in
.lm_password
) {
10813 NDR_CHECK(ndr_push_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.lm_password
));
10815 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.lm_verifier
));
10816 if (r
->in
.lm_verifier
) {
10817 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.lm_verifier
));
10820 if (flags
& NDR_OUT
) {
10821 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10823 return NDR_ERR_SUCCESS
;
10826 static enum ndr_err_code
ndr_pull_samr_ChangePasswordUser2(struct ndr_pull
*ndr
, int flags
, struct samr_ChangePasswordUser2
*r
)
10828 uint32_t _ptr_server
;
10829 uint32_t _ptr_nt_password
;
10830 uint32_t _ptr_nt_verifier
;
10831 uint32_t _ptr_lm_password
;
10832 uint32_t _ptr_lm_verifier
;
10833 TALLOC_CTX
*_mem_save_server_0
;
10834 TALLOC_CTX
*_mem_save_account_0
;
10835 TALLOC_CTX
*_mem_save_nt_password_0
;
10836 TALLOC_CTX
*_mem_save_nt_verifier_0
;
10837 TALLOC_CTX
*_mem_save_lm_password_0
;
10838 TALLOC_CTX
*_mem_save_lm_verifier_0
;
10839 if (flags
& NDR_IN
) {
10840 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
10842 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
10844 r
->in
.server
= NULL
;
10846 if (r
->in
.server
) {
10847 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10848 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
10849 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.server
));
10850 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
10852 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10853 NDR_PULL_ALLOC(ndr
, r
->in
.account
);
10855 _mem_save_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10856 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.account
, LIBNDR_FLAG_REF_ALLOC
);
10857 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.account
));
10858 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_0
, LIBNDR_FLAG_REF_ALLOC
);
10859 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_nt_password
));
10860 if (_ptr_nt_password
) {
10861 NDR_PULL_ALLOC(ndr
, r
->in
.nt_password
);
10863 r
->in
.nt_password
= NULL
;
10865 if (r
->in
.nt_password
) {
10866 _mem_save_nt_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10867 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.nt_password
, 0);
10868 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.nt_password
));
10869 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_nt_password_0
, 0);
10871 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_nt_verifier
));
10872 if (_ptr_nt_verifier
) {
10873 NDR_PULL_ALLOC(ndr
, r
->in
.nt_verifier
);
10875 r
->in
.nt_verifier
= NULL
;
10877 if (r
->in
.nt_verifier
) {
10878 _mem_save_nt_verifier_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10879 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.nt_verifier
, 0);
10880 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.nt_verifier
));
10881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_nt_verifier_0
, 0);
10883 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.lm_change
));
10884 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lm_password
));
10885 if (_ptr_lm_password
) {
10886 NDR_PULL_ALLOC(ndr
, r
->in
.lm_password
);
10888 r
->in
.lm_password
= NULL
;
10890 if (r
->in
.lm_password
) {
10891 _mem_save_lm_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10892 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.lm_password
, 0);
10893 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.lm_password
));
10894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lm_password_0
, 0);
10896 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lm_verifier
));
10897 if (_ptr_lm_verifier
) {
10898 NDR_PULL_ALLOC(ndr
, r
->in
.lm_verifier
);
10900 r
->in
.lm_verifier
= NULL
;
10902 if (r
->in
.lm_verifier
) {
10903 _mem_save_lm_verifier_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10904 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.lm_verifier
, 0);
10905 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.lm_verifier
));
10906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lm_verifier_0
, 0);
10909 if (flags
& NDR_OUT
) {
10910 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10912 return NDR_ERR_SUCCESS
;
10915 _PUBLIC_
void ndr_print_samr_ChangePasswordUser2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_ChangePasswordUser2
*r
)
10917 ndr_print_struct(ndr
, name
, "samr_ChangePasswordUser2");
10919 if (flags
& NDR_SET_VALUES
) {
10920 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10922 if (flags
& NDR_IN
) {
10923 ndr_print_struct(ndr
, "in", "samr_ChangePasswordUser2");
10925 ndr_print_ptr(ndr
, "server", r
->in
.server
);
10927 if (r
->in
.server
) {
10928 ndr_print_lsa_String(ndr
, "server", r
->in
.server
);
10931 ndr_print_ptr(ndr
, "account", r
->in
.account
);
10933 ndr_print_lsa_String(ndr
, "account", r
->in
.account
);
10935 ndr_print_ptr(ndr
, "nt_password", r
->in
.nt_password
);
10937 if (r
->in
.nt_password
) {
10938 ndr_print_samr_CryptPassword(ndr
, "nt_password", r
->in
.nt_password
);
10941 ndr_print_ptr(ndr
, "nt_verifier", r
->in
.nt_verifier
);
10943 if (r
->in
.nt_verifier
) {
10944 ndr_print_samr_Password(ndr
, "nt_verifier", r
->in
.nt_verifier
);
10947 ndr_print_uint8(ndr
, "lm_change", r
->in
.lm_change
);
10948 ndr_print_ptr(ndr
, "lm_password", r
->in
.lm_password
);
10950 if (r
->in
.lm_password
) {
10951 ndr_print_samr_CryptPassword(ndr
, "lm_password", r
->in
.lm_password
);
10954 ndr_print_ptr(ndr
, "lm_verifier", r
->in
.lm_verifier
);
10956 if (r
->in
.lm_verifier
) {
10957 ndr_print_samr_Password(ndr
, "lm_verifier", r
->in
.lm_verifier
);
10962 if (flags
& NDR_OUT
) {
10963 ndr_print_struct(ndr
, "out", "samr_ChangePasswordUser2");
10965 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10971 static enum ndr_err_code
ndr_push_samr_GetDomPwInfo(struct ndr_push
*ndr
, int flags
, const struct samr_GetDomPwInfo
*r
)
10973 if (flags
& NDR_IN
) {
10974 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
10975 if (r
->in
.domain_name
) {
10976 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_name
));
10979 if (flags
& NDR_OUT
) {
10980 if (r
->out
.info
== NULL
) {
10981 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10983 NDR_CHECK(ndr_push_samr_PwInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
10984 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10986 return NDR_ERR_SUCCESS
;
10989 static enum ndr_err_code
ndr_pull_samr_GetDomPwInfo(struct ndr_pull
*ndr
, int flags
, struct samr_GetDomPwInfo
*r
)
10991 uint32_t _ptr_domain_name
;
10992 TALLOC_CTX
*_mem_save_domain_name_0
;
10993 TALLOC_CTX
*_mem_save_info_0
;
10994 if (flags
& NDR_IN
) {
10995 ZERO_STRUCT(r
->out
);
10997 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
10998 if (_ptr_domain_name
) {
10999 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
11001 r
->in
.domain_name
= NULL
;
11003 if (r
->in
.domain_name
) {
11004 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11005 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
11006 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_name
));
11007 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
11009 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11010 ZERO_STRUCTP(r
->out
.info
);
11012 if (flags
& NDR_OUT
) {
11013 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11014 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11016 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11017 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
11018 NDR_CHECK(ndr_pull_samr_PwInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
11019 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
11020 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11022 return NDR_ERR_SUCCESS
;
11025 _PUBLIC_
void ndr_print_samr_GetDomPwInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_GetDomPwInfo
*r
)
11027 ndr_print_struct(ndr
, name
, "samr_GetDomPwInfo");
11029 if (flags
& NDR_SET_VALUES
) {
11030 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11032 if (flags
& NDR_IN
) {
11033 ndr_print_struct(ndr
, "in", "samr_GetDomPwInfo");
11035 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
11037 if (r
->in
.domain_name
) {
11038 ndr_print_lsa_String(ndr
, "domain_name", r
->in
.domain_name
);
11043 if (flags
& NDR_OUT
) {
11044 ndr_print_struct(ndr
, "out", "samr_GetDomPwInfo");
11046 ndr_print_ptr(ndr
, "info", r
->out
.info
);
11048 ndr_print_samr_PwInfo(ndr
, "info", r
->out
.info
);
11050 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11056 static enum ndr_err_code
ndr_push_samr_Connect2(struct ndr_push
*ndr
, int flags
, const struct samr_Connect2
*r
)
11058 if (flags
& NDR_IN
) {
11059 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
11060 if (r
->in
.system_name
) {
11061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
)));
11062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
)));
11064 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.system_name
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11066 NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
11068 if (flags
& NDR_OUT
) {
11069 if (r
->out
.connect_handle
== NULL
) {
11070 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11072 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.connect_handle
));
11073 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11075 return NDR_ERR_SUCCESS
;
11078 static enum ndr_err_code
ndr_pull_samr_Connect2(struct ndr_pull
*ndr
, int flags
, struct samr_Connect2
*r
)
11080 uint32_t _ptr_system_name
;
11081 uint32_t size_system_name_1
= 0;
11082 uint32_t length_system_name_1
= 0;
11083 TALLOC_CTX
*_mem_save_system_name_0
;
11084 TALLOC_CTX
*_mem_save_connect_handle_0
;
11085 if (flags
& NDR_IN
) {
11086 ZERO_STRUCT(r
->out
);
11088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
11089 if (_ptr_system_name
) {
11090 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
11092 r
->in
.system_name
= NULL
;
11094 if (r
->in
.system_name
) {
11095 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11096 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
11097 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.system_name
));
11098 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.system_name
));
11099 size_system_name_1
= ndr_get_array_size(ndr
, &r
->in
.system_name
);
11100 length_system_name_1
= ndr_get_array_length(ndr
, &r
->in
.system_name
);
11101 if (length_system_name_1
> size_system_name_1
) {
11102 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_system_name_1
, length_system_name_1
);
11104 NDR_CHECK(ndr_check_string_terminator(ndr
, length_system_name_1
, sizeof(uint16_t)));
11105 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.system_name
, length_system_name_1
, sizeof(uint16_t), CH_UTF16
));
11106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
11108 NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
11109 NDR_PULL_ALLOC(ndr
, r
->out
.connect_handle
);
11110 ZERO_STRUCTP(r
->out
.connect_handle
);
11112 if (flags
& NDR_OUT
) {
11113 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11114 NDR_PULL_ALLOC(ndr
, r
->out
.connect_handle
);
11116 _mem_save_connect_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11117 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.connect_handle
, LIBNDR_FLAG_REF_ALLOC
);
11118 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.connect_handle
));
11119 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connect_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
11120 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11122 return NDR_ERR_SUCCESS
;
11125 _PUBLIC_
void ndr_print_samr_Connect2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_Connect2
*r
)
11127 ndr_print_struct(ndr
, name
, "samr_Connect2");
11129 if (flags
& NDR_SET_VALUES
) {
11130 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11132 if (flags
& NDR_IN
) {
11133 ndr_print_struct(ndr
, "in", "samr_Connect2");
11135 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
11137 if (r
->in
.system_name
) {
11138 ndr_print_string(ndr
, "system_name", r
->in
.system_name
);
11141 ndr_print_samr_ConnectAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
11144 if (flags
& NDR_OUT
) {
11145 ndr_print_struct(ndr
, "out", "samr_Connect2");
11147 ndr_print_ptr(ndr
, "connect_handle", r
->out
.connect_handle
);
11149 ndr_print_policy_handle(ndr
, "connect_handle", r
->out
.connect_handle
);
11151 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11157 _PUBLIC_
enum ndr_err_code
ndr_push_samr_SetUserInfo2(struct ndr_push
*ndr
, int flags
, const struct samr_SetUserInfo2
*r
)
11159 if (flags
& NDR_IN
) {
11160 if (r
->in
.user_handle
== NULL
) {
11161 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11163 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
11164 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.level
));
11165 if (r
->in
.info
== NULL
) {
11166 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11168 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
));
11169 NDR_CHECK(ndr_push_samr_UserInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info
));
11171 if (flags
& NDR_OUT
) {
11172 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11174 return NDR_ERR_SUCCESS
;
11177 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_SetUserInfo2(struct ndr_pull
*ndr
, int flags
, struct samr_SetUserInfo2
*r
)
11179 TALLOC_CTX
*_mem_save_user_handle_0
;
11180 TALLOC_CTX
*_mem_save_info_0
;
11181 if (flags
& NDR_IN
) {
11182 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11183 NDR_PULL_ALLOC(ndr
, r
->in
.user_handle
);
11185 _mem_save_user_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11186 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.user_handle
, LIBNDR_FLAG_REF_ALLOC
);
11187 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.user_handle
));
11188 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
11189 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.level
));
11190 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11191 NDR_PULL_ALLOC(ndr
, r
->in
.info
);
11193 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11194 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info
, LIBNDR_FLAG_REF_ALLOC
);
11195 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
));
11196 NDR_CHECK(ndr_pull_samr_UserInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info
));
11197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
11199 if (flags
& NDR_OUT
) {
11200 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11202 return NDR_ERR_SUCCESS
;
11205 _PUBLIC_
void ndr_print_samr_SetUserInfo2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_SetUserInfo2
*r
)
11207 ndr_print_struct(ndr
, name
, "samr_SetUserInfo2");
11209 if (flags
& NDR_SET_VALUES
) {
11210 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11212 if (flags
& NDR_IN
) {
11213 ndr_print_struct(ndr
, "in", "samr_SetUserInfo2");
11215 ndr_print_ptr(ndr
, "user_handle", r
->in
.user_handle
);
11217 ndr_print_policy_handle(ndr
, "user_handle", r
->in
.user_handle
);
11219 ndr_print_uint16(ndr
, "level", r
->in
.level
);
11220 ndr_print_ptr(ndr
, "info", r
->in
.info
);
11222 ndr_print_set_switch_value(ndr
, r
->in
.info
, r
->in
.level
);
11223 ndr_print_samr_UserInfo(ndr
, "info", r
->in
.info
);
11227 if (flags
& NDR_OUT
) {
11228 ndr_print_struct(ndr
, "out", "samr_SetUserInfo2");
11230 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11236 static enum ndr_err_code
ndr_push_samr_SetBootKeyInformation(struct ndr_push
*ndr
, int flags
, const struct samr_SetBootKeyInformation
*r
)
11238 if (flags
& NDR_IN
) {
11239 if (r
->in
.connect_handle
== NULL
) {
11240 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11242 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.connect_handle
));
11243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown1
));
11244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown2
));
11245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown3
));
11247 if (flags
& NDR_OUT
) {
11248 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11250 return NDR_ERR_SUCCESS
;
11253 static enum ndr_err_code
ndr_pull_samr_SetBootKeyInformation(struct ndr_pull
*ndr
, int flags
, struct samr_SetBootKeyInformation
*r
)
11255 TALLOC_CTX
*_mem_save_connect_handle_0
;
11256 if (flags
& NDR_IN
) {
11257 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11258 NDR_PULL_ALLOC(ndr
, r
->in
.connect_handle
);
11260 _mem_save_connect_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11261 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.connect_handle
, LIBNDR_FLAG_REF_ALLOC
);
11262 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.connect_handle
));
11263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connect_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
11264 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown1
));
11265 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown2
));
11266 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown3
));
11268 if (flags
& NDR_OUT
) {
11269 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11271 return NDR_ERR_SUCCESS
;
11274 _PUBLIC_
void ndr_print_samr_SetBootKeyInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_SetBootKeyInformation
*r
)
11276 ndr_print_struct(ndr
, name
, "samr_SetBootKeyInformation");
11278 if (flags
& NDR_SET_VALUES
) {
11279 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11281 if (flags
& NDR_IN
) {
11282 ndr_print_struct(ndr
, "in", "samr_SetBootKeyInformation");
11284 ndr_print_ptr(ndr
, "connect_handle", r
->in
.connect_handle
);
11286 ndr_print_policy_handle(ndr
, "connect_handle", r
->in
.connect_handle
);
11288 ndr_print_uint32(ndr
, "unknown1", r
->in
.unknown1
);
11289 ndr_print_uint32(ndr
, "unknown2", r
->in
.unknown2
);
11290 ndr_print_uint32(ndr
, "unknown3", r
->in
.unknown3
);
11293 if (flags
& NDR_OUT
) {
11294 ndr_print_struct(ndr
, "out", "samr_SetBootKeyInformation");
11296 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11302 static enum ndr_err_code
ndr_push_samr_GetBootKeyInformation(struct ndr_push
*ndr
, int flags
, const struct samr_GetBootKeyInformation
*r
)
11304 if (flags
& NDR_IN
) {
11305 if (r
->in
.domain_handle
== NULL
) {
11306 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11308 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
11310 if (flags
& NDR_OUT
) {
11311 if (r
->out
.unknown
== NULL
) {
11312 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.unknown
));
11315 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11317 return NDR_ERR_SUCCESS
;
11320 static enum ndr_err_code
ndr_pull_samr_GetBootKeyInformation(struct ndr_pull
*ndr
, int flags
, struct samr_GetBootKeyInformation
*r
)
11322 TALLOC_CTX
*_mem_save_domain_handle_0
;
11323 TALLOC_CTX
*_mem_save_unknown_0
;
11324 if (flags
& NDR_IN
) {
11325 ZERO_STRUCT(r
->out
);
11327 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11328 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
11330 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11331 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
11332 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
11333 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
11334 NDR_PULL_ALLOC(ndr
, r
->out
.unknown
);
11335 ZERO_STRUCTP(r
->out
.unknown
);
11337 if (flags
& NDR_OUT
) {
11338 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11339 NDR_PULL_ALLOC(ndr
, r
->out
.unknown
);
11341 _mem_save_unknown_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11342 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.unknown
, LIBNDR_FLAG_REF_ALLOC
);
11343 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.unknown
));
11344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown_0
, LIBNDR_FLAG_REF_ALLOC
);
11345 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11347 return NDR_ERR_SUCCESS
;
11350 _PUBLIC_
void ndr_print_samr_GetBootKeyInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_GetBootKeyInformation
*r
)
11352 ndr_print_struct(ndr
, name
, "samr_GetBootKeyInformation");
11354 if (flags
& NDR_SET_VALUES
) {
11355 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11357 if (flags
& NDR_IN
) {
11358 ndr_print_struct(ndr
, "in", "samr_GetBootKeyInformation");
11360 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
11362 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
11366 if (flags
& NDR_OUT
) {
11367 ndr_print_struct(ndr
, "out", "samr_GetBootKeyInformation");
11369 ndr_print_ptr(ndr
, "unknown", r
->out
.unknown
);
11371 ndr_print_uint32(ndr
, "unknown", *r
->out
.unknown
);
11373 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11379 static enum ndr_err_code
ndr_push_samr_Connect3(struct ndr_push
*ndr
, int flags
, const struct samr_Connect3
*r
)
11381 if (flags
& NDR_IN
) {
11382 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
11383 if (r
->in
.system_name
) {
11384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
)));
11385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
)));
11387 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.system_name
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
11390 NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
11392 if (flags
& NDR_OUT
) {
11393 if (r
->out
.connect_handle
== NULL
) {
11394 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11396 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.connect_handle
));
11397 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11399 return NDR_ERR_SUCCESS
;
11402 static enum ndr_err_code
ndr_pull_samr_Connect3(struct ndr_pull
*ndr
, int flags
, struct samr_Connect3
*r
)
11404 uint32_t _ptr_system_name
;
11405 uint32_t size_system_name_1
= 0;
11406 uint32_t length_system_name_1
= 0;
11407 TALLOC_CTX
*_mem_save_system_name_0
;
11408 TALLOC_CTX
*_mem_save_connect_handle_0
;
11409 if (flags
& NDR_IN
) {
11410 ZERO_STRUCT(r
->out
);
11412 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
11413 if (_ptr_system_name
) {
11414 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
11416 r
->in
.system_name
= NULL
;
11418 if (r
->in
.system_name
) {
11419 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11420 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
11421 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.system_name
));
11422 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.system_name
));
11423 size_system_name_1
= ndr_get_array_size(ndr
, &r
->in
.system_name
);
11424 length_system_name_1
= ndr_get_array_length(ndr
, &r
->in
.system_name
);
11425 if (length_system_name_1
> size_system_name_1
) {
11426 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_system_name_1
, length_system_name_1
);
11428 NDR_CHECK(ndr_check_string_terminator(ndr
, length_system_name_1
, sizeof(uint16_t)));
11429 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.system_name
, length_system_name_1
, sizeof(uint16_t), CH_UTF16
));
11430 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
11432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
11433 NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
11434 NDR_PULL_ALLOC(ndr
, r
->out
.connect_handle
);
11435 ZERO_STRUCTP(r
->out
.connect_handle
);
11437 if (flags
& NDR_OUT
) {
11438 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11439 NDR_PULL_ALLOC(ndr
, r
->out
.connect_handle
);
11441 _mem_save_connect_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11442 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.connect_handle
, LIBNDR_FLAG_REF_ALLOC
);
11443 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.connect_handle
));
11444 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connect_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
11445 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11447 return NDR_ERR_SUCCESS
;
11450 _PUBLIC_
void ndr_print_samr_Connect3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_Connect3
*r
)
11452 ndr_print_struct(ndr
, name
, "samr_Connect3");
11454 if (flags
& NDR_SET_VALUES
) {
11455 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11457 if (flags
& NDR_IN
) {
11458 ndr_print_struct(ndr
, "in", "samr_Connect3");
11460 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
11462 if (r
->in
.system_name
) {
11463 ndr_print_string(ndr
, "system_name", r
->in
.system_name
);
11466 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
11467 ndr_print_samr_ConnectAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
11470 if (flags
& NDR_OUT
) {
11471 ndr_print_struct(ndr
, "out", "samr_Connect3");
11473 ndr_print_ptr(ndr
, "connect_handle", r
->out
.connect_handle
);
11475 ndr_print_policy_handle(ndr
, "connect_handle", r
->out
.connect_handle
);
11477 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11483 static enum ndr_err_code
ndr_push_samr_Connect4(struct ndr_push
*ndr
, int flags
, const struct samr_Connect4
*r
)
11485 if (flags
& NDR_IN
) {
11486 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
11487 if (r
->in
.system_name
) {
11488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
)));
11489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
)));
11491 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.system_name
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11493 NDR_CHECK(ndr_push_samr_ConnectVersion(ndr
, NDR_SCALARS
, r
->in
.client_version
));
11494 NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
11496 if (flags
& NDR_OUT
) {
11497 if (r
->out
.connect_handle
== NULL
) {
11498 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11500 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.connect_handle
));
11501 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11503 return NDR_ERR_SUCCESS
;
11506 static enum ndr_err_code
ndr_pull_samr_Connect4(struct ndr_pull
*ndr
, int flags
, struct samr_Connect4
*r
)
11508 uint32_t _ptr_system_name
;
11509 uint32_t size_system_name_1
= 0;
11510 uint32_t length_system_name_1
= 0;
11511 TALLOC_CTX
*_mem_save_system_name_0
;
11512 TALLOC_CTX
*_mem_save_connect_handle_0
;
11513 if (flags
& NDR_IN
) {
11514 ZERO_STRUCT(r
->out
);
11516 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
11517 if (_ptr_system_name
) {
11518 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
11520 r
->in
.system_name
= NULL
;
11522 if (r
->in
.system_name
) {
11523 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11524 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
11525 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.system_name
));
11526 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.system_name
));
11527 size_system_name_1
= ndr_get_array_size(ndr
, &r
->in
.system_name
);
11528 length_system_name_1
= ndr_get_array_length(ndr
, &r
->in
.system_name
);
11529 if (length_system_name_1
> size_system_name_1
) {
11530 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_system_name_1
, length_system_name_1
);
11532 NDR_CHECK(ndr_check_string_terminator(ndr
, length_system_name_1
, sizeof(uint16_t)));
11533 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.system_name
, length_system_name_1
, sizeof(uint16_t), CH_UTF16
));
11534 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
11536 NDR_CHECK(ndr_pull_samr_ConnectVersion(ndr
, NDR_SCALARS
, &r
->in
.client_version
));
11537 NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
11538 NDR_PULL_ALLOC(ndr
, r
->out
.connect_handle
);
11539 ZERO_STRUCTP(r
->out
.connect_handle
);
11541 if (flags
& NDR_OUT
) {
11542 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11543 NDR_PULL_ALLOC(ndr
, r
->out
.connect_handle
);
11545 _mem_save_connect_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11546 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.connect_handle
, LIBNDR_FLAG_REF_ALLOC
);
11547 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.connect_handle
));
11548 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connect_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
11549 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11551 return NDR_ERR_SUCCESS
;
11554 _PUBLIC_
void ndr_print_samr_Connect4(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_Connect4
*r
)
11556 ndr_print_struct(ndr
, name
, "samr_Connect4");
11558 if (flags
& NDR_SET_VALUES
) {
11559 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11561 if (flags
& NDR_IN
) {
11562 ndr_print_struct(ndr
, "in", "samr_Connect4");
11564 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
11566 if (r
->in
.system_name
) {
11567 ndr_print_string(ndr
, "system_name", r
->in
.system_name
);
11570 ndr_print_samr_ConnectVersion(ndr
, "client_version", r
->in
.client_version
);
11571 ndr_print_samr_ConnectAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
11574 if (flags
& NDR_OUT
) {
11575 ndr_print_struct(ndr
, "out", "samr_Connect4");
11577 ndr_print_ptr(ndr
, "connect_handle", r
->out
.connect_handle
);
11579 ndr_print_policy_handle(ndr
, "connect_handle", r
->out
.connect_handle
);
11581 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11587 static enum ndr_err_code
ndr_push_samr_ChangePasswordUser3(struct ndr_push
*ndr
, int flags
, const struct samr_ChangePasswordUser3
*r
)
11589 if (flags
& NDR_IN
) {
11590 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
11591 if (r
->in
.server
) {
11592 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.server
));
11594 if (r
->in
.account
== NULL
) {
11595 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11597 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.account
));
11598 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.nt_password
));
11599 if (r
->in
.nt_password
) {
11600 NDR_CHECK(ndr_push_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.nt_password
));
11602 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.nt_verifier
));
11603 if (r
->in
.nt_verifier
) {
11604 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.nt_verifier
));
11606 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->in
.lm_change
));
11607 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.lm_password
));
11608 if (r
->in
.lm_password
) {
11609 NDR_CHECK(ndr_push_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.lm_password
));
11611 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.lm_verifier
));
11612 if (r
->in
.lm_verifier
) {
11613 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.lm_verifier
));
11615 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.password3
));
11616 if (r
->in
.password3
) {
11617 NDR_CHECK(ndr_push_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.password3
));
11620 if (flags
& NDR_OUT
) {
11621 if (r
->out
.dominfo
== NULL
) {
11622 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11624 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dominfo
));
11625 if (*r
->out
.dominfo
) {
11626 NDR_CHECK(ndr_push_samr_DomInfo1(ndr
, NDR_SCALARS
, *r
->out
.dominfo
));
11628 if (r
->out
.reject
== NULL
) {
11629 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11631 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.reject
));
11632 if (*r
->out
.reject
) {
11633 NDR_CHECK(ndr_push_samr_ChangeReject(ndr
, NDR_SCALARS
, *r
->out
.reject
));
11635 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11637 return NDR_ERR_SUCCESS
;
11640 static enum ndr_err_code
ndr_pull_samr_ChangePasswordUser3(struct ndr_pull
*ndr
, int flags
, struct samr_ChangePasswordUser3
*r
)
11642 uint32_t _ptr_server
;
11643 uint32_t _ptr_nt_password
;
11644 uint32_t _ptr_nt_verifier
;
11645 uint32_t _ptr_lm_password
;
11646 uint32_t _ptr_lm_verifier
;
11647 uint32_t _ptr_password3
;
11648 uint32_t _ptr_dominfo
;
11649 uint32_t _ptr_reject
;
11650 TALLOC_CTX
*_mem_save_server_0
;
11651 TALLOC_CTX
*_mem_save_account_0
;
11652 TALLOC_CTX
*_mem_save_nt_password_0
;
11653 TALLOC_CTX
*_mem_save_nt_verifier_0
;
11654 TALLOC_CTX
*_mem_save_lm_password_0
;
11655 TALLOC_CTX
*_mem_save_lm_verifier_0
;
11656 TALLOC_CTX
*_mem_save_password3_0
;
11657 TALLOC_CTX
*_mem_save_dominfo_0
;
11658 TALLOC_CTX
*_mem_save_dominfo_1
;
11659 TALLOC_CTX
*_mem_save_reject_0
;
11660 TALLOC_CTX
*_mem_save_reject_1
;
11661 if (flags
& NDR_IN
) {
11662 ZERO_STRUCT(r
->out
);
11664 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
11666 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
11668 r
->in
.server
= NULL
;
11670 if (r
->in
.server
) {
11671 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11672 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
11673 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.server
));
11674 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
11676 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11677 NDR_PULL_ALLOC(ndr
, r
->in
.account
);
11679 _mem_save_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11680 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.account
, LIBNDR_FLAG_REF_ALLOC
);
11681 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.account
));
11682 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_0
, LIBNDR_FLAG_REF_ALLOC
);
11683 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_nt_password
));
11684 if (_ptr_nt_password
) {
11685 NDR_PULL_ALLOC(ndr
, r
->in
.nt_password
);
11687 r
->in
.nt_password
= NULL
;
11689 if (r
->in
.nt_password
) {
11690 _mem_save_nt_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11691 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.nt_password
, 0);
11692 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.nt_password
));
11693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_nt_password_0
, 0);
11695 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_nt_verifier
));
11696 if (_ptr_nt_verifier
) {
11697 NDR_PULL_ALLOC(ndr
, r
->in
.nt_verifier
);
11699 r
->in
.nt_verifier
= NULL
;
11701 if (r
->in
.nt_verifier
) {
11702 _mem_save_nt_verifier_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11703 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.nt_verifier
, 0);
11704 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.nt_verifier
));
11705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_nt_verifier_0
, 0);
11707 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->in
.lm_change
));
11708 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lm_password
));
11709 if (_ptr_lm_password
) {
11710 NDR_PULL_ALLOC(ndr
, r
->in
.lm_password
);
11712 r
->in
.lm_password
= NULL
;
11714 if (r
->in
.lm_password
) {
11715 _mem_save_lm_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11716 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.lm_password
, 0);
11717 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.lm_password
));
11718 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lm_password_0
, 0);
11720 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lm_verifier
));
11721 if (_ptr_lm_verifier
) {
11722 NDR_PULL_ALLOC(ndr
, r
->in
.lm_verifier
);
11724 r
->in
.lm_verifier
= NULL
;
11726 if (r
->in
.lm_verifier
) {
11727 _mem_save_lm_verifier_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11728 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.lm_verifier
, 0);
11729 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.lm_verifier
));
11730 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lm_verifier_0
, 0);
11732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password3
));
11733 if (_ptr_password3
) {
11734 NDR_PULL_ALLOC(ndr
, r
->in
.password3
);
11736 r
->in
.password3
= NULL
;
11738 if (r
->in
.password3
) {
11739 _mem_save_password3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11740 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.password3
, 0);
11741 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.password3
));
11742 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password3_0
, 0);
11744 NDR_PULL_ALLOC(ndr
, r
->out
.dominfo
);
11745 ZERO_STRUCTP(r
->out
.dominfo
);
11746 NDR_PULL_ALLOC(ndr
, r
->out
.reject
);
11747 ZERO_STRUCTP(r
->out
.reject
);
11749 if (flags
& NDR_OUT
) {
11750 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11751 NDR_PULL_ALLOC(ndr
, r
->out
.dominfo
);
11753 _mem_save_dominfo_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11754 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dominfo
, LIBNDR_FLAG_REF_ALLOC
);
11755 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dominfo
));
11756 if (_ptr_dominfo
) {
11757 NDR_PULL_ALLOC(ndr
, *r
->out
.dominfo
);
11759 *r
->out
.dominfo
= NULL
;
11761 if (*r
->out
.dominfo
) {
11762 _mem_save_dominfo_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11763 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dominfo
, 0);
11764 NDR_CHECK(ndr_pull_samr_DomInfo1(ndr
, NDR_SCALARS
, *r
->out
.dominfo
));
11765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dominfo_1
, 0);
11767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dominfo_0
, LIBNDR_FLAG_REF_ALLOC
);
11768 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11769 NDR_PULL_ALLOC(ndr
, r
->out
.reject
);
11771 _mem_save_reject_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11772 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reject
, LIBNDR_FLAG_REF_ALLOC
);
11773 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_reject
));
11775 NDR_PULL_ALLOC(ndr
, *r
->out
.reject
);
11777 *r
->out
.reject
= NULL
;
11779 if (*r
->out
.reject
) {
11780 _mem_save_reject_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11781 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.reject
, 0);
11782 NDR_CHECK(ndr_pull_samr_ChangeReject(ndr
, NDR_SCALARS
, *r
->out
.reject
));
11783 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reject_1
, 0);
11785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reject_0
, LIBNDR_FLAG_REF_ALLOC
);
11786 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11788 return NDR_ERR_SUCCESS
;
11791 _PUBLIC_
void ndr_print_samr_ChangePasswordUser3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_ChangePasswordUser3
*r
)
11793 ndr_print_struct(ndr
, name
, "samr_ChangePasswordUser3");
11795 if (flags
& NDR_SET_VALUES
) {
11796 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11798 if (flags
& NDR_IN
) {
11799 ndr_print_struct(ndr
, "in", "samr_ChangePasswordUser3");
11801 ndr_print_ptr(ndr
, "server", r
->in
.server
);
11803 if (r
->in
.server
) {
11804 ndr_print_lsa_String(ndr
, "server", r
->in
.server
);
11807 ndr_print_ptr(ndr
, "account", r
->in
.account
);
11809 ndr_print_lsa_String(ndr
, "account", r
->in
.account
);
11811 ndr_print_ptr(ndr
, "nt_password", r
->in
.nt_password
);
11813 if (r
->in
.nt_password
) {
11814 ndr_print_samr_CryptPassword(ndr
, "nt_password", r
->in
.nt_password
);
11817 ndr_print_ptr(ndr
, "nt_verifier", r
->in
.nt_verifier
);
11819 if (r
->in
.nt_verifier
) {
11820 ndr_print_samr_Password(ndr
, "nt_verifier", r
->in
.nt_verifier
);
11823 ndr_print_uint8(ndr
, "lm_change", r
->in
.lm_change
);
11824 ndr_print_ptr(ndr
, "lm_password", r
->in
.lm_password
);
11826 if (r
->in
.lm_password
) {
11827 ndr_print_samr_CryptPassword(ndr
, "lm_password", r
->in
.lm_password
);
11830 ndr_print_ptr(ndr
, "lm_verifier", r
->in
.lm_verifier
);
11832 if (r
->in
.lm_verifier
) {
11833 ndr_print_samr_Password(ndr
, "lm_verifier", r
->in
.lm_verifier
);
11836 ndr_print_ptr(ndr
, "password3", r
->in
.password3
);
11838 if (r
->in
.password3
) {
11839 ndr_print_samr_CryptPassword(ndr
, "password3", r
->in
.password3
);
11844 if (flags
& NDR_OUT
) {
11845 ndr_print_struct(ndr
, "out", "samr_ChangePasswordUser3");
11847 ndr_print_ptr(ndr
, "dominfo", r
->out
.dominfo
);
11849 ndr_print_ptr(ndr
, "dominfo", *r
->out
.dominfo
);
11851 if (*r
->out
.dominfo
) {
11852 ndr_print_samr_DomInfo1(ndr
, "dominfo", *r
->out
.dominfo
);
11856 ndr_print_ptr(ndr
, "reject", r
->out
.reject
);
11858 ndr_print_ptr(ndr
, "reject", *r
->out
.reject
);
11860 if (*r
->out
.reject
) {
11861 ndr_print_samr_ChangeReject(ndr
, "reject", *r
->out
.reject
);
11865 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11871 _PUBLIC_
enum ndr_err_code
ndr_push_samr_Connect5(struct ndr_push
*ndr
, int flags
, const struct samr_Connect5
*r
)
11873 if (flags
& NDR_IN
) {
11874 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.system_name
));
11875 if (r
->in
.system_name
) {
11876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
)));
11877 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11878 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
)));
11879 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.system_name
, ndr_charset_length(r
->in
.system_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11881 NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
11882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level_in
));
11883 if (r
->in
.info_in
== NULL
) {
11884 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11886 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.info_in
, r
->in
.level_in
));
11887 NDR_CHECK(ndr_push_samr_ConnectInfo(ndr
, NDR_SCALARS
, r
->in
.info_in
));
11889 if (flags
& NDR_OUT
) {
11890 if (r
->out
.level_out
== NULL
) {
11891 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11893 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
11894 if (r
->out
.info_out
== NULL
) {
11895 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11897 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info_out
, *r
->out
.level_out
));
11898 NDR_CHECK(ndr_push_samr_ConnectInfo(ndr
, NDR_SCALARS
, r
->out
.info_out
));
11899 if (r
->out
.connect_handle
== NULL
) {
11900 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11902 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.connect_handle
));
11903 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11905 return NDR_ERR_SUCCESS
;
11908 _PUBLIC_
enum ndr_err_code
ndr_pull_samr_Connect5(struct ndr_pull
*ndr
, int flags
, struct samr_Connect5
*r
)
11910 uint32_t _ptr_system_name
;
11911 uint32_t size_system_name_1
= 0;
11912 uint32_t length_system_name_1
= 0;
11913 TALLOC_CTX
*_mem_save_system_name_0
;
11914 TALLOC_CTX
*_mem_save_info_in_0
;
11915 TALLOC_CTX
*_mem_save_level_out_0
;
11916 TALLOC_CTX
*_mem_save_info_out_0
;
11917 TALLOC_CTX
*_mem_save_connect_handle_0
;
11918 if (flags
& NDR_IN
) {
11919 ZERO_STRUCT(r
->out
);
11921 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_system_name
));
11922 if (_ptr_system_name
) {
11923 NDR_PULL_ALLOC(ndr
, r
->in
.system_name
);
11925 r
->in
.system_name
= NULL
;
11927 if (r
->in
.system_name
) {
11928 _mem_save_system_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11929 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.system_name
, 0);
11930 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.system_name
));
11931 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.system_name
));
11932 size_system_name_1
= ndr_get_array_size(ndr
, &r
->in
.system_name
);
11933 length_system_name_1
= ndr_get_array_length(ndr
, &r
->in
.system_name
);
11934 if (length_system_name_1
> size_system_name_1
) {
11935 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_system_name_1
, length_system_name_1
);
11937 NDR_CHECK(ndr_check_string_terminator(ndr
, length_system_name_1
, sizeof(uint16_t)));
11938 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.system_name
, length_system_name_1
, sizeof(uint16_t), CH_UTF16
));
11939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_system_name_0
, 0);
11941 NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
11942 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level_in
));
11943 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11944 NDR_PULL_ALLOC(ndr
, r
->in
.info_in
);
11946 _mem_save_info_in_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11947 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_in
, LIBNDR_FLAG_REF_ALLOC
);
11948 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.info_in
, r
->in
.level_in
));
11949 NDR_CHECK(ndr_pull_samr_ConnectInfo(ndr
, NDR_SCALARS
, r
->in
.info_in
));
11950 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_in_0
, LIBNDR_FLAG_REF_ALLOC
);
11951 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
11952 ZERO_STRUCTP(r
->out
.level_out
);
11953 NDR_PULL_ALLOC(ndr
, r
->out
.info_out
);
11954 ZERO_STRUCTP(r
->out
.info_out
);
11955 NDR_PULL_ALLOC(ndr
, r
->out
.connect_handle
);
11956 ZERO_STRUCTP(r
->out
.connect_handle
);
11958 if (flags
& NDR_OUT
) {
11959 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11960 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
11962 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11963 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
11964 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
11965 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
11966 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11967 NDR_PULL_ALLOC(ndr
, r
->out
.info_out
);
11969 _mem_save_info_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11970 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info_out
, LIBNDR_FLAG_REF_ALLOC
);
11971 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info_out
, *r
->out
.level_out
));
11972 NDR_CHECK(ndr_pull_samr_ConnectInfo(ndr
, NDR_SCALARS
, r
->out
.info_out
));
11973 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_out_0
, LIBNDR_FLAG_REF_ALLOC
);
11974 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11975 NDR_PULL_ALLOC(ndr
, r
->out
.connect_handle
);
11977 _mem_save_connect_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11978 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.connect_handle
, LIBNDR_FLAG_REF_ALLOC
);
11979 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.connect_handle
));
11980 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connect_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
11981 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11983 return NDR_ERR_SUCCESS
;
11986 _PUBLIC_
void ndr_print_samr_Connect5(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_Connect5
*r
)
11988 ndr_print_struct(ndr
, name
, "samr_Connect5");
11990 if (flags
& NDR_SET_VALUES
) {
11991 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11993 if (flags
& NDR_IN
) {
11994 ndr_print_struct(ndr
, "in", "samr_Connect5");
11996 ndr_print_ptr(ndr
, "system_name", r
->in
.system_name
);
11998 if (r
->in
.system_name
) {
11999 ndr_print_string(ndr
, "system_name", r
->in
.system_name
);
12002 ndr_print_samr_ConnectAccessMask(ndr
, "access_mask", r
->in
.access_mask
);
12003 ndr_print_uint32(ndr
, "level_in", r
->in
.level_in
);
12004 ndr_print_ptr(ndr
, "info_in", r
->in
.info_in
);
12006 ndr_print_set_switch_value(ndr
, r
->in
.info_in
, r
->in
.level_in
);
12007 ndr_print_samr_ConnectInfo(ndr
, "info_in", r
->in
.info_in
);
12011 if (flags
& NDR_OUT
) {
12012 ndr_print_struct(ndr
, "out", "samr_Connect5");
12014 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
12016 ndr_print_uint32(ndr
, "level_out", *r
->out
.level_out
);
12018 ndr_print_ptr(ndr
, "info_out", r
->out
.info_out
);
12020 ndr_print_set_switch_value(ndr
, r
->out
.info_out
, *r
->out
.level_out
);
12021 ndr_print_samr_ConnectInfo(ndr
, "info_out", r
->out
.info_out
);
12023 ndr_print_ptr(ndr
, "connect_handle", r
->out
.connect_handle
);
12025 ndr_print_policy_handle(ndr
, "connect_handle", r
->out
.connect_handle
);
12027 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12033 static enum ndr_err_code
ndr_push_samr_RidToSid(struct ndr_push
*ndr
, int flags
, const struct samr_RidToSid
*r
)
12035 if (flags
& NDR_IN
) {
12036 if (r
->in
.domain_handle
== NULL
) {
12037 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12039 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
12040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.rid
));
12042 if (flags
& NDR_OUT
) {
12043 if (r
->out
.sid
== NULL
) {
12044 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12046 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.sid
));
12048 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sid
));
12050 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12052 return NDR_ERR_SUCCESS
;
12055 static enum ndr_err_code
ndr_pull_samr_RidToSid(struct ndr_pull
*ndr
, int flags
, struct samr_RidToSid
*r
)
12058 TALLOC_CTX
*_mem_save_domain_handle_0
;
12059 TALLOC_CTX
*_mem_save_sid_0
;
12060 TALLOC_CTX
*_mem_save_sid_1
;
12061 if (flags
& NDR_IN
) {
12062 ZERO_STRUCT(r
->out
);
12064 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12065 NDR_PULL_ALLOC(ndr
, r
->in
.domain_handle
);
12067 _mem_save_domain_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12068 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_handle
, LIBNDR_FLAG_REF_ALLOC
);
12069 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.domain_handle
));
12070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
12071 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.rid
));
12072 NDR_PULL_ALLOC(ndr
, r
->out
.sid
);
12073 ZERO_STRUCTP(r
->out
.sid
);
12075 if (flags
& NDR_OUT
) {
12076 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12077 NDR_PULL_ALLOC(ndr
, r
->out
.sid
);
12079 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12080 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sid
, LIBNDR_FLAG_REF_ALLOC
);
12081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
12083 NDR_PULL_ALLOC(ndr
, *r
->out
.sid
);
12085 *r
->out
.sid
= NULL
;
12088 _mem_save_sid_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12089 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.sid
, 0);
12090 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.sid
));
12091 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_1
, 0);
12093 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, LIBNDR_FLAG_REF_ALLOC
);
12094 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12096 return NDR_ERR_SUCCESS
;
12099 _PUBLIC_
void ndr_print_samr_RidToSid(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_RidToSid
*r
)
12101 ndr_print_struct(ndr
, name
, "samr_RidToSid");
12103 if (flags
& NDR_SET_VALUES
) {
12104 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12106 if (flags
& NDR_IN
) {
12107 ndr_print_struct(ndr
, "in", "samr_RidToSid");
12109 ndr_print_ptr(ndr
, "domain_handle", r
->in
.domain_handle
);
12111 ndr_print_policy_handle(ndr
, "domain_handle", r
->in
.domain_handle
);
12113 ndr_print_uint32(ndr
, "rid", r
->in
.rid
);
12116 if (flags
& NDR_OUT
) {
12117 ndr_print_struct(ndr
, "out", "samr_RidToSid");
12119 ndr_print_ptr(ndr
, "sid", r
->out
.sid
);
12121 ndr_print_ptr(ndr
, "sid", *r
->out
.sid
);
12124 ndr_print_dom_sid2(ndr
, "sid", *r
->out
.sid
);
12128 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12134 static enum ndr_err_code
ndr_push_samr_SetDsrmPassword(struct ndr_push
*ndr
, int flags
, const struct samr_SetDsrmPassword
*r
)
12136 if (flags
& NDR_IN
) {
12137 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.name
));
12139 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
12141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
12142 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.hash
));
12144 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.hash
));
12147 if (flags
& NDR_OUT
) {
12148 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12150 return NDR_ERR_SUCCESS
;
12153 static enum ndr_err_code
ndr_pull_samr_SetDsrmPassword(struct ndr_pull
*ndr
, int flags
, struct samr_SetDsrmPassword
*r
)
12155 uint32_t _ptr_name
;
12156 uint32_t _ptr_hash
;
12157 TALLOC_CTX
*_mem_save_name_0
;
12158 TALLOC_CTX
*_mem_save_hash_0
;
12159 if (flags
& NDR_IN
) {
12160 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
12162 NDR_PULL_ALLOC(ndr
, r
->in
.name
);
12167 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12168 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.name
, 0);
12169 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.name
));
12170 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
12172 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
12173 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hash
));
12175 NDR_PULL_ALLOC(ndr
, r
->in
.hash
);
12180 _mem_save_hash_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12181 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.hash
, 0);
12182 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.hash
));
12183 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hash_0
, 0);
12186 if (flags
& NDR_OUT
) {
12187 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12189 return NDR_ERR_SUCCESS
;
12192 _PUBLIC_
void ndr_print_samr_SetDsrmPassword(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_SetDsrmPassword
*r
)
12194 ndr_print_struct(ndr
, name
, "samr_SetDsrmPassword");
12196 if (flags
& NDR_SET_VALUES
) {
12197 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12199 if (flags
& NDR_IN
) {
12200 ndr_print_struct(ndr
, "in", "samr_SetDsrmPassword");
12202 ndr_print_ptr(ndr
, "name", r
->in
.name
);
12205 ndr_print_lsa_String(ndr
, "name", r
->in
.name
);
12208 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
12209 ndr_print_ptr(ndr
, "hash", r
->in
.hash
);
12212 ndr_print_samr_Password(ndr
, "hash", r
->in
.hash
);
12217 if (flags
& NDR_OUT
) {
12218 ndr_print_struct(ndr
, "out", "samr_SetDsrmPassword");
12220 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12226 static enum ndr_err_code
ndr_push_samr_ValidatePassword(struct ndr_push
*ndr
, int flags
, const struct samr_ValidatePassword
*r
)
12228 if (flags
& NDR_IN
) {
12229 NDR_CHECK(ndr_push_samr_ValidatePasswordLevel(ndr
, NDR_SCALARS
, r
->in
.level
));
12230 if (r
->in
.req
== NULL
) {
12231 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12233 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
12234 NDR_CHECK(ndr_push_samr_ValidatePasswordReq(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
12236 if (flags
& NDR_OUT
) {
12237 if (r
->out
.rep
== NULL
) {
12238 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12240 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.rep
));
12242 NDR_CHECK(ndr_push_set_switch_value(ndr
, *r
->out
.rep
, r
->in
.level
));
12243 NDR_CHECK(ndr_push_samr_ValidatePasswordRep(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.rep
));
12245 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12247 return NDR_ERR_SUCCESS
;
12250 static enum ndr_err_code
ndr_pull_samr_ValidatePassword(struct ndr_pull
*ndr
, int flags
, struct samr_ValidatePassword
*r
)
12253 TALLOC_CTX
*_mem_save_req_0
;
12254 TALLOC_CTX
*_mem_save_rep_0
;
12255 TALLOC_CTX
*_mem_save_rep_1
;
12256 if (flags
& NDR_IN
) {
12257 ZERO_STRUCT(r
->out
);
12259 NDR_CHECK(ndr_pull_samr_ValidatePasswordLevel(ndr
, NDR_SCALARS
, &r
->in
.level
));
12260 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12261 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
12263 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12264 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
12265 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
12266 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
12267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
12268 NDR_PULL_ALLOC(ndr
, r
->out
.rep
);
12269 ZERO_STRUCTP(r
->out
.rep
);
12271 if (flags
& NDR_OUT
) {
12272 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12273 NDR_PULL_ALLOC(ndr
, r
->out
.rep
);
12275 _mem_save_rep_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12276 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rep
, LIBNDR_FLAG_REF_ALLOC
);
12277 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rep
));
12279 NDR_PULL_ALLOC(ndr
, *r
->out
.rep
);
12281 *r
->out
.rep
= NULL
;
12284 _mem_save_rep_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12285 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.rep
, 0);
12286 NDR_CHECK(ndr_pull_set_switch_value(ndr
, *r
->out
.rep
, r
->in
.level
));
12287 NDR_CHECK(ndr_pull_samr_ValidatePasswordRep(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.rep
));
12288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rep_1
, 0);
12290 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rep_0
, LIBNDR_FLAG_REF_ALLOC
);
12291 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12293 return NDR_ERR_SUCCESS
;
12296 _PUBLIC_
void ndr_print_samr_ValidatePassword(struct ndr_print
*ndr
, const char *name
, int flags
, const struct samr_ValidatePassword
*r
)
12298 ndr_print_struct(ndr
, name
, "samr_ValidatePassword");
12300 if (flags
& NDR_SET_VALUES
) {
12301 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12303 if (flags
& NDR_IN
) {
12304 ndr_print_struct(ndr
, "in", "samr_ValidatePassword");
12306 ndr_print_samr_ValidatePasswordLevel(ndr
, "level", r
->in
.level
);
12307 ndr_print_ptr(ndr
, "req", r
->in
.req
);
12309 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
12310 ndr_print_samr_ValidatePasswordReq(ndr
, "req", r
->in
.req
);
12314 if (flags
& NDR_OUT
) {
12315 ndr_print_struct(ndr
, "out", "samr_ValidatePassword");
12317 ndr_print_ptr(ndr
, "rep", r
->out
.rep
);
12319 ndr_print_ptr(ndr
, "rep", *r
->out
.rep
);
12322 ndr_print_set_switch_value(ndr
, *r
->out
.rep
, r
->in
.level
);
12323 ndr_print_samr_ValidatePasswordRep(ndr
, "rep", *r
->out
.rep
);
12327 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12333 static const struct ndr_interface_call samr_calls
[] = {
12336 sizeof(struct samr_Connect
),
12337 (ndr_push_flags_fn_t
) ndr_push_samr_Connect
,
12338 (ndr_pull_flags_fn_t
) ndr_pull_samr_Connect
,
12339 (ndr_print_function_t
) ndr_print_samr_Connect
,
12344 sizeof(struct samr_Close
),
12345 (ndr_push_flags_fn_t
) ndr_push_samr_Close
,
12346 (ndr_pull_flags_fn_t
) ndr_pull_samr_Close
,
12347 (ndr_print_function_t
) ndr_print_samr_Close
,
12351 "samr_SetSecurity",
12352 sizeof(struct samr_SetSecurity
),
12353 (ndr_push_flags_fn_t
) ndr_push_samr_SetSecurity
,
12354 (ndr_pull_flags_fn_t
) ndr_pull_samr_SetSecurity
,
12355 (ndr_print_function_t
) ndr_print_samr_SetSecurity
,
12359 "samr_QuerySecurity",
12360 sizeof(struct samr_QuerySecurity
),
12361 (ndr_push_flags_fn_t
) ndr_push_samr_QuerySecurity
,
12362 (ndr_pull_flags_fn_t
) ndr_pull_samr_QuerySecurity
,
12363 (ndr_print_function_t
) ndr_print_samr_QuerySecurity
,
12368 sizeof(struct samr_Shutdown
),
12369 (ndr_push_flags_fn_t
) ndr_push_samr_Shutdown
,
12370 (ndr_pull_flags_fn_t
) ndr_pull_samr_Shutdown
,
12371 (ndr_print_function_t
) ndr_print_samr_Shutdown
,
12375 "samr_LookupDomain",
12376 sizeof(struct samr_LookupDomain
),
12377 (ndr_push_flags_fn_t
) ndr_push_samr_LookupDomain
,
12378 (ndr_pull_flags_fn_t
) ndr_pull_samr_LookupDomain
,
12379 (ndr_print_function_t
) ndr_print_samr_LookupDomain
,
12383 "samr_EnumDomains",
12384 sizeof(struct samr_EnumDomains
),
12385 (ndr_push_flags_fn_t
) ndr_push_samr_EnumDomains
,
12386 (ndr_pull_flags_fn_t
) ndr_pull_samr_EnumDomains
,
12387 (ndr_print_function_t
) ndr_print_samr_EnumDomains
,
12392 sizeof(struct samr_OpenDomain
),
12393 (ndr_push_flags_fn_t
) ndr_push_samr_OpenDomain
,
12394 (ndr_pull_flags_fn_t
) ndr_pull_samr_OpenDomain
,
12395 (ndr_print_function_t
) ndr_print_samr_OpenDomain
,
12399 "samr_QueryDomainInfo",
12400 sizeof(struct samr_QueryDomainInfo
),
12401 (ndr_push_flags_fn_t
) ndr_push_samr_QueryDomainInfo
,
12402 (ndr_pull_flags_fn_t
) ndr_pull_samr_QueryDomainInfo
,
12403 (ndr_print_function_t
) ndr_print_samr_QueryDomainInfo
,
12407 "samr_SetDomainInfo",
12408 sizeof(struct samr_SetDomainInfo
),
12409 (ndr_push_flags_fn_t
) ndr_push_samr_SetDomainInfo
,
12410 (ndr_pull_flags_fn_t
) ndr_pull_samr_SetDomainInfo
,
12411 (ndr_print_function_t
) ndr_print_samr_SetDomainInfo
,
12415 "samr_CreateDomainGroup",
12416 sizeof(struct samr_CreateDomainGroup
),
12417 (ndr_push_flags_fn_t
) ndr_push_samr_CreateDomainGroup
,
12418 (ndr_pull_flags_fn_t
) ndr_pull_samr_CreateDomainGroup
,
12419 (ndr_print_function_t
) ndr_print_samr_CreateDomainGroup
,
12423 "samr_EnumDomainGroups",
12424 sizeof(struct samr_EnumDomainGroups
),
12425 (ndr_push_flags_fn_t
) ndr_push_samr_EnumDomainGroups
,
12426 (ndr_pull_flags_fn_t
) ndr_pull_samr_EnumDomainGroups
,
12427 (ndr_print_function_t
) ndr_print_samr_EnumDomainGroups
,
12432 sizeof(struct samr_CreateUser
),
12433 (ndr_push_flags_fn_t
) ndr_push_samr_CreateUser
,
12434 (ndr_pull_flags_fn_t
) ndr_pull_samr_CreateUser
,
12435 (ndr_print_function_t
) ndr_print_samr_CreateUser
,
12439 "samr_EnumDomainUsers",
12440 sizeof(struct samr_EnumDomainUsers
),
12441 (ndr_push_flags_fn_t
) ndr_push_samr_EnumDomainUsers
,
12442 (ndr_pull_flags_fn_t
) ndr_pull_samr_EnumDomainUsers
,
12443 (ndr_print_function_t
) ndr_print_samr_EnumDomainUsers
,
12447 "samr_CreateDomAlias",
12448 sizeof(struct samr_CreateDomAlias
),
12449 (ndr_push_flags_fn_t
) ndr_push_samr_CreateDomAlias
,
12450 (ndr_pull_flags_fn_t
) ndr_pull_samr_CreateDomAlias
,
12451 (ndr_print_function_t
) ndr_print_samr_CreateDomAlias
,
12455 "samr_EnumDomainAliases",
12456 sizeof(struct samr_EnumDomainAliases
),
12457 (ndr_push_flags_fn_t
) ndr_push_samr_EnumDomainAliases
,
12458 (ndr_pull_flags_fn_t
) ndr_pull_samr_EnumDomainAliases
,
12459 (ndr_print_function_t
) ndr_print_samr_EnumDomainAliases
,
12463 "samr_GetAliasMembership",
12464 sizeof(struct samr_GetAliasMembership
),
12465 (ndr_push_flags_fn_t
) ndr_push_samr_GetAliasMembership
,
12466 (ndr_pull_flags_fn_t
) ndr_pull_samr_GetAliasMembership
,
12467 (ndr_print_function_t
) ndr_print_samr_GetAliasMembership
,
12471 "samr_LookupNames",
12472 sizeof(struct samr_LookupNames
),
12473 (ndr_push_flags_fn_t
) ndr_push_samr_LookupNames
,
12474 (ndr_pull_flags_fn_t
) ndr_pull_samr_LookupNames
,
12475 (ndr_print_function_t
) ndr_print_samr_LookupNames
,
12480 sizeof(struct samr_LookupRids
),
12481 (ndr_push_flags_fn_t
) ndr_push_samr_LookupRids
,
12482 (ndr_pull_flags_fn_t
) ndr_pull_samr_LookupRids
,
12483 (ndr_print_function_t
) ndr_print_samr_LookupRids
,
12488 sizeof(struct samr_OpenGroup
),
12489 (ndr_push_flags_fn_t
) ndr_push_samr_OpenGroup
,
12490 (ndr_pull_flags_fn_t
) ndr_pull_samr_OpenGroup
,
12491 (ndr_print_function_t
) ndr_print_samr_OpenGroup
,
12495 "samr_QueryGroupInfo",
12496 sizeof(struct samr_QueryGroupInfo
),
12497 (ndr_push_flags_fn_t
) ndr_push_samr_QueryGroupInfo
,
12498 (ndr_pull_flags_fn_t
) ndr_pull_samr_QueryGroupInfo
,
12499 (ndr_print_function_t
) ndr_print_samr_QueryGroupInfo
,
12503 "samr_SetGroupInfo",
12504 sizeof(struct samr_SetGroupInfo
),
12505 (ndr_push_flags_fn_t
) ndr_push_samr_SetGroupInfo
,
12506 (ndr_pull_flags_fn_t
) ndr_pull_samr_SetGroupInfo
,
12507 (ndr_print_function_t
) ndr_print_samr_SetGroupInfo
,
12511 "samr_AddGroupMember",
12512 sizeof(struct samr_AddGroupMember
),
12513 (ndr_push_flags_fn_t
) ndr_push_samr_AddGroupMember
,
12514 (ndr_pull_flags_fn_t
) ndr_pull_samr_AddGroupMember
,
12515 (ndr_print_function_t
) ndr_print_samr_AddGroupMember
,
12519 "samr_DeleteDomainGroup",
12520 sizeof(struct samr_DeleteDomainGroup
),
12521 (ndr_push_flags_fn_t
) ndr_push_samr_DeleteDomainGroup
,
12522 (ndr_pull_flags_fn_t
) ndr_pull_samr_DeleteDomainGroup
,
12523 (ndr_print_function_t
) ndr_print_samr_DeleteDomainGroup
,
12527 "samr_DeleteGroupMember",
12528 sizeof(struct samr_DeleteGroupMember
),
12529 (ndr_push_flags_fn_t
) ndr_push_samr_DeleteGroupMember
,
12530 (ndr_pull_flags_fn_t
) ndr_pull_samr_DeleteGroupMember
,
12531 (ndr_print_function_t
) ndr_print_samr_DeleteGroupMember
,
12535 "samr_QueryGroupMember",
12536 sizeof(struct samr_QueryGroupMember
),
12537 (ndr_push_flags_fn_t
) ndr_push_samr_QueryGroupMember
,
12538 (ndr_pull_flags_fn_t
) ndr_pull_samr_QueryGroupMember
,
12539 (ndr_print_function_t
) ndr_print_samr_QueryGroupMember
,
12543 "samr_SetMemberAttributesOfGroup",
12544 sizeof(struct samr_SetMemberAttributesOfGroup
),
12545 (ndr_push_flags_fn_t
) ndr_push_samr_SetMemberAttributesOfGroup
,
12546 (ndr_pull_flags_fn_t
) ndr_pull_samr_SetMemberAttributesOfGroup
,
12547 (ndr_print_function_t
) ndr_print_samr_SetMemberAttributesOfGroup
,
12552 sizeof(struct samr_OpenAlias
),
12553 (ndr_push_flags_fn_t
) ndr_push_samr_OpenAlias
,
12554 (ndr_pull_flags_fn_t
) ndr_pull_samr_OpenAlias
,
12555 (ndr_print_function_t
) ndr_print_samr_OpenAlias
,
12559 "samr_QueryAliasInfo",
12560 sizeof(struct samr_QueryAliasInfo
),
12561 (ndr_push_flags_fn_t
) ndr_push_samr_QueryAliasInfo
,
12562 (ndr_pull_flags_fn_t
) ndr_pull_samr_QueryAliasInfo
,
12563 (ndr_print_function_t
) ndr_print_samr_QueryAliasInfo
,
12567 "samr_SetAliasInfo",
12568 sizeof(struct samr_SetAliasInfo
),
12569 (ndr_push_flags_fn_t
) ndr_push_samr_SetAliasInfo
,
12570 (ndr_pull_flags_fn_t
) ndr_pull_samr_SetAliasInfo
,
12571 (ndr_print_function_t
) ndr_print_samr_SetAliasInfo
,
12575 "samr_DeleteDomAlias",
12576 sizeof(struct samr_DeleteDomAlias
),
12577 (ndr_push_flags_fn_t
) ndr_push_samr_DeleteDomAlias
,
12578 (ndr_pull_flags_fn_t
) ndr_pull_samr_DeleteDomAlias
,
12579 (ndr_print_function_t
) ndr_print_samr_DeleteDomAlias
,
12583 "samr_AddAliasMember",
12584 sizeof(struct samr_AddAliasMember
),
12585 (ndr_push_flags_fn_t
) ndr_push_samr_AddAliasMember
,
12586 (ndr_pull_flags_fn_t
) ndr_pull_samr_AddAliasMember
,
12587 (ndr_print_function_t
) ndr_print_samr_AddAliasMember
,
12591 "samr_DeleteAliasMember",
12592 sizeof(struct samr_DeleteAliasMember
),
12593 (ndr_push_flags_fn_t
) ndr_push_samr_DeleteAliasMember
,
12594 (ndr_pull_flags_fn_t
) ndr_pull_samr_DeleteAliasMember
,
12595 (ndr_print_function_t
) ndr_print_samr_DeleteAliasMember
,
12599 "samr_GetMembersInAlias",
12600 sizeof(struct samr_GetMembersInAlias
),
12601 (ndr_push_flags_fn_t
) ndr_push_samr_GetMembersInAlias
,
12602 (ndr_pull_flags_fn_t
) ndr_pull_samr_GetMembersInAlias
,
12603 (ndr_print_function_t
) ndr_print_samr_GetMembersInAlias
,
12608 sizeof(struct samr_OpenUser
),
12609 (ndr_push_flags_fn_t
) ndr_push_samr_OpenUser
,
12610 (ndr_pull_flags_fn_t
) ndr_pull_samr_OpenUser
,
12611 (ndr_print_function_t
) ndr_print_samr_OpenUser
,
12616 sizeof(struct samr_DeleteUser
),
12617 (ndr_push_flags_fn_t
) ndr_push_samr_DeleteUser
,
12618 (ndr_pull_flags_fn_t
) ndr_pull_samr_DeleteUser
,
12619 (ndr_print_function_t
) ndr_print_samr_DeleteUser
,
12623 "samr_QueryUserInfo",
12624 sizeof(struct samr_QueryUserInfo
),
12625 (ndr_push_flags_fn_t
) ndr_push_samr_QueryUserInfo
,
12626 (ndr_pull_flags_fn_t
) ndr_pull_samr_QueryUserInfo
,
12627 (ndr_print_function_t
) ndr_print_samr_QueryUserInfo
,
12631 "samr_SetUserInfo",
12632 sizeof(struct samr_SetUserInfo
),
12633 (ndr_push_flags_fn_t
) ndr_push_samr_SetUserInfo
,
12634 (ndr_pull_flags_fn_t
) ndr_pull_samr_SetUserInfo
,
12635 (ndr_print_function_t
) ndr_print_samr_SetUserInfo
,
12639 "samr_ChangePasswordUser",
12640 sizeof(struct samr_ChangePasswordUser
),
12641 (ndr_push_flags_fn_t
) ndr_push_samr_ChangePasswordUser
,
12642 (ndr_pull_flags_fn_t
) ndr_pull_samr_ChangePasswordUser
,
12643 (ndr_print_function_t
) ndr_print_samr_ChangePasswordUser
,
12647 "samr_GetGroupsForUser",
12648 sizeof(struct samr_GetGroupsForUser
),
12649 (ndr_push_flags_fn_t
) ndr_push_samr_GetGroupsForUser
,
12650 (ndr_pull_flags_fn_t
) ndr_pull_samr_GetGroupsForUser
,
12651 (ndr_print_function_t
) ndr_print_samr_GetGroupsForUser
,
12655 "samr_QueryDisplayInfo",
12656 sizeof(struct samr_QueryDisplayInfo
),
12657 (ndr_push_flags_fn_t
) ndr_push_samr_QueryDisplayInfo
,
12658 (ndr_pull_flags_fn_t
) ndr_pull_samr_QueryDisplayInfo
,
12659 (ndr_print_function_t
) ndr_print_samr_QueryDisplayInfo
,
12663 "samr_GetDisplayEnumerationIndex",
12664 sizeof(struct samr_GetDisplayEnumerationIndex
),
12665 (ndr_push_flags_fn_t
) ndr_push_samr_GetDisplayEnumerationIndex
,
12666 (ndr_pull_flags_fn_t
) ndr_pull_samr_GetDisplayEnumerationIndex
,
12667 (ndr_print_function_t
) ndr_print_samr_GetDisplayEnumerationIndex
,
12671 "samr_TestPrivateFunctionsDomain",
12672 sizeof(struct samr_TestPrivateFunctionsDomain
),
12673 (ndr_push_flags_fn_t
) ndr_push_samr_TestPrivateFunctionsDomain
,
12674 (ndr_pull_flags_fn_t
) ndr_pull_samr_TestPrivateFunctionsDomain
,
12675 (ndr_print_function_t
) ndr_print_samr_TestPrivateFunctionsDomain
,
12679 "samr_TestPrivateFunctionsUser",
12680 sizeof(struct samr_TestPrivateFunctionsUser
),
12681 (ndr_push_flags_fn_t
) ndr_push_samr_TestPrivateFunctionsUser
,
12682 (ndr_pull_flags_fn_t
) ndr_pull_samr_TestPrivateFunctionsUser
,
12683 (ndr_print_function_t
) ndr_print_samr_TestPrivateFunctionsUser
,
12687 "samr_GetUserPwInfo",
12688 sizeof(struct samr_GetUserPwInfo
),
12689 (ndr_push_flags_fn_t
) ndr_push_samr_GetUserPwInfo
,
12690 (ndr_pull_flags_fn_t
) ndr_pull_samr_GetUserPwInfo
,
12691 (ndr_print_function_t
) ndr_print_samr_GetUserPwInfo
,
12695 "samr_RemoveMemberFromForeignDomain",
12696 sizeof(struct samr_RemoveMemberFromForeignDomain
),
12697 (ndr_push_flags_fn_t
) ndr_push_samr_RemoveMemberFromForeignDomain
,
12698 (ndr_pull_flags_fn_t
) ndr_pull_samr_RemoveMemberFromForeignDomain
,
12699 (ndr_print_function_t
) ndr_print_samr_RemoveMemberFromForeignDomain
,
12703 "samr_QueryDomainInfo2",
12704 sizeof(struct samr_QueryDomainInfo2
),
12705 (ndr_push_flags_fn_t
) ndr_push_samr_QueryDomainInfo2
,
12706 (ndr_pull_flags_fn_t
) ndr_pull_samr_QueryDomainInfo2
,
12707 (ndr_print_function_t
) ndr_print_samr_QueryDomainInfo2
,
12711 "samr_QueryUserInfo2",
12712 sizeof(struct samr_QueryUserInfo2
),
12713 (ndr_push_flags_fn_t
) ndr_push_samr_QueryUserInfo2
,
12714 (ndr_pull_flags_fn_t
) ndr_pull_samr_QueryUserInfo2
,
12715 (ndr_print_function_t
) ndr_print_samr_QueryUserInfo2
,
12719 "samr_QueryDisplayInfo2",
12720 sizeof(struct samr_QueryDisplayInfo2
),
12721 (ndr_push_flags_fn_t
) ndr_push_samr_QueryDisplayInfo2
,
12722 (ndr_pull_flags_fn_t
) ndr_pull_samr_QueryDisplayInfo2
,
12723 (ndr_print_function_t
) ndr_print_samr_QueryDisplayInfo2
,
12727 "samr_GetDisplayEnumerationIndex2",
12728 sizeof(struct samr_GetDisplayEnumerationIndex2
),
12729 (ndr_push_flags_fn_t
) ndr_push_samr_GetDisplayEnumerationIndex2
,
12730 (ndr_pull_flags_fn_t
) ndr_pull_samr_GetDisplayEnumerationIndex2
,
12731 (ndr_print_function_t
) ndr_print_samr_GetDisplayEnumerationIndex2
,
12735 "samr_CreateUser2",
12736 sizeof(struct samr_CreateUser2
),
12737 (ndr_push_flags_fn_t
) ndr_push_samr_CreateUser2
,
12738 (ndr_pull_flags_fn_t
) ndr_pull_samr_CreateUser2
,
12739 (ndr_print_function_t
) ndr_print_samr_CreateUser2
,
12743 "samr_QueryDisplayInfo3",
12744 sizeof(struct samr_QueryDisplayInfo3
),
12745 (ndr_push_flags_fn_t
) ndr_push_samr_QueryDisplayInfo3
,
12746 (ndr_pull_flags_fn_t
) ndr_pull_samr_QueryDisplayInfo3
,
12747 (ndr_print_function_t
) ndr_print_samr_QueryDisplayInfo3
,
12751 "samr_AddMultipleMembersToAlias",
12752 sizeof(struct samr_AddMultipleMembersToAlias
),
12753 (ndr_push_flags_fn_t
) ndr_push_samr_AddMultipleMembersToAlias
,
12754 (ndr_pull_flags_fn_t
) ndr_pull_samr_AddMultipleMembersToAlias
,
12755 (ndr_print_function_t
) ndr_print_samr_AddMultipleMembersToAlias
,
12759 "samr_RemoveMultipleMembersFromAlias",
12760 sizeof(struct samr_RemoveMultipleMembersFromAlias
),
12761 (ndr_push_flags_fn_t
) ndr_push_samr_RemoveMultipleMembersFromAlias
,
12762 (ndr_pull_flags_fn_t
) ndr_pull_samr_RemoveMultipleMembersFromAlias
,
12763 (ndr_print_function_t
) ndr_print_samr_RemoveMultipleMembersFromAlias
,
12767 "samr_OemChangePasswordUser2",
12768 sizeof(struct samr_OemChangePasswordUser2
),
12769 (ndr_push_flags_fn_t
) ndr_push_samr_OemChangePasswordUser2
,
12770 (ndr_pull_flags_fn_t
) ndr_pull_samr_OemChangePasswordUser2
,
12771 (ndr_print_function_t
) ndr_print_samr_OemChangePasswordUser2
,
12775 "samr_ChangePasswordUser2",
12776 sizeof(struct samr_ChangePasswordUser2
),
12777 (ndr_push_flags_fn_t
) ndr_push_samr_ChangePasswordUser2
,
12778 (ndr_pull_flags_fn_t
) ndr_pull_samr_ChangePasswordUser2
,
12779 (ndr_print_function_t
) ndr_print_samr_ChangePasswordUser2
,
12783 "samr_GetDomPwInfo",
12784 sizeof(struct samr_GetDomPwInfo
),
12785 (ndr_push_flags_fn_t
) ndr_push_samr_GetDomPwInfo
,
12786 (ndr_pull_flags_fn_t
) ndr_pull_samr_GetDomPwInfo
,
12787 (ndr_print_function_t
) ndr_print_samr_GetDomPwInfo
,
12792 sizeof(struct samr_Connect2
),
12793 (ndr_push_flags_fn_t
) ndr_push_samr_Connect2
,
12794 (ndr_pull_flags_fn_t
) ndr_pull_samr_Connect2
,
12795 (ndr_print_function_t
) ndr_print_samr_Connect2
,
12799 "samr_SetUserInfo2",
12800 sizeof(struct samr_SetUserInfo2
),
12801 (ndr_push_flags_fn_t
) ndr_push_samr_SetUserInfo2
,
12802 (ndr_pull_flags_fn_t
) ndr_pull_samr_SetUserInfo2
,
12803 (ndr_print_function_t
) ndr_print_samr_SetUserInfo2
,
12807 "samr_SetBootKeyInformation",
12808 sizeof(struct samr_SetBootKeyInformation
),
12809 (ndr_push_flags_fn_t
) ndr_push_samr_SetBootKeyInformation
,
12810 (ndr_pull_flags_fn_t
) ndr_pull_samr_SetBootKeyInformation
,
12811 (ndr_print_function_t
) ndr_print_samr_SetBootKeyInformation
,
12815 "samr_GetBootKeyInformation",
12816 sizeof(struct samr_GetBootKeyInformation
),
12817 (ndr_push_flags_fn_t
) ndr_push_samr_GetBootKeyInformation
,
12818 (ndr_pull_flags_fn_t
) ndr_pull_samr_GetBootKeyInformation
,
12819 (ndr_print_function_t
) ndr_print_samr_GetBootKeyInformation
,
12824 sizeof(struct samr_Connect3
),
12825 (ndr_push_flags_fn_t
) ndr_push_samr_Connect3
,
12826 (ndr_pull_flags_fn_t
) ndr_pull_samr_Connect3
,
12827 (ndr_print_function_t
) ndr_print_samr_Connect3
,
12832 sizeof(struct samr_Connect4
),
12833 (ndr_push_flags_fn_t
) ndr_push_samr_Connect4
,
12834 (ndr_pull_flags_fn_t
) ndr_pull_samr_Connect4
,
12835 (ndr_print_function_t
) ndr_print_samr_Connect4
,
12839 "samr_ChangePasswordUser3",
12840 sizeof(struct samr_ChangePasswordUser3
),
12841 (ndr_push_flags_fn_t
) ndr_push_samr_ChangePasswordUser3
,
12842 (ndr_pull_flags_fn_t
) ndr_pull_samr_ChangePasswordUser3
,
12843 (ndr_print_function_t
) ndr_print_samr_ChangePasswordUser3
,
12848 sizeof(struct samr_Connect5
),
12849 (ndr_push_flags_fn_t
) ndr_push_samr_Connect5
,
12850 (ndr_pull_flags_fn_t
) ndr_pull_samr_Connect5
,
12851 (ndr_print_function_t
) ndr_print_samr_Connect5
,
12856 sizeof(struct samr_RidToSid
),
12857 (ndr_push_flags_fn_t
) ndr_push_samr_RidToSid
,
12858 (ndr_pull_flags_fn_t
) ndr_pull_samr_RidToSid
,
12859 (ndr_print_function_t
) ndr_print_samr_RidToSid
,
12863 "samr_SetDsrmPassword",
12864 sizeof(struct samr_SetDsrmPassword
),
12865 (ndr_push_flags_fn_t
) ndr_push_samr_SetDsrmPassword
,
12866 (ndr_pull_flags_fn_t
) ndr_pull_samr_SetDsrmPassword
,
12867 (ndr_print_function_t
) ndr_print_samr_SetDsrmPassword
,
12871 "samr_ValidatePassword",
12872 sizeof(struct samr_ValidatePassword
),
12873 (ndr_push_flags_fn_t
) ndr_push_samr_ValidatePassword
,
12874 (ndr_pull_flags_fn_t
) ndr_pull_samr_ValidatePassword
,
12875 (ndr_print_function_t
) ndr_print_samr_ValidatePassword
,
12878 { NULL
, 0, NULL
, NULL
, NULL
, false }
12881 static const char * const samr_endpoint_strings
[] = {
12882 "ncacn_np:[\\pipe\\samr]",
12887 static const struct ndr_interface_string_array samr_endpoints
= {
12889 .names
= samr_endpoint_strings
12892 static const char * const samr_authservice_strings
[] = {
12896 static const struct ndr_interface_string_array samr_authservices
= {
12898 .names
= samr_authservice_strings
12902 const struct ndr_interface_table ndr_table_samr
= {
12905 {0x12345778,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xac}},
12908 .helpstring
= NDR_SAMR_HELPSTRING
,
12910 .calls
= samr_calls
,
12911 .endpoints
= &samr_endpoints
,
12912 .authservices
= &samr_authservices