rerun 'make idl'
[Samba/gebeck_regimport.git] / source / librpc / gen_ndr / samr.h
blob2ac845ee921b78545356cfccda0e66ac8f50e85b
1 /* header auto-generated by pidl */
3 #include <stdint.h>
5 #include "librpc/gen_ndr/misc.h"
6 #include "librpc/gen_ndr/lsa.h"
7 #include "librpc/gen_ndr/security.h"
8 #ifndef _HEADER_samr
9 #define _HEADER_samr
11 #define SAMR_ENUM_USERS_MULTIPLIER ( 54 )
12 /* bitmap samr_AcctFlags */
13 #define ACB_DISABLED ( 0x00000001 )
14 #define ACB_HOMDIRREQ ( 0x00000002 )
15 #define ACB_PWNOTREQ ( 0x00000004 )
16 #define ACB_TEMPDUP ( 0x00000008 )
17 #define ACB_NORMAL ( 0x00000010 )
18 #define ACB_MNS ( 0x00000020 )
19 #define ACB_DOMTRUST ( 0x00000040 )
20 #define ACB_WSTRUST ( 0x00000080 )
21 #define ACB_SVRTRUST ( 0x00000100 )
22 #define ACB_PWNOEXP ( 0x00000200 )
23 #define ACB_AUTOLOCK ( 0x00000400 )
24 #define ACB_ENC_TXT_PWD_ALLOWED ( 0x00000800 )
25 #define ACB_SMARTCARD_REQUIRED ( 0x00001000 )
26 #define ACB_TRUSTED_FOR_DELEGATION ( 0x00002000 )
27 #define ACB_NOT_DELEGATED ( 0x00004000 )
28 #define ACB_USE_DES_KEY_ONLY ( 0x00008000 )
29 #define ACB_DONT_REQUIRE_PREAUTH ( 0x00010000 )
30 #define ACB_PW_EXPIRED ( 0x00020000 )
31 #define ACB_NO_AUTH_DATA_REQD ( 0x00080000 )
33 /* bitmap samr_ConnectAccessMask */
34 #define SAMR_ACCESS_CONNECT_TO_SERVER ( 0x00000001 )
35 #define SAMR_ACCESS_SHUTDOWN_SERVER ( 0x00000002 )
36 #define SAMR_ACCESS_INITIALIZE_SERVER ( 0x00000004 )
37 #define SAMR_ACCESS_CREATE_DOMAIN ( 0x00000008 )
38 #define SAMR_ACCESS_ENUM_DOMAINS ( 0x00000010 )
39 #define SAMR_ACCESS_OPEN_DOMAIN ( 0x00000020 )
41 /* bitmap samr_UserAccessMask */
42 #define USER_ACCESS_GET_NAME_ETC ( 0x00000001 )
43 #define USER_ACCESS_GET_LOCALE ( 0x00000002 )
44 #define USER_ACCESS_SET_LOC_COM ( 0x00000004 )
45 #define USER_ACCESS_GET_LOGONINFO ( 0x00000008 )
46 #define USER_ACCESS_GET_ATTRIBUTES ( 0x00000010 )
47 #define USER_ACCESS_SET_ATTRIBUTES ( 0x00000020 )
48 #define USER_ACCESS_CHANGE_PASSWORD ( 0x00000040 )
49 #define USER_ACCESS_SET_PASSWORD ( 0x00000080 )
50 #define USER_ACCESS_GET_GROUPS ( 0x00000100 )
51 #define USER_ACCESS_GET_GROUP_MEMBERSHIP ( 0x00000200 )
52 #define USER_ACCESS_CHANGE_GROUP_MEMBERSHIP ( 0x00000400 )
54 /* bitmap samr_DomainAccessMask */
55 #define DOMAIN_ACCESS_LOOKUP_INFO_1 ( 0x00000001 )
56 #define DOMAIN_ACCESS_SET_INFO_1 ( 0x00000002 )
57 #define DOMAIN_ACCESS_LOOKUP_INFO_2 ( 0x00000004 )
58 #define DOMAIN_ACCESS_SET_INFO_2 ( 0x00000008 )
59 #define DOMAIN_ACCESS_CREATE_USER ( 0x00000010 )
60 #define DOMAIN_ACCESS_CREATE_GROUP ( 0x00000020 )
61 #define DOMAIN_ACCESS_CREATE_ALIAS ( 0x00000040 )
62 #define DOMAIN_ACCESS_LOOKUP_ALIAS ( 0x00000080 )
63 #define DOMAIN_ACCESS_ENUM_ACCOUNTS ( 0x00000100 )
64 #define DOMAIN_ACCESS_OPEN_ACCOUNT ( 0x00000200 )
65 #define DOMAIN_ACCESS_SET_INFO_3 ( 0x00000400 )
67 /* bitmap samr_GroupAccessMask */
68 #define GROUP_ACCESS_LOOKUP_INFO ( 0x00000001 )
69 #define GROUP_ACCESS_SET_INFO ( 0x00000002 )
70 #define GROUP_ACCESS_ADD_MEMBER ( 0x00000004 )
71 #define GROUP_ACCESS_REMOVE_MEMBER ( 0x00000008 )
72 #define GROUP_ACCESS_GET_MEMBERS ( 0x00000010 )
74 /* bitmap samr_AliasAccessMask */
75 #define ALIAS_ACCESS_ADD_MEMBER ( 0x00000001 )
76 #define ALIAS_ACCESS_REMOVE_MEMBER ( 0x00000002 )
77 #define ALIAS_ACCESS_GET_MEMBERS ( 0x00000004 )
78 #define ALIAS_ACCESS_LOOKUP_INFO ( 0x00000008 )
79 #define ALIAS_ACCESS_SET_INFO ( 0x00000010 )
81 struct samr_SamEntry {
82 uint32_t idx;
83 struct lsa_String name;
86 struct samr_SamArray {
87 uint32_t count;
88 struct samr_SamEntry *entries;/* [unique,size_is(count)] */
91 enum samr_Role
92 #ifndef USE_UINT_ENUMS
94 SAMR_ROLE_STANDALONE=0,
95 SAMR_ROLE_DOMAIN_MEMBER=1,
96 SAMR_ROLE_DOMAIN_BDC=2,
97 SAMR_ROLE_DOMAIN_PDC=3
99 #else
100 { __donnot_use_enum_samr_Role=0x7FFFFFFF}
101 #define SAMR_ROLE_STANDALONE ( 0 )
102 #define SAMR_ROLE_DOMAIN_MEMBER ( 1 )
103 #define SAMR_ROLE_DOMAIN_BDC ( 2 )
104 #define SAMR_ROLE_DOMAIN_PDC ( 3 )
105 #endif
108 /* bitmap samr_PasswordProperties */
109 #define DOMAIN_PASSWORD_COMPLEX ( 0x00000001 )
110 #define DOMAIN_PASSWORD_NO_ANON_CHANGE ( 0x00000002 )
111 #define DOMAIN_PASSWORD_NO_CLEAR_CHANGE ( 0x00000004 )
112 #define DOMAIN_PASSWORD_LOCKOUT_ADMINS ( 0x00000008 )
113 #define DOMAIN_PASSWORD_STORE_CLEARTEXT ( 0x00000010 )
114 #define DOMAIN_REFUSE_PASSWORD_CHANGE ( 0x00000020 )
116 struct samr_DomInfo1 {
117 uint16_t min_password_length;
118 uint16_t password_history_length;
119 uint32_t password_properties;
120 int64_t max_password_age;
121 int64_t min_password_age;
124 struct samr_DomInfo2 {
125 NTTIME force_logoff_time;
126 struct lsa_String comment;
127 struct lsa_String domain_name;
128 struct lsa_String primary;
129 uint64_t sequence_num;
130 uint32_t unknown2;
131 enum samr_Role role;
132 uint32_t unknown3;
133 uint32_t num_users;
134 uint32_t num_groups;
135 uint32_t num_aliases;
138 struct samr_DomInfo3 {
139 NTTIME force_logoff_time;
142 struct samr_DomInfo4 {
143 struct lsa_String comment;
146 struct samr_DomInfo5 {
147 struct lsa_String domain_name;
150 struct samr_DomInfo6 {
151 struct lsa_String primary;
154 struct samr_DomInfo7 {
155 enum samr_Role role;
158 struct samr_DomInfo8 {
159 uint64_t sequence_num;
160 NTTIME domain_create_time;
163 struct samr_DomInfo9 {
164 uint32_t unknown;
167 struct samr_DomInfo11 {
168 struct samr_DomInfo2 info2;
169 uint64_t lockout_duration;
170 uint64_t lockout_window;
171 uint16_t lockout_threshold;
174 struct samr_DomInfo12 {
175 uint64_t lockout_duration;
176 uint64_t lockout_window;
177 uint16_t lockout_threshold;
180 struct samr_DomInfo13 {
181 uint64_t sequence_num;
182 NTTIME domain_create_time;
183 uint32_t unknown1;
184 uint32_t unknown2;
187 union samr_DomainInfo {
188 struct samr_DomInfo1 info1;/* [case] */
189 struct samr_DomInfo2 info2;/* [case(2)] */
190 struct samr_DomInfo3 info3;/* [case(3)] */
191 struct samr_DomInfo4 info4;/* [case(4)] */
192 struct samr_DomInfo5 info5;/* [case(5)] */
193 struct samr_DomInfo6 info6;/* [case(6)] */
194 struct samr_DomInfo7 info7;/* [case(7)] */
195 struct samr_DomInfo8 info8;/* [case(8)] */
196 struct samr_DomInfo9 info9;/* [case(9)] */
197 struct samr_DomInfo11 info11;/* [case(11)] */
198 struct samr_DomInfo12 info12;/* [case(12)] */
199 struct samr_DomInfo13 info13;/* [case(13)] */
200 }/* [switch_type(uint16)] */;
202 struct samr_Ids {
203 uint32_t count;/* [range(0 1024)] */
204 uint32_t *ids;/* [unique,size_is(count)] */
207 /* bitmap samr_GroupAttrs */
208 #define SE_GROUP_MANDATORY ( 0x00000001 )
209 #define SE_GROUP_ENABLED_BY_DEFAULT ( 0x00000002 )
210 #define SE_GROUP_ENABLED ( 0x00000004 )
211 #define SE_GROUP_OWNER ( 0x00000008 )
212 #define SE_GROUP_USE_FOR_DENY_ONLY ( 0x00000010 )
213 #define SE_GROUP_RESOURCE ( 0x20000000 )
214 #define SE_GROUP_LOGON_ID ( 0xC0000000 )
216 struct samr_GroupInfoAll {
217 struct lsa_String name;
218 uint32_t attributes;
219 uint32_t num_members;
220 struct lsa_String description;
223 struct samr_GroupInfoAttributes {
224 uint32_t attributes;
227 struct samr_GroupInfoDescription {
228 struct lsa_String description;
231 enum samr_GroupInfoEnum
232 #ifndef USE_UINT_ENUMS
234 GROUPINFOALL=1,
235 GROUPINFONAME=2,
236 GROUPINFOATTRIBUTES=3,
237 GROUPINFODESCRIPTION=4,
238 GROUPINFOALL2=5
240 #else
241 { __donnot_use_enum_samr_GroupInfoEnum=0x7FFFFFFF}
242 #define GROUPINFOALL ( 1 )
243 #define GROUPINFONAME ( 2 )
244 #define GROUPINFOATTRIBUTES ( 3 )
245 #define GROUPINFODESCRIPTION ( 4 )
246 #define GROUPINFOALL2 ( 5 )
247 #endif
250 union samr_GroupInfo {
251 struct samr_GroupInfoAll all;/* [case(GROUPINFOALL)] */
252 struct lsa_String name;/* [case(GROUPINFONAME)] */
253 struct samr_GroupInfoAttributes attributes;/* [case(GROUPINFOATTRIBUTES)] */
254 struct lsa_String description;/* [case(GROUPINFODESCRIPTION)] */
255 struct samr_GroupInfoAll all2;/* [case(GROUPINFOALL2)] */
256 }/* [switch_type(samr_GroupInfoEnum)] */;
258 struct samr_RidTypeArray {
259 uint32_t count;
260 uint32_t *rids;/* [unique,size_is(count)] */
261 uint32_t *types;/* [unique,size_is(count)] */
264 struct samr_AliasInfoAll {
265 struct lsa_String name;
266 uint32_t num_members;
267 struct lsa_String description;
270 enum samr_AliasInfoEnum
271 #ifndef USE_UINT_ENUMS
273 ALIASINFOALL=1,
274 ALIASINFONAME=2,
275 ALIASINFODESCRIPTION=3
277 #else
278 { __donnot_use_enum_samr_AliasInfoEnum=0x7FFFFFFF}
279 #define ALIASINFOALL ( 1 )
280 #define ALIASINFONAME ( 2 )
281 #define ALIASINFODESCRIPTION ( 3 )
282 #endif
285 union samr_AliasInfo {
286 struct samr_AliasInfoAll all;/* [case(ALIASINFOALL)] */
287 struct lsa_String name;/* [case(ALIASINFONAME)] */
288 struct lsa_String description;/* [case(ALIASINFODESCRIPTION)] */
289 }/* [switch_type(samr_AliasInfoEnum)] */;
291 struct samr_UserInfo1 {
292 struct lsa_String account_name;
293 struct lsa_String full_name;
294 uint32_t primary_gid;
295 struct lsa_String description;
296 struct lsa_String comment;
299 struct samr_UserInfo2 {
300 struct lsa_String comment;
301 struct lsa_String unknown;
302 uint16_t country_code;
303 uint16_t code_page;
306 struct samr_LogonHours {
307 uint16_t units_per_week;
308 uint8_t *bits;/* [unique,length_is(units_per_week/8),size_is(1260)] */
309 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
311 struct samr_UserInfo3 {
312 struct lsa_String account_name;
313 struct lsa_String full_name;
314 uint32_t rid;
315 uint32_t primary_gid;
316 struct lsa_String home_directory;
317 struct lsa_String home_drive;
318 struct lsa_String logon_script;
319 struct lsa_String profile_path;
320 struct lsa_String workstations;
321 NTTIME last_logon;
322 NTTIME last_logoff;
323 NTTIME last_password_change;
324 NTTIME allow_password_change;
325 NTTIME force_password_change;
326 struct samr_LogonHours logon_hours;
327 uint16_t bad_password_count;
328 uint16_t logon_count;
329 uint32_t acct_flags;
332 struct samr_UserInfo4 {
333 struct samr_LogonHours logon_hours;
336 struct samr_UserInfo5 {
337 struct lsa_String account_name;
338 struct lsa_String full_name;
339 uint32_t rid;
340 uint32_t primary_gid;
341 struct lsa_String home_directory;
342 struct lsa_String home_drive;
343 struct lsa_String logon_script;
344 struct lsa_String profile_path;
345 struct lsa_String description;
346 struct lsa_String workstations;
347 NTTIME last_logon;
348 NTTIME last_logoff;
349 struct samr_LogonHours logon_hours;
350 uint16_t bad_password_count;
351 uint16_t logon_count;
352 NTTIME last_password_change;
353 NTTIME acct_expiry;
354 uint32_t acct_flags;
357 struct samr_UserInfo6 {
358 struct lsa_String account_name;
359 struct lsa_String full_name;
362 struct samr_UserInfo7 {
363 struct lsa_String account_name;
366 struct samr_UserInfo8 {
367 struct lsa_String full_name;
370 struct samr_UserInfo9 {
371 uint32_t primary_gid;
374 struct samr_UserInfo10 {
375 struct lsa_String home_directory;
376 struct lsa_String home_drive;
379 struct samr_UserInfo11 {
380 struct lsa_String logon_script;
383 struct samr_UserInfo12 {
384 struct lsa_String profile_path;
387 struct samr_UserInfo13 {
388 struct lsa_String description;
391 struct samr_UserInfo14 {
392 struct lsa_String workstations;
395 struct samr_UserInfo16 {
396 uint32_t acct_flags;
399 struct samr_UserInfo17 {
400 NTTIME acct_expiry;
403 struct samr_UserInfo20 {
404 struct lsa_String parameters;
407 /* bitmap samr_FieldsPresent */
408 #define SAMR_FIELD_ACCOUNT_NAME ( 0x00000001 )
409 #define SAMR_FIELD_FULL_NAME ( 0x00000002 )
410 #define SAMR_FIELD_RID ( 0x00000004 )
411 #define SAMR_FIELD_PRIMARY_GID ( 0x00000008 )
412 #define SAMR_FIELD_DESCRIPTION ( 0x00000010 )
413 #define SAMR_FIELD_COMMENT ( 0x00000020 )
414 #define SAMR_FIELD_HOME_DIRECTORY ( 0x00000040 )
415 #define SAMR_FIELD_HOME_DRIVE ( 0x00000080 )
416 #define SAMR_FIELD_LOGON_SCRIPT ( 0x00000100 )
417 #define SAMR_FIELD_PROFILE_PATH ( 0x00000200 )
418 #define SAMR_FIELD_WORKSTATIONS ( 0x00000400 )
419 #define SAMR_FIELD_LAST_LOGON ( 0x00000800 )
420 #define SAMR_FIELD_LAST_LOGOFF ( 0x00001000 )
421 #define SAMR_FIELD_LOGON_HOURS ( 0x00002000 )
422 #define SAMR_FIELD_BAD_PWD_COUNT ( 0x00004000 )
423 #define SAMR_FIELD_NUM_LOGONS ( 0x00008000 )
424 #define SAMR_FIELD_ALLOW_PWD_CHANGE ( 0x00010000 )
425 #define SAMR_FIELD_FORCE_PWD_CHANGE ( 0x00020000 )
426 #define SAMR_FIELD_LAST_PWD_CHANGE ( 0x00040000 )
427 #define SAMR_FIELD_ACCT_EXPIRY ( 0x00080000 )
428 #define SAMR_FIELD_ACCT_FLAGS ( 0x00100000 )
429 #define SAMR_FIELD_PARAMETERS ( 0x00200000 )
430 #define SAMR_FIELD_COUNTRY_CODE ( 0x00400000 )
431 #define SAMR_FIELD_CODE_PAGE ( 0x00800000 )
432 #define SAMR_FIELD_PASSWORD ( 0x01000000 )
433 #define SAMR_FIELD_PASSWORD2 ( 0x02000000 )
434 #define SAMR_FIELD_PRIVATE_DATA ( 0x04000000 )
435 #define SAMR_FIELD_EXPIRED_FLAG ( 0x08000000 )
436 #define SAMR_FIELD_SEC_DESC ( 0x10000000 )
437 #define SAMR_FIELD_OWF_PWD ( 0x20000000 )
439 struct samr_UserInfo21 {
440 NTTIME last_logon;
441 NTTIME last_logoff;
442 NTTIME last_password_change;
443 NTTIME acct_expiry;
444 NTTIME allow_password_change;
445 NTTIME force_password_change;
446 struct lsa_String account_name;
447 struct lsa_String full_name;
448 struct lsa_String home_directory;
449 struct lsa_String home_drive;
450 struct lsa_String logon_script;
451 struct lsa_String profile_path;
452 struct lsa_String description;
453 struct lsa_String workstations;
454 struct lsa_String comment;
455 struct lsa_String parameters;
456 struct lsa_String unknown1;
457 struct lsa_String unknown2;
458 struct lsa_String unknown3;
459 uint32_t buf_count;
460 uint8_t *buffer;/* [unique,size_is(buf_count)] */
461 uint32_t rid;
462 uint32_t primary_gid;
463 uint32_t acct_flags;
464 uint32_t fields_present;
465 struct samr_LogonHours logon_hours;
466 uint16_t bad_password_count;
467 uint16_t logon_count;
468 uint16_t country_code;
469 uint16_t code_page;
470 uint8_t nt_password_set;
471 uint8_t lm_password_set;
472 uint8_t password_expired;
473 uint8_t unknown4;
476 struct samr_CryptPassword {
477 uint8_t data[516];
478 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
480 struct samr_UserInfo23 {
481 struct samr_UserInfo21 info;
482 struct samr_CryptPassword password;
485 struct samr_UserInfo24 {
486 struct samr_CryptPassword password;
487 uint8_t pw_len;
490 struct samr_CryptPasswordEx {
491 uint8_t data[532];
492 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
494 struct samr_UserInfo25 {
495 struct samr_UserInfo21 info;
496 struct samr_CryptPasswordEx password;
499 struct samr_UserInfo26 {
500 struct samr_CryptPasswordEx password;
501 uint8_t pw_len;
504 union samr_UserInfo {
505 struct samr_UserInfo1 info1;/* [case] */
506 struct samr_UserInfo2 info2;/* [case(2)] */
507 struct samr_UserInfo3 info3;/* [case(3)] */
508 struct samr_UserInfo4 info4;/* [case(4)] */
509 struct samr_UserInfo5 info5;/* [case(5)] */
510 struct samr_UserInfo6 info6;/* [case(6)] */
511 struct samr_UserInfo7 info7;/* [case(7)] */
512 struct samr_UserInfo8 info8;/* [case(8)] */
513 struct samr_UserInfo9 info9;/* [case(9)] */
514 struct samr_UserInfo10 info10;/* [case(10)] */
515 struct samr_UserInfo11 info11;/* [case(11)] */
516 struct samr_UserInfo12 info12;/* [case(12)] */
517 struct samr_UserInfo13 info13;/* [case(13)] */
518 struct samr_UserInfo14 info14;/* [case(14)] */
519 struct samr_UserInfo16 info16;/* [case(16)] */
520 struct samr_UserInfo17 info17;/* [case(17)] */
521 struct samr_UserInfo20 info20;/* [case(20)] */
522 struct samr_UserInfo21 info21;/* [case(21)] */
523 struct samr_UserInfo23 info23;/* [case(23)] */
524 struct samr_UserInfo24 info24;/* [case(24)] */
525 struct samr_UserInfo25 info25;/* [case(25)] */
526 struct samr_UserInfo26 info26;/* [case(26)] */
527 }/* [switch_type(uint16)] */;
529 struct samr_Password {
530 uint8_t hash[16];
531 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
533 struct samr_RidWithAttribute {
534 uint32_t rid;
535 uint32_t attributes;
536 }/* [public] */;
538 struct samr_RidWithAttributeArray {
539 uint32_t count;
540 struct samr_RidWithAttribute *rids;/* [unique,size_is(count)] */
541 }/* [public] */;
543 struct samr_DispEntryGeneral {
544 uint32_t idx;
545 uint32_t rid;
546 uint32_t acct_flags;
547 struct lsa_String account_name;
548 struct lsa_String description;
549 struct lsa_String full_name;
552 struct samr_DispInfoGeneral {
553 uint32_t count;
554 struct samr_DispEntryGeneral *entries;/* [unique,size_is(count)] */
557 struct samr_DispEntryFull {
558 uint32_t idx;
559 uint32_t rid;
560 uint32_t acct_flags;
561 struct lsa_String account_name;
562 struct lsa_String description;
565 struct samr_DispInfoFull {
566 uint32_t count;
567 struct samr_DispEntryFull *entries;/* [unique,size_is(count)] */
570 struct samr_DispEntryFullGroup {
571 uint32_t idx;
572 uint32_t rid;
573 uint32_t acct_flags;
574 struct lsa_String account_name;
575 struct lsa_String description;
578 struct samr_DispInfoFullGroups {
579 uint32_t count;
580 struct samr_DispEntryFullGroup *entries;/* [unique,size_is(count)] */
583 struct samr_DispEntryAscii {
584 uint32_t idx;
585 struct lsa_AsciiString account_name;
588 struct samr_DispInfoAscii {
589 uint32_t count;
590 struct samr_DispEntryAscii *entries;/* [unique,size_is(count)] */
593 union samr_DispInfo {
594 struct samr_DispInfoGeneral info1;/* [case] */
595 struct samr_DispInfoFull info2;/* [case(2)] */
596 struct samr_DispInfoFullGroups info3;/* [case(3)] */
597 struct samr_DispInfoAscii info4;/* [case(4)] */
598 struct samr_DispInfoAscii info5;/* [case(5)] */
599 }/* [switch_type(uint16)] */;
601 struct samr_PwInfo {
602 uint16_t min_password_length;
603 uint32_t password_properties;
606 enum samr_RejectReason;
608 struct samr_ChangeReject {
609 enum samr_RejectReason reason;
610 uint32_t unknown1;
611 uint32_t unknown2;
614 struct samr_ConnectInfo1 {
615 uint32_t unknown1;
616 uint32_t unknown2;
619 union samr_ConnectInfo {
620 struct samr_ConnectInfo1 info1;/* [case] */
623 /* bitmap samr_ValidateFieldsPresent */
624 #define SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET ( 0x00000001 )
625 #define SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME ( 0x00000002 )
626 #define SAMR_VALIDATE_FIELD_LOCKOUT_TIME ( 0x00000004 )
627 #define SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT ( 0x00000008 )
628 #define SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH ( 0x00000010 )
629 #define SAMR_VALIDATE_FIELD_PASSWORD_HISTORY ( 0x00000020 )
631 enum samr_ValidatePasswordLevel
632 #ifndef USE_UINT_ENUMS
634 NetValidateAuthentication=1,
635 NetValidatePasswordChange=2,
636 NetValidatePasswordReset=3
638 #else
639 { __donnot_use_enum_samr_ValidatePasswordLevel=0x7FFFFFFF}
640 #define NetValidateAuthentication ( 1 )
641 #define NetValidatePasswordChange ( 2 )
642 #define NetValidatePasswordReset ( 3 )
643 #endif
646 enum samr_ValidationStatus
647 #ifndef USE_UINT_ENUMS
649 SAMR_VALIDATION_STATUS_SUCCESS=0,
650 SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE=1,
651 SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT=2,
652 SAMR_VALIDATION_STATUS_BAD_PASSWORD=4,
653 SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT=5,
654 SAMR_VALIDATION_STATUS_PWD_TOO_SHORT=6,
655 SAMR_VALIDATION_STATUS_PWD_TOO_LONG=7,
656 SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH=8,
657 SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT=9
659 #else
660 { __donnot_use_enum_samr_ValidationStatus=0x7FFFFFFF}
661 #define SAMR_VALIDATION_STATUS_SUCCESS ( 0 )
662 #define SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE ( 1 )
663 #define SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT ( 2 )
664 #define SAMR_VALIDATION_STATUS_BAD_PASSWORD ( 4 )
665 #define SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT ( 5 )
666 #define SAMR_VALIDATION_STATUS_PWD_TOO_SHORT ( 6 )
667 #define SAMR_VALIDATION_STATUS_PWD_TOO_LONG ( 7 )
668 #define SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH ( 8 )
669 #define SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT ( 9 )
670 #endif
673 struct samr_ValidationBlob {
674 uint32_t length;
675 uint8_t *data;/* [unique,size_is(length)] */
678 struct samr_ValidatePasswordInfo {
679 uint32_t fields_present;
680 NTTIME last_password_change;
681 NTTIME bad_password_time;
682 NTTIME lockout_time;
683 uint32_t bad_pwd_count;
684 uint32_t pwd_history_len;
685 struct samr_ValidationBlob *pwd_history;/* [unique,size_is(pwd_history_len)] */
688 struct samr_ValidatePasswordRepCtr {
689 struct samr_ValidatePasswordInfo info;
690 enum samr_ValidationStatus status;
693 union samr_ValidatePasswordRep {
694 struct samr_ValidatePasswordRepCtr ctr1;/* [case] */
695 struct samr_ValidatePasswordRepCtr ctr2;/* [case(2)] */
696 struct samr_ValidatePasswordRepCtr ctr3;/* [case(3)] */
697 }/* [switch_type(uint16)] */;
699 struct samr_ValidatePasswordReq3 {
700 struct samr_ValidatePasswordInfo info;
701 struct lsa_StringLarge password;
702 struct lsa_StringLarge account;
703 struct samr_ValidationBlob hash;
704 uint8_t pwd_must_change_at_next_logon;
705 uint8_t clear_lockout;
708 struct samr_ValidatePasswordReq2 {
709 struct samr_ValidatePasswordInfo info;
710 struct lsa_StringLarge password;
711 struct lsa_StringLarge account;
712 struct samr_ValidationBlob hash;
713 uint8_t password_matched;
716 struct samr_ValidatePasswordReq1 {
717 struct samr_ValidatePasswordInfo info;
718 uint8_t password_matched;
721 union samr_ValidatePasswordReq {
722 struct samr_ValidatePasswordReq1 req1;/* [case] */
723 struct samr_ValidatePasswordReq2 req2;/* [case(2)] */
724 struct samr_ValidatePasswordReq3 req3;/* [case(3)] */
725 }/* [switch_type(uint16)] */;
728 struct samr_Connect {
729 struct {
730 uint16_t *system_name;/* [unique] */
731 uint32_t access_mask;
732 } in;
734 struct {
735 struct policy_handle *connect_handle;/* [ref] */
736 NTSTATUS result;
737 } out;
742 struct samr_Close {
743 struct {
744 struct policy_handle *handle;/* [ref] */
745 } in;
747 struct {
748 struct policy_handle *handle;/* [ref] */
749 NTSTATUS result;
750 } out;
755 struct samr_SetSecurity {
756 struct {
757 struct policy_handle *handle;/* [ref] */
758 uint32_t sec_info;
759 struct sec_desc_buf *sdbuf;/* [ref] */
760 } in;
762 struct {
763 NTSTATUS result;
764 } out;
769 struct samr_QuerySecurity {
770 struct {
771 struct policy_handle *handle;/* [ref] */
772 uint32_t sec_info;
773 } in;
775 struct {
776 struct sec_desc_buf *sdbuf;/* [ref] */
777 NTSTATUS result;
778 } out;
783 struct samr_Shutdown {
784 struct {
785 struct policy_handle *connect_handle;/* [ref] */
786 } in;
788 struct {
789 NTSTATUS result;
790 } out;
795 struct samr_LookupDomain {
796 struct {
797 struct policy_handle *connect_handle;/* [ref] */
798 struct lsa_String *domain_name;/* [ref] */
799 } in;
801 struct {
802 struct dom_sid2 *sid;/* [ref] */
803 NTSTATUS result;
804 } out;
809 struct samr_EnumDomains {
810 struct {
811 struct policy_handle *connect_handle;/* [ref] */
812 uint32_t buf_size;
813 uint32_t *resume_handle;/* [ref] */
814 } in;
816 struct {
817 struct samr_SamArray *sam;/* [ref] */
818 uint32_t *num_entries;/* [ref] */
819 uint32_t *resume_handle;/* [ref] */
820 NTSTATUS result;
821 } out;
826 struct samr_OpenDomain {
827 struct {
828 struct policy_handle *connect_handle;/* [ref] */
829 uint32_t access_mask;
830 struct dom_sid2 *sid;/* [ref] */
831 } in;
833 struct {
834 struct policy_handle *domain_handle;/* [ref] */
835 NTSTATUS result;
836 } out;
841 struct samr_QueryDomainInfo {
842 struct {
843 struct policy_handle *domain_handle;/* [ref] */
844 uint16_t level;
845 } in;
847 struct {
848 union samr_DomainInfo *info;/* [ref,switch_is(level)] */
849 NTSTATUS result;
850 } out;
855 struct samr_SetDomainInfo {
856 struct {
857 struct policy_handle *domain_handle;/* [ref] */
858 uint16_t level;
859 union samr_DomainInfo *info;/* [ref,switch_is(level)] */
860 } in;
862 struct {
863 NTSTATUS result;
864 } out;
869 struct samr_CreateDomainGroup {
870 struct {
871 struct policy_handle *domain_handle;/* [ref] */
872 struct lsa_String *name;/* [ref] */
873 uint32_t access_mask;
874 } in;
876 struct {
877 struct policy_handle *group_handle;/* [ref] */
878 uint32_t *rid;/* [ref] */
879 NTSTATUS result;
880 } out;
885 struct samr_EnumDomainGroups {
886 struct {
887 struct policy_handle *domain_handle;/* [ref] */
888 uint32_t max_size;
889 uint32_t *resume_handle;/* [ref] */
890 } in;
892 struct {
893 struct samr_SamArray *sam;/* [ref] */
894 uint32_t *num_entries;/* [ref] */
895 uint32_t *resume_handle;/* [ref] */
896 NTSTATUS result;
897 } out;
902 struct samr_CreateUser {
903 struct {
904 struct policy_handle *domain_handle;/* [ref] */
905 struct lsa_String *account_name;/* [ref] */
906 uint32_t access_mask;
907 } in;
909 struct {
910 struct policy_handle *user_handle;/* [ref] */
911 uint32_t *rid;/* [ref] */
912 NTSTATUS result;
913 } out;
918 struct samr_EnumDomainUsers {
919 struct {
920 struct policy_handle *domain_handle;/* [ref] */
921 uint32_t acct_flags;
922 uint32_t max_size;
923 uint32_t *resume_handle;/* [ref] */
924 } in;
926 struct {
927 struct samr_SamArray *sam;/* [unique] */
928 uint32_t *num_entries;/* [ref] */
929 uint32_t *resume_handle;/* [ref] */
930 NTSTATUS result;
931 } out;
936 struct samr_CreateDomAlias {
937 struct {
938 struct policy_handle *domain_handle;/* [ref] */
939 struct lsa_String *alias_name;/* [ref] */
940 uint32_t access_mask;
941 } in;
943 struct {
944 struct policy_handle *alias_handle;/* [ref] */
945 uint32_t *rid;/* [ref] */
946 NTSTATUS result;
947 } out;
952 struct samr_EnumDomainAliases {
953 struct {
954 struct policy_handle *domain_handle;/* [ref] */
955 uint32_t acct_flags;
956 uint32_t *resume_handle;/* [ref] */
957 } in;
959 struct {
960 struct samr_SamArray *sam;/* [ref] */
961 uint32_t *num_entries;/* [ref] */
962 uint32_t *resume_handle;/* [ref] */
963 NTSTATUS result;
964 } out;
969 struct samr_GetAliasMembership {
970 struct {
971 struct policy_handle *domain_handle;/* [ref] */
972 struct lsa_SidArray *sids;/* [ref] */
973 } in;
975 struct {
976 struct samr_Ids *rids;/* [ref] */
977 NTSTATUS result;
978 } out;
983 struct samr_LookupNames {
984 struct {
985 struct policy_handle *domain_handle;/* [ref] */
986 uint32_t num_names;/* [range(0 1000)] */
987 struct lsa_String *names;/* [length_is(num_names),size_is(1000)] */
988 } in;
990 struct {
991 struct samr_Ids *rids;/* [ref] */
992 struct samr_Ids *types;/* [ref] */
993 NTSTATUS result;
994 } out;
999 struct samr_LookupRids {
1000 struct {
1001 struct policy_handle *domain_handle;/* [ref] */
1002 uint32_t num_rids;/* [range(0 1000)] */
1003 uint32_t *rids;/* [length_is(num_rids),size_is(1000)] */
1004 } in;
1006 struct {
1007 struct lsa_Strings *names;/* [ref] */
1008 struct samr_Ids *types;/* [ref] */
1009 NTSTATUS result;
1010 } out;
1015 struct samr_OpenGroup {
1016 struct {
1017 struct policy_handle *domain_handle;/* [ref] */
1018 uint32_t access_mask;
1019 uint32_t rid;
1020 } in;
1022 struct {
1023 struct policy_handle *group_handle;/* [ref] */
1024 NTSTATUS result;
1025 } out;
1030 struct samr_QueryGroupInfo {
1031 struct {
1032 struct policy_handle *group_handle;/* [ref] */
1033 enum samr_GroupInfoEnum level;
1034 } in;
1036 struct {
1037 union samr_GroupInfo *info;/* [ref,switch_is(level)] */
1038 NTSTATUS result;
1039 } out;
1044 struct samr_SetGroupInfo {
1045 struct {
1046 struct policy_handle *group_handle;/* [ref] */
1047 enum samr_GroupInfoEnum level;
1048 union samr_GroupInfo *info;/* [ref,switch_is(level)] */
1049 } in;
1051 struct {
1052 NTSTATUS result;
1053 } out;
1058 struct samr_AddGroupMember {
1059 struct {
1060 struct policy_handle *group_handle;/* [ref] */
1061 uint32_t rid;
1062 uint32_t flags;
1063 } in;
1065 struct {
1066 NTSTATUS result;
1067 } out;
1072 struct samr_DeleteDomainGroup {
1073 struct {
1074 struct policy_handle *group_handle;/* [ref] */
1075 } in;
1077 struct {
1078 struct policy_handle *group_handle;/* [ref] */
1079 NTSTATUS result;
1080 } out;
1085 struct samr_DeleteGroupMember {
1086 struct {
1087 struct policy_handle *group_handle;/* [ref] */
1088 uint32_t rid;
1089 } in;
1091 struct {
1092 NTSTATUS result;
1093 } out;
1098 struct samr_QueryGroupMember {
1099 struct {
1100 struct policy_handle *group_handle;/* [ref] */
1101 } in;
1103 struct {
1104 struct samr_RidTypeArray *rids;/* [ref] */
1105 NTSTATUS result;
1106 } out;
1111 struct samr_SetMemberAttributesOfGroup {
1112 struct {
1113 struct policy_handle *group_handle;/* [ref] */
1114 uint32_t unknown1;
1115 uint32_t unknown2;
1116 } in;
1118 struct {
1119 NTSTATUS result;
1120 } out;
1125 struct samr_OpenAlias {
1126 struct {
1127 struct policy_handle *domain_handle;/* [ref] */
1128 uint32_t access_mask;
1129 uint32_t rid;
1130 } in;
1132 struct {
1133 struct policy_handle *alias_handle;/* [ref] */
1134 NTSTATUS result;
1135 } out;
1140 struct samr_QueryAliasInfo {
1141 struct {
1142 struct policy_handle *alias_handle;/* [ref] */
1143 enum samr_AliasInfoEnum level;
1144 } in;
1146 struct {
1147 union samr_AliasInfo *info;/* [ref,switch_is(level)] */
1148 NTSTATUS result;
1149 } out;
1154 struct samr_SetAliasInfo {
1155 struct {
1156 struct policy_handle *alias_handle;/* [ref] */
1157 enum samr_AliasInfoEnum level;
1158 union samr_AliasInfo *info;/* [ref,switch_is(level)] */
1159 } in;
1161 struct {
1162 NTSTATUS result;
1163 } out;
1168 struct samr_DeleteDomAlias {
1169 struct {
1170 struct policy_handle *alias_handle;/* [ref] */
1171 } in;
1173 struct {
1174 struct policy_handle *alias_handle;/* [ref] */
1175 NTSTATUS result;
1176 } out;
1181 struct samr_AddAliasMember {
1182 struct {
1183 struct policy_handle *alias_handle;/* [ref] */
1184 struct dom_sid2 *sid;/* [ref] */
1185 } in;
1187 struct {
1188 NTSTATUS result;
1189 } out;
1194 struct samr_DeleteAliasMember {
1195 struct {
1196 struct policy_handle *alias_handle;/* [ref] */
1197 struct dom_sid2 *sid;/* [ref] */
1198 } in;
1200 struct {
1201 NTSTATUS result;
1202 } out;
1207 struct samr_GetMembersInAlias {
1208 struct {
1209 struct policy_handle *alias_handle;/* [ref] */
1210 } in;
1212 struct {
1213 struct lsa_SidArray *sids;/* [ref] */
1214 NTSTATUS result;
1215 } out;
1220 struct samr_OpenUser {
1221 struct {
1222 struct policy_handle *domain_handle;/* [ref] */
1223 uint32_t access_mask;
1224 uint32_t rid;
1225 } in;
1227 struct {
1228 struct policy_handle *user_handle;/* [ref] */
1229 NTSTATUS result;
1230 } out;
1235 struct samr_DeleteUser {
1236 struct {
1237 struct policy_handle *user_handle;/* [ref] */
1238 } in;
1240 struct {
1241 struct policy_handle *user_handle;/* [ref] */
1242 NTSTATUS result;
1243 } out;
1248 struct samr_QueryUserInfo {
1249 struct {
1250 struct policy_handle *user_handle;/* [ref] */
1251 uint16_t level;
1252 } in;
1254 struct {
1255 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1256 NTSTATUS result;
1257 } out;
1262 struct samr_SetUserInfo {
1263 struct {
1264 struct policy_handle *user_handle;/* [ref] */
1265 uint16_t level;
1266 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1267 } in;
1269 struct {
1270 NTSTATUS result;
1271 } out;
1276 struct samr_ChangePasswordUser {
1277 struct {
1278 struct policy_handle *user_handle;/* [ref] */
1279 uint8_t lm_present;
1280 struct samr_Password *old_lm_crypted;/* [unique] */
1281 struct samr_Password *new_lm_crypted;/* [unique] */
1282 uint8_t nt_present;
1283 struct samr_Password *old_nt_crypted;/* [unique] */
1284 struct samr_Password *new_nt_crypted;/* [unique] */
1285 uint8_t cross1_present;
1286 struct samr_Password *nt_cross;/* [unique] */
1287 uint8_t cross2_present;
1288 struct samr_Password *lm_cross;/* [unique] */
1289 } in;
1291 struct {
1292 NTSTATUS result;
1293 } out;
1298 struct samr_GetGroupsForUser {
1299 struct {
1300 struct policy_handle *user_handle;/* [ref] */
1301 } in;
1303 struct {
1304 struct samr_RidWithAttributeArray *rids;/* [ref] */
1305 NTSTATUS result;
1306 } out;
1311 struct samr_QueryDisplayInfo {
1312 struct {
1313 struct policy_handle *domain_handle;/* [ref] */
1314 uint16_t level;
1315 uint32_t start_idx;
1316 uint32_t max_entries;
1317 uint32_t buf_size;
1318 } in;
1320 struct {
1321 uint32_t *total_size;/* [ref] */
1322 uint32_t *returned_size;/* [ref] */
1323 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1324 NTSTATUS result;
1325 } out;
1330 struct samr_GetDisplayEnumerationIndex {
1331 struct {
1332 struct policy_handle *domain_handle;/* [ref] */
1333 uint16_t level;
1334 struct lsa_String name;
1335 } in;
1337 struct {
1338 uint32_t *idx;/* [ref] */
1339 NTSTATUS result;
1340 } out;
1345 struct samr_TestPrivateFunctionsDomain {
1346 struct {
1347 struct policy_handle *domain_handle;/* [ref] */
1348 } in;
1350 struct {
1351 NTSTATUS result;
1352 } out;
1357 struct samr_TestPrivateFunctionsUser {
1358 struct {
1359 struct policy_handle *user_handle;/* [ref] */
1360 } in;
1362 struct {
1363 NTSTATUS result;
1364 } out;
1369 struct samr_GetUserPwInfo {
1370 struct {
1371 struct policy_handle *user_handle;/* [ref] */
1372 } in;
1374 struct {
1375 struct samr_PwInfo *info;/* [ref] */
1376 NTSTATUS result;
1377 } out;
1382 struct samr_RemoveMemberFromForeignDomain {
1383 struct {
1384 struct policy_handle *domain_handle;/* [ref] */
1385 struct dom_sid2 *sid;/* [ref] */
1386 } in;
1388 struct {
1389 NTSTATUS result;
1390 } out;
1395 struct samr_QueryDomainInfo2 {
1396 struct {
1397 struct policy_handle *domain_handle;/* [ref] */
1398 uint16_t level;
1399 } in;
1401 struct {
1402 union samr_DomainInfo *info;/* [ref,switch_is(level)] */
1403 NTSTATUS result;
1404 } out;
1409 struct samr_QueryUserInfo2 {
1410 struct {
1411 struct policy_handle *user_handle;/* [ref] */
1412 uint16_t level;
1413 } in;
1415 struct {
1416 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1417 NTSTATUS result;
1418 } out;
1423 struct samr_QueryDisplayInfo2 {
1424 struct {
1425 struct policy_handle *domain_handle;/* [ref] */
1426 uint16_t level;
1427 uint32_t start_idx;
1428 uint32_t max_entries;
1429 uint32_t buf_size;
1430 } in;
1432 struct {
1433 uint32_t *total_size;/* [ref] */
1434 uint32_t *returned_size;/* [ref] */
1435 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1436 NTSTATUS result;
1437 } out;
1442 struct samr_GetDisplayEnumerationIndex2 {
1443 struct {
1444 struct policy_handle *domain_handle;/* [ref] */
1445 uint16_t level;
1446 struct lsa_String name;
1447 } in;
1449 struct {
1450 uint32_t *idx;/* [ref] */
1451 NTSTATUS result;
1452 } out;
1457 struct samr_CreateUser2 {
1458 struct {
1459 struct policy_handle *domain_handle;/* [ref] */
1460 struct lsa_String *account_name;/* [ref] */
1461 uint32_t acct_flags;
1462 uint32_t access_mask;
1463 } in;
1465 struct {
1466 struct policy_handle *user_handle;/* [ref] */
1467 uint32_t *access_granted;/* [ref] */
1468 uint32_t *rid;/* [ref] */
1469 NTSTATUS result;
1470 } out;
1475 struct samr_QueryDisplayInfo3 {
1476 struct {
1477 struct policy_handle *domain_handle;/* [ref] */
1478 uint16_t level;
1479 uint32_t start_idx;
1480 uint32_t max_entries;
1481 uint32_t buf_size;
1482 } in;
1484 struct {
1485 uint32_t *total_size;/* [ref] */
1486 uint32_t *returned_size;/* [ref] */
1487 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1488 NTSTATUS result;
1489 } out;
1494 struct samr_AddMultipleMembersToAlias {
1495 struct {
1496 struct policy_handle *alias_handle;/* [ref] */
1497 struct lsa_SidArray *sids;/* [ref] */
1498 } in;
1500 struct {
1501 NTSTATUS result;
1502 } out;
1507 struct samr_RemoveMultipleMembersFromAlias {
1508 struct {
1509 struct policy_handle *alias_handle;/* [ref] */
1510 struct lsa_SidArray *sids;/* [ref] */
1511 } in;
1513 struct {
1514 NTSTATUS result;
1515 } out;
1520 struct samr_OemChangePasswordUser2 {
1521 struct {
1522 struct lsa_AsciiString *server;/* [unique] */
1523 struct lsa_AsciiString *account;/* [ref] */
1524 struct samr_CryptPassword *password;/* [unique] */
1525 struct samr_Password *hash;/* [unique] */
1526 } in;
1528 struct {
1529 NTSTATUS result;
1530 } out;
1535 struct samr_ChangePasswordUser2 {
1536 struct {
1537 struct lsa_String *server;/* [unique] */
1538 struct lsa_String *account;/* [ref] */
1539 struct samr_CryptPassword *nt_password;/* [unique] */
1540 struct samr_Password *nt_verifier;/* [unique] */
1541 uint8_t lm_change;
1542 struct samr_CryptPassword *lm_password;/* [unique] */
1543 struct samr_Password *lm_verifier;/* [unique] */
1544 } in;
1546 struct {
1547 NTSTATUS result;
1548 } out;
1553 struct samr_GetDomPwInfo {
1554 struct {
1555 struct lsa_String *domain_name;/* [unique] */
1556 } in;
1558 struct {
1559 struct samr_PwInfo *info;/* [ref] */
1560 NTSTATUS result;
1561 } out;
1566 struct samr_Connect2 {
1567 struct {
1568 const char *system_name;/* [unique,charset(UTF16)] */
1569 uint32_t access_mask;
1570 } in;
1572 struct {
1573 struct policy_handle *connect_handle;/* [ref] */
1574 NTSTATUS result;
1575 } out;
1580 struct samr_SetUserInfo2 {
1581 struct {
1582 struct policy_handle *user_handle;/* [ref] */
1583 uint16_t level;
1584 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1585 } in;
1587 struct {
1588 NTSTATUS result;
1589 } out;
1594 struct samr_SetBootKeyInformation {
1595 struct {
1596 struct policy_handle *connect_handle;/* [ref] */
1597 uint32_t unknown1;
1598 uint32_t unknown2;
1599 uint32_t unknown3;
1600 } in;
1602 struct {
1603 NTSTATUS result;
1604 } out;
1609 struct samr_GetBootKeyInformation {
1610 struct {
1611 struct policy_handle *domain_handle;/* [ref] */
1612 } in;
1614 struct {
1615 uint32_t *unknown;/* [ref] */
1616 NTSTATUS result;
1617 } out;
1622 struct samr_Connect3 {
1623 struct {
1624 const char *system_name;/* [unique,charset(UTF16)] */
1625 uint32_t unknown;
1626 uint32_t access_mask;
1627 } in;
1629 struct {
1630 struct policy_handle *connect_handle;/* [ref] */
1631 NTSTATUS result;
1632 } out;
1637 struct samr_Connect4 {
1638 struct {
1639 const char *system_name;/* [unique,charset(UTF16)] */
1640 uint32_t unknown;
1641 uint32_t access_mask;
1642 } in;
1644 struct {
1645 struct policy_handle *connect_handle;/* [ref] */
1646 NTSTATUS result;
1647 } out;
1652 struct samr_ChangePasswordUser3 {
1653 struct {
1654 struct lsa_String *server;/* [unique] */
1655 struct lsa_String *account;/* [ref] */
1656 struct samr_CryptPassword *nt_password;/* [unique] */
1657 struct samr_Password *nt_verifier;/* [unique] */
1658 uint8_t lm_change;
1659 struct samr_CryptPassword *lm_password;/* [unique] */
1660 struct samr_Password *lm_verifier;/* [unique] */
1661 struct samr_CryptPassword *password3;/* [unique] */
1662 } in;
1664 struct {
1665 struct samr_DomInfo1 *dominfo;/* [ref] */
1666 struct samr_ChangeReject *reject;/* [ref] */
1667 NTSTATUS result;
1668 } out;
1673 struct samr_Connect5 {
1674 struct {
1675 const char *system_name;/* [unique,charset(UTF16)] */
1676 uint32_t access_mask;
1677 uint32_t level_in;
1678 union samr_ConnectInfo *info_in;/* [ref,switch_is(level_in)] */
1679 } in;
1681 struct {
1682 uint32_t *level_out;/* [ref] */
1683 union samr_ConnectInfo *info_out;/* [ref,switch_is(*level_out)] */
1684 struct policy_handle *connect_handle;/* [ref] */
1685 NTSTATUS result;
1686 } out;
1691 struct samr_RidToSid {
1692 struct {
1693 struct policy_handle *domain_handle;/* [ref] */
1694 uint32_t rid;
1695 } in;
1697 struct {
1698 struct dom_sid2 *sid;/* [ref] */
1699 NTSTATUS result;
1700 } out;
1705 struct samr_SetDsrmPassword {
1706 struct {
1707 struct lsa_String *name;/* [unique] */
1708 uint32_t unknown;
1709 struct samr_Password *hash;/* [unique] */
1710 } in;
1712 struct {
1713 NTSTATUS result;
1714 } out;
1719 struct samr_ValidatePassword {
1720 struct {
1721 enum samr_ValidatePasswordLevel level;
1722 union samr_ValidatePasswordReq req;/* [switch_is(level)] */
1723 } in;
1725 struct {
1726 union samr_ValidatePasswordRep *rep;/* [ref,switch_is(level)] */
1727 NTSTATUS result;
1728 } out;
1732 #endif /* _HEADER_samr */