1 /* header auto-generated by pidl */
5 #include "librpc/gen_ndr/misc.h"
6 #include "librpc/gen_ndr/lsa.h"
7 #include "librpc/gen_ndr/security.h"
11 #define SAMR_ENUM_USERS_MULTIPLIER ( 54 )
14 /* bitmap samr_AcctFlags */
15 #define ACB_DISABLED ( 0x00000001 )
16 #define ACB_HOMDIRREQ ( 0x00000002 )
17 #define ACB_PWNOTREQ ( 0x00000004 )
18 #define ACB_TEMPDUP ( 0x00000008 )
19 #define ACB_NORMAL ( 0x00000010 )
20 #define ACB_MNS ( 0x00000020 )
21 #define ACB_DOMTRUST ( 0x00000040 )
22 #define ACB_WSTRUST ( 0x00000080 )
23 #define ACB_SVRTRUST ( 0x00000100 )
24 #define ACB_PWNOEXP ( 0x00000200 )
25 #define ACB_AUTOLOCK ( 0x00000400 )
26 #define ACB_ENC_TXT_PWD_ALLOWED ( 0x00000800 )
27 #define ACB_SMARTCARD_REQUIRED ( 0x00001000 )
28 #define ACB_TRUSTED_FOR_DELEGATION ( 0x00002000 )
29 #define ACB_NOT_DELEGATED ( 0x00004000 )
30 #define ACB_USE_DES_KEY_ONLY ( 0x00008000 )
31 #define ACB_DONT_REQUIRE_PREAUTH ( 0x00010000 )
32 #define ACB_PW_EXPIRED ( 0x00020000 )
33 #define ACB_NO_AUTH_DATA_REQD ( 0x00080000 )
37 /* bitmap samr_ConnectAccessMask */
38 #define SAMR_ACCESS_CONNECT_TO_SERVER ( 0x00000001 )
39 #define SAMR_ACCESS_SHUTDOWN_SERVER ( 0x00000002 )
40 #define SAMR_ACCESS_INITIALIZE_SERVER ( 0x00000004 )
41 #define SAMR_ACCESS_CREATE_DOMAIN ( 0x00000008 )
42 #define SAMR_ACCESS_ENUM_DOMAINS ( 0x00000010 )
43 #define SAMR_ACCESS_OPEN_DOMAIN ( 0x00000020 )
47 /* bitmap samr_UserAccessMask */
48 #define USER_ACCESS_GET_NAME_ETC ( 0x00000001 )
49 #define USER_ACCESS_GET_LOCALE ( 0x00000002 )
50 #define USER_ACCESS_SET_LOC_COM ( 0x00000004 )
51 #define USER_ACCESS_GET_LOGONINFO ( 0x00000008 )
52 #define USER_ACCESS_GET_ATTRIBUTES ( 0x00000010 )
53 #define USER_ACCESS_SET_ATTRIBUTES ( 0x00000020 )
54 #define USER_ACCESS_CHANGE_PASSWORD ( 0x00000040 )
55 #define USER_ACCESS_SET_PASSWORD ( 0x00000080 )
56 #define USER_ACCESS_GET_GROUPS ( 0x00000100 )
57 #define USER_ACCESS_GET_GROUP_MEMBERSHIP ( 0x00000200 )
58 #define USER_ACCESS_CHANGE_GROUP_MEMBERSHIP ( 0x00000400 )
62 /* bitmap samr_DomainAccessMask */
63 #define DOMAIN_ACCESS_LOOKUP_INFO_1 ( 0x00000001 )
64 #define DOMAIN_ACCESS_SET_INFO_1 ( 0x00000002 )
65 #define DOMAIN_ACCESS_LOOKUP_INFO_2 ( 0x00000004 )
66 #define DOMAIN_ACCESS_SET_INFO_2 ( 0x00000008 )
67 #define DOMAIN_ACCESS_CREATE_USER ( 0x00000010 )
68 #define DOMAIN_ACCESS_CREATE_GROUP ( 0x00000020 )
69 #define DOMAIN_ACCESS_CREATE_ALIAS ( 0x00000040 )
70 #define DOMAIN_ACCESS_LOOKUP_ALIAS ( 0x00000080 )
71 #define DOMAIN_ACCESS_ENUM_ACCOUNTS ( 0x00000100 )
72 #define DOMAIN_ACCESS_OPEN_ACCOUNT ( 0x00000200 )
73 #define DOMAIN_ACCESS_SET_INFO_3 ( 0x00000400 )
77 /* bitmap samr_GroupAccessMask */
78 #define GROUP_ACCESS_LOOKUP_INFO ( 0x00000001 )
79 #define GROUP_ACCESS_SET_INFO ( 0x00000002 )
80 #define GROUP_ACCESS_ADD_MEMBER ( 0x00000004 )
81 #define GROUP_ACCESS_REMOVE_MEMBER ( 0x00000008 )
82 #define GROUP_ACCESS_GET_MEMBERS ( 0x00000010 )
86 /* bitmap samr_AliasAccessMask */
87 #define ALIAS_ACCESS_ADD_MEMBER ( 0x00000001 )
88 #define ALIAS_ACCESS_REMOVE_MEMBER ( 0x00000002 )
89 #define ALIAS_ACCESS_GET_MEMBERS ( 0x00000004 )
90 #define ALIAS_ACCESS_LOOKUP_INFO ( 0x00000008 )
91 #define ALIAS_ACCESS_SET_INFO ( 0x00000010 )
95 struct samr_SamEntry {
97 struct lsa_String name;
100 struct samr_SamArray {
102 struct samr_SamEntry *entries;/* [unique,size_is(count)] */
106 #ifndef USE_UINT_ENUMS
108 SAMR_ROLE_STANDALONE=0,
109 SAMR_ROLE_DOMAIN_MEMBER=1,
110 SAMR_ROLE_DOMAIN_BDC=2,
111 SAMR_ROLE_DOMAIN_PDC=3
114 { __donnot_use_enum_samr_Role=0x7FFFFFFF}
115 #define SAMR_ROLE_STANDALONE ( 0 )
116 #define SAMR_ROLE_DOMAIN_MEMBER ( 1 )
117 #define SAMR_ROLE_DOMAIN_BDC ( 2 )
118 #define SAMR_ROLE_DOMAIN_PDC ( 3 )
122 /* bitmap samr_PasswordProperties */
123 #define DOMAIN_PASSWORD_COMPLEX ( 0x00000001 )
124 #define DOMAIN_PASSWORD_NO_ANON_CHANGE ( 0x00000002 )
125 #define DOMAIN_PASSWORD_NO_CLEAR_CHANGE ( 0x00000004 )
126 #define DOMAIN_PASSWORD_LOCKOUT_ADMINS ( 0x00000008 )
127 #define DOMAIN_PASSWORD_STORE_CLEARTEXT ( 0x00000010 )
128 #define DOMAIN_REFUSE_PASSWORD_CHANGE ( 0x00000020 )
132 struct samr_DomInfo1 {
133 uint16_t min_password_length;
134 uint16_t password_history_length;
135 uint32_t password_properties;
136 int64_t max_password_age;
137 int64_t min_password_age;
140 struct samr_DomInfo2 {
141 NTTIME force_logoff_time;
142 struct lsa_String comment;
143 struct lsa_String domain_name;
144 struct lsa_String primary;
145 uint64_t sequence_num;
151 uint32_t num_aliases;
154 struct samr_DomInfo3 {
155 NTTIME force_logoff_time;
158 struct samr_DomInfo4 {
159 struct lsa_String comment;
162 struct samr_DomInfo5 {
163 struct lsa_String domain_name;
166 struct samr_DomInfo6 {
167 struct lsa_String primary;
170 struct samr_DomInfo7 {
174 struct samr_DomInfo8 {
175 uint64_t sequence_num;
176 NTTIME domain_create_time;
179 struct samr_DomInfo9 {
183 struct samr_DomInfo11 {
184 struct samr_DomInfo2 info2;
185 uint64_t lockout_duration;
186 uint64_t lockout_window;
187 uint16_t lockout_threshold;
190 struct samr_DomInfo12 {
191 uint64_t lockout_duration;
192 uint64_t lockout_window;
193 uint16_t lockout_threshold;
196 struct samr_DomInfo13 {
197 uint64_t sequence_num;
198 NTTIME domain_create_time;
203 union samr_DomainInfo {
204 struct samr_DomInfo1 info1;/* [case] */
205 struct samr_DomInfo2 info2;/* [case(2)] */
206 struct samr_DomInfo3 info3;/* [case(3)] */
207 struct samr_DomInfo4 info4;/* [case(4)] */
208 struct samr_DomInfo5 info5;/* [case(5)] */
209 struct samr_DomInfo6 info6;/* [case(6)] */
210 struct samr_DomInfo7 info7;/* [case(7)] */
211 struct samr_DomInfo8 info8;/* [case(8)] */
212 struct samr_DomInfo9 info9;/* [case(9)] */
213 struct samr_DomInfo11 info11;/* [case(11)] */
214 struct samr_DomInfo12 info12;/* [case(12)] */
215 struct samr_DomInfo13 info13;/* [case(13)] */
216 }/* [switch_type(uint16)] */;
219 uint32_t count;/* [range(0 1024)] */
220 uint32_t *ids;/* [unique,size_is(count)] */
223 /* bitmap samr_GroupAttrs */
224 #define SE_GROUP_MANDATORY ( 0x00000001 )
225 #define SE_GROUP_ENABLED_BY_DEFAULT ( 0x00000002 )
226 #define SE_GROUP_ENABLED ( 0x00000004 )
227 #define SE_GROUP_OWNER ( 0x00000008 )
228 #define SE_GROUP_USE_FOR_DENY_ONLY ( 0x00000010 )
229 #define SE_GROUP_RESOURCE ( 0x20000000 )
230 #define SE_GROUP_LOGON_ID ( 0xC0000000 )
234 struct samr_GroupInfoAll {
235 struct lsa_String name;
237 uint32_t num_members;
238 struct lsa_String description;
241 struct samr_GroupInfoAttributes {
245 struct samr_GroupInfoDescription {
246 struct lsa_String description;
249 enum samr_GroupInfoEnum
250 #ifndef USE_UINT_ENUMS
254 GROUPINFOATTRIBUTES=3,
255 GROUPINFODESCRIPTION=4,
259 { __donnot_use_enum_samr_GroupInfoEnum=0x7FFFFFFF}
260 #define GROUPINFOALL ( 1 )
261 #define GROUPINFONAME ( 2 )
262 #define GROUPINFOATTRIBUTES ( 3 )
263 #define GROUPINFODESCRIPTION ( 4 )
264 #define GROUPINFOALL2 ( 5 )
268 union samr_GroupInfo {
269 struct samr_GroupInfoAll all;/* [case(GROUPINFOALL)] */
270 struct lsa_String name;/* [case(GROUPINFONAME)] */
271 struct samr_GroupInfoAttributes attributes;/* [case(GROUPINFOATTRIBUTES)] */
272 struct lsa_String description;/* [case(GROUPINFODESCRIPTION)] */
273 struct samr_GroupInfoAll all2;/* [case(GROUPINFOALL2)] */
274 }/* [switch_type(samr_GroupInfoEnum)] */;
276 struct samr_RidTypeArray {
278 uint32_t *rids;/* [unique,size_is(count)] */
279 uint32_t *types;/* [unique,size_is(count)] */
282 struct samr_AliasInfoAll {
283 struct lsa_String name;
284 uint32_t num_members;
285 struct lsa_String description;
288 enum samr_AliasInfoEnum
289 #ifndef USE_UINT_ENUMS
293 ALIASINFODESCRIPTION=3
296 { __donnot_use_enum_samr_AliasInfoEnum=0x7FFFFFFF}
297 #define ALIASINFOALL ( 1 )
298 #define ALIASINFONAME ( 2 )
299 #define ALIASINFODESCRIPTION ( 3 )
303 union samr_AliasInfo {
304 struct samr_AliasInfoAll all;/* [case(ALIASINFOALL)] */
305 struct lsa_String name;/* [case(ALIASINFONAME)] */
306 struct lsa_String description;/* [case(ALIASINFODESCRIPTION)] */
307 }/* [switch_type(samr_AliasInfoEnum)] */;
309 struct samr_UserInfo1 {
310 struct lsa_String account_name;
311 struct lsa_String full_name;
312 uint32_t primary_gid;
313 struct lsa_String description;
314 struct lsa_String comment;
317 struct samr_UserInfo2 {
318 struct lsa_String comment;
319 struct lsa_String unknown;
320 uint16_t country_code;
324 struct samr_LogonHours {
325 uint16_t units_per_week;
326 uint8_t *bits;/* [unique,length_is(units_per_week/8),size_is(1260)] */
327 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
329 struct samr_UserInfo3 {
330 struct lsa_String account_name;
331 struct lsa_String full_name;
333 uint32_t primary_gid;
334 struct lsa_String home_directory;
335 struct lsa_String home_drive;
336 struct lsa_String logon_script;
337 struct lsa_String profile_path;
338 struct lsa_String workstations;
341 NTTIME last_password_change;
342 NTTIME allow_password_change;
343 NTTIME force_password_change;
344 struct samr_LogonHours logon_hours;
345 uint16_t bad_password_count;
346 uint16_t logon_count;
350 struct samr_UserInfo4 {
351 struct samr_LogonHours logon_hours;
354 struct samr_UserInfo5 {
355 struct lsa_String account_name;
356 struct lsa_String full_name;
358 uint32_t primary_gid;
359 struct lsa_String home_directory;
360 struct lsa_String home_drive;
361 struct lsa_String logon_script;
362 struct lsa_String profile_path;
363 struct lsa_String description;
364 struct lsa_String workstations;
367 struct samr_LogonHours logon_hours;
368 uint16_t bad_password_count;
369 uint16_t logon_count;
370 NTTIME last_password_change;
375 struct samr_UserInfo6 {
376 struct lsa_String account_name;
377 struct lsa_String full_name;
380 struct samr_UserInfo7 {
381 struct lsa_String account_name;
384 struct samr_UserInfo8 {
385 struct lsa_String full_name;
388 struct samr_UserInfo9 {
389 uint32_t primary_gid;
392 struct samr_UserInfo10 {
393 struct lsa_String home_directory;
394 struct lsa_String home_drive;
397 struct samr_UserInfo11 {
398 struct lsa_String logon_script;
401 struct samr_UserInfo12 {
402 struct lsa_String profile_path;
405 struct samr_UserInfo13 {
406 struct lsa_String description;
409 struct samr_UserInfo14 {
410 struct lsa_String workstations;
413 struct samr_UserInfo16 {
417 struct samr_UserInfo17 {
421 struct samr_UserInfo20 {
422 struct lsa_String parameters;
425 /* bitmap samr_FieldsPresent */
426 #define SAMR_FIELD_ACCOUNT_NAME ( 0x00000001 )
427 #define SAMR_FIELD_FULL_NAME ( 0x00000002 )
428 #define SAMR_FIELD_RID ( 0x00000004 )
429 #define SAMR_FIELD_PRIMARY_GID ( 0x00000008 )
430 #define SAMR_FIELD_DESCRIPTION ( 0x00000010 )
431 #define SAMR_FIELD_COMMENT ( 0x00000020 )
432 #define SAMR_FIELD_HOME_DIRECTORY ( 0x00000040 )
433 #define SAMR_FIELD_HOME_DRIVE ( 0x00000080 )
434 #define SAMR_FIELD_LOGON_SCRIPT ( 0x00000100 )
435 #define SAMR_FIELD_PROFILE_PATH ( 0x00000200 )
436 #define SAMR_FIELD_WORKSTATIONS ( 0x00000400 )
437 #define SAMR_FIELD_LAST_LOGON ( 0x00000800 )
438 #define SAMR_FIELD_LAST_LOGOFF ( 0x00001000 )
439 #define SAMR_FIELD_LOGON_HOURS ( 0x00002000 )
440 #define SAMR_FIELD_BAD_PWD_COUNT ( 0x00004000 )
441 #define SAMR_FIELD_NUM_LOGONS ( 0x00008000 )
442 #define SAMR_FIELD_ALLOW_PWD_CHANGE ( 0x00010000 )
443 #define SAMR_FIELD_FORCE_PWD_CHANGE ( 0x00020000 )
444 #define SAMR_FIELD_LAST_PWD_CHANGE ( 0x00040000 )
445 #define SAMR_FIELD_ACCT_EXPIRY ( 0x00080000 )
446 #define SAMR_FIELD_ACCT_FLAGS ( 0x00100000 )
447 #define SAMR_FIELD_PARAMETERS ( 0x00200000 )
448 #define SAMR_FIELD_COUNTRY_CODE ( 0x00400000 )
449 #define SAMR_FIELD_CODE_PAGE ( 0x00800000 )
450 #define SAMR_FIELD_PASSWORD ( 0x01000000 )
451 #define SAMR_FIELD_PASSWORD2 ( 0x02000000 )
452 #define SAMR_FIELD_PRIVATE_DATA ( 0x04000000 )
453 #define SAMR_FIELD_EXPIRED_FLAG ( 0x08000000 )
454 #define SAMR_FIELD_SEC_DESC ( 0x10000000 )
455 #define SAMR_FIELD_OWF_PWD ( 0x20000000 )
459 struct samr_UserInfo21 {
462 NTTIME last_password_change;
464 NTTIME allow_password_change;
465 NTTIME force_password_change;
466 struct lsa_String account_name;
467 struct lsa_String full_name;
468 struct lsa_String home_directory;
469 struct lsa_String home_drive;
470 struct lsa_String logon_script;
471 struct lsa_String profile_path;
472 struct lsa_String description;
473 struct lsa_String workstations;
474 struct lsa_String comment;
475 struct lsa_String parameters;
476 struct lsa_String unknown1;
477 struct lsa_String unknown2;
478 struct lsa_String unknown3;
480 uint8_t *buffer;/* [unique,size_is(buf_count)] */
482 uint32_t primary_gid;
484 uint32_t fields_present;
485 struct samr_LogonHours logon_hours;
486 uint16_t bad_password_count;
487 uint16_t logon_count;
488 uint16_t country_code;
490 uint8_t nt_password_set;
491 uint8_t lm_password_set;
492 uint8_t password_expired;
496 struct samr_CryptPassword {
498 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
500 struct samr_UserInfo23 {
501 struct samr_UserInfo21 info;
502 struct samr_CryptPassword password;
505 struct samr_UserInfo24 {
506 struct samr_CryptPassword password;
510 struct samr_CryptPasswordEx {
512 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
514 struct samr_UserInfo25 {
515 struct samr_UserInfo21 info;
516 struct samr_CryptPasswordEx password;
519 struct samr_UserInfo26 {
520 struct samr_CryptPasswordEx password;
524 union samr_UserInfo {
525 struct samr_UserInfo1 info1;/* [case] */
526 struct samr_UserInfo2 info2;/* [case(2)] */
527 struct samr_UserInfo3 info3;/* [case(3)] */
528 struct samr_UserInfo4 info4;/* [case(4)] */
529 struct samr_UserInfo5 info5;/* [case(5)] */
530 struct samr_UserInfo6 info6;/* [case(6)] */
531 struct samr_UserInfo7 info7;/* [case(7)] */
532 struct samr_UserInfo8 info8;/* [case(8)] */
533 struct samr_UserInfo9 info9;/* [case(9)] */
534 struct samr_UserInfo10 info10;/* [case(10)] */
535 struct samr_UserInfo11 info11;/* [case(11)] */
536 struct samr_UserInfo12 info12;/* [case(12)] */
537 struct samr_UserInfo13 info13;/* [case(13)] */
538 struct samr_UserInfo14 info14;/* [case(14)] */
539 struct samr_UserInfo16 info16;/* [case(16)] */
540 struct samr_UserInfo17 info17;/* [case(17)] */
541 struct samr_UserInfo20 info20;/* [case(20)] */
542 struct samr_UserInfo21 info21;/* [case(21)] */
543 struct samr_UserInfo23 info23;/* [case(23)] */
544 struct samr_UserInfo24 info24;/* [case(24)] */
545 struct samr_UserInfo25 info25;/* [case(25)] */
546 struct samr_UserInfo26 info26;/* [case(26)] */
547 }/* [switch_type(uint16)] */;
549 struct samr_Password {
551 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
553 struct samr_RidWithAttribute {
558 struct samr_RidWithAttributeArray {
560 struct samr_RidWithAttribute *rids;/* [unique,size_is(count)] */
563 struct samr_DispEntryGeneral {
567 struct lsa_String account_name;
568 struct lsa_String description;
569 struct lsa_String full_name;
572 struct samr_DispInfoGeneral {
574 struct samr_DispEntryGeneral *entries;/* [unique,size_is(count)] */
577 struct samr_DispEntryFull {
581 struct lsa_String account_name;
582 struct lsa_String description;
585 struct samr_DispInfoFull {
587 struct samr_DispEntryFull *entries;/* [unique,size_is(count)] */
590 struct samr_DispEntryFullGroup {
594 struct lsa_String account_name;
595 struct lsa_String description;
598 struct samr_DispInfoFullGroups {
600 struct samr_DispEntryFullGroup *entries;/* [unique,size_is(count)] */
603 struct samr_DispEntryAscii {
605 struct lsa_AsciiString account_name;
608 struct samr_DispInfoAscii {
610 struct samr_DispEntryAscii *entries;/* [unique,size_is(count)] */
613 union samr_DispInfo {
614 struct samr_DispInfoGeneral info1;/* [case] */
615 struct samr_DispInfoFull info2;/* [case(2)] */
616 struct samr_DispInfoFullGroups info3;/* [case(3)] */
617 struct samr_DispInfoAscii info4;/* [case(4)] */
618 struct samr_DispInfoAscii info5;/* [case(5)] */
619 }/* [switch_type(uint16)] */;
622 uint16_t min_password_length;
623 uint32_t password_properties;
626 enum samr_RejectReason;
628 struct samr_ChangeReject {
629 enum samr_RejectReason reason;
634 struct samr_ConnectInfo1 {
639 union samr_ConnectInfo {
640 struct samr_ConnectInfo1 info1;/* [case] */
643 /* bitmap samr_ValidateFieldsPresent */
644 #define SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET ( 0x00000001 )
645 #define SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME ( 0x00000002 )
646 #define SAMR_VALIDATE_FIELD_LOCKOUT_TIME ( 0x00000004 )
647 #define SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT ( 0x00000008 )
648 #define SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH ( 0x00000010 )
649 #define SAMR_VALIDATE_FIELD_PASSWORD_HISTORY ( 0x00000020 )
653 enum samr_ValidatePasswordLevel
654 #ifndef USE_UINT_ENUMS
656 NetValidateAuthentication=1,
657 NetValidatePasswordChange=2,
658 NetValidatePasswordReset=3
661 { __donnot_use_enum_samr_ValidatePasswordLevel=0x7FFFFFFF}
662 #define NetValidateAuthentication ( 1 )
663 #define NetValidatePasswordChange ( 2 )
664 #define NetValidatePasswordReset ( 3 )
668 enum samr_ValidationStatus
669 #ifndef USE_UINT_ENUMS
671 SAMR_VALIDATION_STATUS_SUCCESS=0,
672 SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE=1,
673 SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT=2,
674 SAMR_VALIDATION_STATUS_BAD_PASSWORD=4,
675 SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT=5,
676 SAMR_VALIDATION_STATUS_PWD_TOO_SHORT=6,
677 SAMR_VALIDATION_STATUS_PWD_TOO_LONG=7,
678 SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH=8,
679 SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT=9
682 { __donnot_use_enum_samr_ValidationStatus=0x7FFFFFFF}
683 #define SAMR_VALIDATION_STATUS_SUCCESS ( 0 )
684 #define SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE ( 1 )
685 #define SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT ( 2 )
686 #define SAMR_VALIDATION_STATUS_BAD_PASSWORD ( 4 )
687 #define SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT ( 5 )
688 #define SAMR_VALIDATION_STATUS_PWD_TOO_SHORT ( 6 )
689 #define SAMR_VALIDATION_STATUS_PWD_TOO_LONG ( 7 )
690 #define SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH ( 8 )
691 #define SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT ( 9 )
695 struct samr_ValidationBlob {
697 uint8_t *data;/* [unique,size_is(length)] */
700 struct samr_ValidatePasswordInfo {
701 uint32_t fields_present;
702 NTTIME last_password_change;
703 NTTIME bad_password_time;
705 uint32_t bad_pwd_count;
706 uint32_t pwd_history_len;
707 struct samr_ValidationBlob *pwd_history;/* [unique,size_is(pwd_history_len)] */
710 struct samr_ValidatePasswordRepCtr {
711 struct samr_ValidatePasswordInfo info;
712 enum samr_ValidationStatus status;
715 union samr_ValidatePasswordRep {
716 struct samr_ValidatePasswordRepCtr ctr1;/* [case] */
717 struct samr_ValidatePasswordRepCtr ctr2;/* [case(2)] */
718 struct samr_ValidatePasswordRepCtr ctr3;/* [case(3)] */
719 }/* [switch_type(uint16)] */;
721 struct samr_ValidatePasswordReq3 {
722 struct samr_ValidatePasswordInfo info;
723 struct lsa_StringLarge password;
724 struct lsa_StringLarge account;
725 struct samr_ValidationBlob hash;
726 uint8_t pwd_must_change_at_next_logon;
727 uint8_t clear_lockout;
730 struct samr_ValidatePasswordReq2 {
731 struct samr_ValidatePasswordInfo info;
732 struct lsa_StringLarge password;
733 struct lsa_StringLarge account;
734 struct samr_ValidationBlob hash;
735 uint8_t password_matched;
738 struct samr_ValidatePasswordReq1 {
739 struct samr_ValidatePasswordInfo info;
740 uint8_t password_matched;
743 union samr_ValidatePasswordReq {
744 struct samr_ValidatePasswordReq1 req1;/* [case] */
745 struct samr_ValidatePasswordReq2 req2;/* [case(2)] */
746 struct samr_ValidatePasswordReq3 req3;/* [case(3)] */
747 }/* [switch_type(uint16)] */;
750 struct samr_Connect {
752 uint16_t *system_name;/* [unique] */
753 uint32_t access_mask;
757 struct policy_handle *connect_handle;/* [ref] */
766 struct policy_handle *handle;/* [ref] */
770 struct policy_handle *handle;/* [ref] */
777 struct samr_SetSecurity {
779 struct policy_handle *handle;/* [ref] */
781 struct sec_desc_buf *sdbuf;/* [ref] */
791 struct samr_QuerySecurity {
793 struct policy_handle *handle;/* [ref] */
798 struct sec_desc_buf *sdbuf;/* [ref] */
805 struct samr_Shutdown {
807 struct policy_handle *connect_handle;/* [ref] */
817 struct samr_LookupDomain {
819 struct policy_handle *connect_handle;/* [ref] */
820 struct lsa_String *domain_name;/* [ref] */
824 struct dom_sid2 *sid;/* [ref] */
831 struct samr_EnumDomains {
833 struct policy_handle *connect_handle;/* [ref] */
835 uint32_t *resume_handle;/* [ref] */
839 struct samr_SamArray *sam;/* [ref] */
840 uint32_t *num_entries;/* [ref] */
841 uint32_t *resume_handle;/* [ref] */
848 struct samr_OpenDomain {
850 struct policy_handle *connect_handle;/* [ref] */
851 uint32_t access_mask;
852 struct dom_sid2 *sid;/* [ref] */
856 struct policy_handle *domain_handle;/* [ref] */
863 struct samr_QueryDomainInfo {
865 struct policy_handle *domain_handle;/* [ref] */
870 union samr_DomainInfo *info;/* [ref,switch_is(level)] */
877 struct samr_SetDomainInfo {
879 struct policy_handle *domain_handle;/* [ref] */
881 union samr_DomainInfo *info;/* [ref,switch_is(level)] */
891 struct samr_CreateDomainGroup {
893 struct policy_handle *domain_handle;/* [ref] */
894 struct lsa_String *name;/* [ref] */
895 uint32_t access_mask;
899 struct policy_handle *group_handle;/* [ref] */
900 uint32_t *rid;/* [ref] */
907 struct samr_EnumDomainGroups {
909 struct policy_handle *domain_handle;/* [ref] */
911 uint32_t *resume_handle;/* [ref] */
915 struct samr_SamArray *sam;/* [ref] */
916 uint32_t *num_entries;/* [ref] */
917 uint32_t *resume_handle;/* [ref] */
924 struct samr_CreateUser {
926 struct policy_handle *domain_handle;/* [ref] */
927 struct lsa_String *account_name;/* [ref] */
928 uint32_t access_mask;
932 struct policy_handle *user_handle;/* [ref] */
933 uint32_t *rid;/* [ref] */
940 struct samr_EnumDomainUsers {
942 struct policy_handle *domain_handle;/* [ref] */
945 uint32_t *resume_handle;/* [ref] */
949 struct samr_SamArray *sam;/* [unique] */
950 uint32_t *num_entries;/* [ref] */
951 uint32_t *resume_handle;/* [ref] */
958 struct samr_CreateDomAlias {
960 struct policy_handle *domain_handle;/* [ref] */
961 struct lsa_String *alias_name;/* [ref] */
962 uint32_t access_mask;
966 struct policy_handle *alias_handle;/* [ref] */
967 uint32_t *rid;/* [ref] */
974 struct samr_EnumDomainAliases {
976 struct policy_handle *domain_handle;/* [ref] */
978 uint32_t *resume_handle;/* [ref] */
982 struct samr_SamArray *sam;/* [ref] */
983 uint32_t *num_entries;/* [ref] */
984 uint32_t *resume_handle;/* [ref] */
991 struct samr_GetAliasMembership {
993 struct policy_handle *domain_handle;/* [ref] */
994 struct lsa_SidArray *sids;/* [ref] */
998 struct samr_Ids *rids;/* [ref] */
1005 struct samr_LookupNames {
1007 struct policy_handle *domain_handle;/* [ref] */
1008 uint32_t num_names;/* [range(0 1000)] */
1009 struct lsa_String *names;/* [length_is(num_names),size_is(1000)] */
1013 struct samr_Ids *rids;/* [ref] */
1014 struct samr_Ids *types;/* [ref] */
1021 struct samr_LookupRids {
1023 struct policy_handle *domain_handle;/* [ref] */
1024 uint32_t num_rids;/* [range(0 1000)] */
1025 uint32_t *rids;/* [length_is(num_rids),size_is(1000)] */
1029 struct lsa_Strings *names;/* [ref] */
1030 struct samr_Ids *types;/* [ref] */
1037 struct samr_OpenGroup {
1039 struct policy_handle *domain_handle;/* [ref] */
1040 uint32_t access_mask;
1045 struct policy_handle *group_handle;/* [ref] */
1052 struct samr_QueryGroupInfo {
1054 struct policy_handle *group_handle;/* [ref] */
1055 enum samr_GroupInfoEnum level;
1059 union samr_GroupInfo *info;/* [ref,switch_is(level)] */
1066 struct samr_SetGroupInfo {
1068 struct policy_handle *group_handle;/* [ref] */
1069 enum samr_GroupInfoEnum level;
1070 union samr_GroupInfo *info;/* [ref,switch_is(level)] */
1080 struct samr_AddGroupMember {
1082 struct policy_handle *group_handle;/* [ref] */
1094 struct samr_DeleteDomainGroup {
1096 struct policy_handle *group_handle;/* [ref] */
1100 struct policy_handle *group_handle;/* [ref] */
1107 struct samr_DeleteGroupMember {
1109 struct policy_handle *group_handle;/* [ref] */
1120 struct samr_QueryGroupMember {
1122 struct policy_handle *group_handle;/* [ref] */
1126 struct samr_RidTypeArray *rids;/* [ref] */
1133 struct samr_SetMemberAttributesOfGroup {
1135 struct policy_handle *group_handle;/* [ref] */
1147 struct samr_OpenAlias {
1149 struct policy_handle *domain_handle;/* [ref] */
1150 uint32_t access_mask;
1155 struct policy_handle *alias_handle;/* [ref] */
1162 struct samr_QueryAliasInfo {
1164 struct policy_handle *alias_handle;/* [ref] */
1165 enum samr_AliasInfoEnum level;
1169 union samr_AliasInfo *info;/* [ref,switch_is(level)] */
1176 struct samr_SetAliasInfo {
1178 struct policy_handle *alias_handle;/* [ref] */
1179 enum samr_AliasInfoEnum level;
1180 union samr_AliasInfo *info;/* [ref,switch_is(level)] */
1190 struct samr_DeleteDomAlias {
1192 struct policy_handle *alias_handle;/* [ref] */
1196 struct policy_handle *alias_handle;/* [ref] */
1203 struct samr_AddAliasMember {
1205 struct policy_handle *alias_handle;/* [ref] */
1206 struct dom_sid2 *sid;/* [ref] */
1216 struct samr_DeleteAliasMember {
1218 struct policy_handle *alias_handle;/* [ref] */
1219 struct dom_sid2 *sid;/* [ref] */
1229 struct samr_GetMembersInAlias {
1231 struct policy_handle *alias_handle;/* [ref] */
1235 struct lsa_SidArray *sids;/* [ref] */
1242 struct samr_OpenUser {
1244 struct policy_handle *domain_handle;/* [ref] */
1245 uint32_t access_mask;
1250 struct policy_handle *user_handle;/* [ref] */
1257 struct samr_DeleteUser {
1259 struct policy_handle *user_handle;/* [ref] */
1263 struct policy_handle *user_handle;/* [ref] */
1270 struct samr_QueryUserInfo {
1272 struct policy_handle *user_handle;/* [ref] */
1277 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1284 struct samr_SetUserInfo {
1286 struct policy_handle *user_handle;/* [ref] */
1288 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1298 struct samr_ChangePasswordUser {
1300 struct policy_handle *user_handle;/* [ref] */
1302 struct samr_Password *old_lm_crypted;/* [unique] */
1303 struct samr_Password *new_lm_crypted;/* [unique] */
1305 struct samr_Password *old_nt_crypted;/* [unique] */
1306 struct samr_Password *new_nt_crypted;/* [unique] */
1307 uint8_t cross1_present;
1308 struct samr_Password *nt_cross;/* [unique] */
1309 uint8_t cross2_present;
1310 struct samr_Password *lm_cross;/* [unique] */
1320 struct samr_GetGroupsForUser {
1322 struct policy_handle *user_handle;/* [ref] */
1326 struct samr_RidWithAttributeArray *rids;/* [ref] */
1333 struct samr_QueryDisplayInfo {
1335 struct policy_handle *domain_handle;/* [ref] */
1338 uint32_t max_entries;
1343 uint32_t *total_size;/* [ref] */
1344 uint32_t *returned_size;/* [ref] */
1345 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1352 struct samr_GetDisplayEnumerationIndex {
1354 struct policy_handle *domain_handle;/* [ref] */
1356 struct lsa_String name;
1360 uint32_t *idx;/* [ref] */
1367 struct samr_TestPrivateFunctionsDomain {
1369 struct policy_handle *domain_handle;/* [ref] */
1379 struct samr_TestPrivateFunctionsUser {
1381 struct policy_handle *user_handle;/* [ref] */
1391 struct samr_GetUserPwInfo {
1393 struct policy_handle *user_handle;/* [ref] */
1397 struct samr_PwInfo *info;/* [ref] */
1404 struct samr_RemoveMemberFromForeignDomain {
1406 struct policy_handle *domain_handle;/* [ref] */
1407 struct dom_sid2 *sid;/* [ref] */
1417 struct samr_QueryDomainInfo2 {
1419 struct policy_handle *domain_handle;/* [ref] */
1424 union samr_DomainInfo *info;/* [ref,switch_is(level)] */
1431 struct samr_QueryUserInfo2 {
1433 struct policy_handle *user_handle;/* [ref] */
1438 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1445 struct samr_QueryDisplayInfo2 {
1447 struct policy_handle *domain_handle;/* [ref] */
1450 uint32_t max_entries;
1455 uint32_t *total_size;/* [ref] */
1456 uint32_t *returned_size;/* [ref] */
1457 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1464 struct samr_GetDisplayEnumerationIndex2 {
1466 struct policy_handle *domain_handle;/* [ref] */
1468 struct lsa_String name;
1472 uint32_t *idx;/* [ref] */
1479 struct samr_CreateUser2 {
1481 struct policy_handle *domain_handle;/* [ref] */
1482 struct lsa_String *account_name;/* [ref] */
1483 uint32_t acct_flags;
1484 uint32_t access_mask;
1488 struct policy_handle *user_handle;/* [ref] */
1489 uint32_t *access_granted;/* [ref] */
1490 uint32_t *rid;/* [ref] */
1497 struct samr_QueryDisplayInfo3 {
1499 struct policy_handle *domain_handle;/* [ref] */
1502 uint32_t max_entries;
1507 uint32_t *total_size;/* [ref] */
1508 uint32_t *returned_size;/* [ref] */
1509 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1516 struct samr_AddMultipleMembersToAlias {
1518 struct policy_handle *alias_handle;/* [ref] */
1519 struct lsa_SidArray *sids;/* [ref] */
1529 struct samr_RemoveMultipleMembersFromAlias {
1531 struct policy_handle *alias_handle;/* [ref] */
1532 struct lsa_SidArray *sids;/* [ref] */
1542 struct samr_OemChangePasswordUser2 {
1544 struct lsa_AsciiString *server;/* [unique] */
1545 struct lsa_AsciiString *account;/* [ref] */
1546 struct samr_CryptPassword *password;/* [unique] */
1547 struct samr_Password *hash;/* [unique] */
1557 struct samr_ChangePasswordUser2 {
1559 struct lsa_String *server;/* [unique] */
1560 struct lsa_String *account;/* [ref] */
1561 struct samr_CryptPassword *nt_password;/* [unique] */
1562 struct samr_Password *nt_verifier;/* [unique] */
1564 struct samr_CryptPassword *lm_password;/* [unique] */
1565 struct samr_Password *lm_verifier;/* [unique] */
1575 struct samr_GetDomPwInfo {
1577 struct lsa_String *domain_name;/* [unique] */
1581 struct samr_PwInfo *info;/* [ref] */
1588 struct samr_Connect2 {
1590 const char *system_name;/* [unique,charset(UTF16)] */
1591 uint32_t access_mask;
1595 struct policy_handle *connect_handle;/* [ref] */
1602 struct samr_SetUserInfo2 {
1604 struct policy_handle *user_handle;/* [ref] */
1606 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1616 struct samr_SetBootKeyInformation {
1618 struct policy_handle *connect_handle;/* [ref] */
1631 struct samr_GetBootKeyInformation {
1633 struct policy_handle *domain_handle;/* [ref] */
1637 uint32_t *unknown;/* [ref] */
1644 struct samr_Connect3 {
1646 const char *system_name;/* [unique,charset(UTF16)] */
1648 uint32_t access_mask;
1652 struct policy_handle *connect_handle;/* [ref] */
1659 struct samr_Connect4 {
1661 const char *system_name;/* [unique,charset(UTF16)] */
1663 uint32_t access_mask;
1667 struct policy_handle *connect_handle;/* [ref] */
1674 struct samr_ChangePasswordUser3 {
1676 struct lsa_String *server;/* [unique] */
1677 struct lsa_String *account;/* [ref] */
1678 struct samr_CryptPassword *nt_password;/* [unique] */
1679 struct samr_Password *nt_verifier;/* [unique] */
1681 struct samr_CryptPassword *lm_password;/* [unique] */
1682 struct samr_Password *lm_verifier;/* [unique] */
1683 struct samr_CryptPassword *password3;/* [unique] */
1687 struct samr_DomInfo1 *dominfo;/* [ref] */
1688 struct samr_ChangeReject *reject;/* [ref] */
1695 struct samr_Connect5 {
1697 const char *system_name;/* [unique,charset(UTF16)] */
1698 uint32_t access_mask;
1700 union samr_ConnectInfo *info_in;/* [ref,switch_is(level_in)] */
1704 uint32_t *level_out;/* [ref] */
1705 union samr_ConnectInfo *info_out;/* [ref,switch_is(*level_out)] */
1706 struct policy_handle *connect_handle;/* [ref] */
1713 struct samr_RidToSid {
1715 struct policy_handle *domain_handle;/* [ref] */
1720 struct dom_sid2 *sid;/* [ref] */
1727 struct samr_SetDsrmPassword {
1729 struct lsa_String *name;/* [unique] */
1731 struct samr_Password *hash;/* [unique] */
1741 struct samr_ValidatePassword {
1743 enum samr_ValidatePasswordLevel level;
1744 union samr_ValidatePasswordReq req;/* [switch_is(level)] */
1748 union samr_ValidatePasswordRep *rep;/* [ref,switch_is(level)] */
1754 #endif /* _HEADER_samr */