1 /* header auto-generated by pidl */
5 #include "libcli/util/ntstatus.h"
7 #include "librpc/gen_ndr/misc.h"
8 #include "librpc/gen_ndr/lsa.h"
9 #include "librpc/gen_ndr/security.h"
13 #define SAMR_ACCESS_ALL_ACCESS ( 0x0000003F )
14 #define GENERIC_RIGHTS_SAM_ALL_ACCESS ( (STANDARD_RIGHTS_REQUIRED_ACCESS|SAMR_ACCESS_ALL_ACCESS) )
15 #define GENERIC_RIGHTS_SAM_READ ( (STANDARD_RIGHTS_READ_ACCESS|SAMR_ACCESS_ENUM_DOMAINS) )
16 #define GENERIC_RIGHTS_SAM_WRITE ( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_ACCESS_CREATE_DOMAIN|SAMR_ACCESS_INITIALIZE_SERVER|SAMR_ACCESS_SHUTDOWN_SERVER) )
17 #define GENERIC_RIGHTS_SAM_EXECUTE ( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_ACCESS_LOOKUP_DOMAIN|SAMR_ACCESS_CONNECT_TO_SERVER) )
18 #define SAMR_USER_ACCESS_ALL_ACCESS ( 0x000007FF )
19 #define GENERIC_RIGHTS_USER_ALL_ACCESS ( (STANDARD_RIGHTS_REQUIRED_ACCESS|SAMR_USER_ACCESS_ALL_ACCESS) )
20 #define GENERIC_RIGHTS_USER_READ ( (STANDARD_RIGHTS_READ_ACCESS|SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP|SAMR_USER_ACCESS_GET_GROUPS|SAMR_USER_ACCESS_GET_ATTRIBUTES|SAMR_USER_ACCESS_GET_LOGONINFO|SAMR_USER_ACCESS_GET_LOCALE) )
21 #define GENERIC_RIGHTS_USER_WRITE ( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_USER_ACCESS_CHANGE_PASSWORD|SAMR_USER_ACCESS_SET_LOC_COM|SAMR_USER_ACCESS_SET_ATTRIBUTES|SAMR_USER_ACCESS_SET_PASSWORD|SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP) )
22 #define GENERIC_RIGHTS_USER_EXECUTE ( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_USER_ACCESS_CHANGE_PASSWORD|SAMR_USER_ACCESS_GET_NAME_ETC) )
23 #define SAMR_DOMAIN_ACCESS_ALL_ACCESS ( 0x000007FF )
24 #define GENERIC_RIGHTS_DOMAIN_ALL_ACCESS ( (STANDARD_RIGHTS_REQUIRED_ACCESS|SAMR_DOMAIN_ACCESS_ALL_ACCESS) )
25 #define GENERIC_RIGHTS_DOMAIN_READ ( (STANDARD_RIGHTS_READ_ACCESS|SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS|SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2) )
26 #define GENERIC_RIGHTS_DOMAIN_WRITE ( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_DOMAIN_ACCESS_SET_INFO_3|SAMR_DOMAIN_ACCESS_CREATE_ALIAS|SAMR_DOMAIN_ACCESS_CREATE_GROUP|SAMR_DOMAIN_ACCESS_CREATE_USER|SAMR_DOMAIN_ACCESS_SET_INFO_2|SAMR_DOMAIN_ACCESS_SET_INFO_1) )
27 #define GENERIC_RIGHTS_DOMAIN_EXECUTE ( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT|SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS|SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1) )
28 #define SAMR_GROUP_ACCESS_ALL_ACCESS ( 0x0000001F )
29 #define GENERIC_RIGHTS_GROUP_ALL_ACCESS ( (STANDARD_RIGHTS_REQUIRED_ACCESS|SAMR_GROUP_ACCESS_ALL_ACCESS) )
30 #define GENERIC_RIGHTS_GROUP_READ ( (STANDARD_RIGHTS_READ_ACCESS|SAMR_GROUP_ACCESS_GET_MEMBERS) )
31 #define GENERIC_RIGHTS_GROUP_WRITE ( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_GROUP_ACCESS_REMOVE_MEMBER|SAMR_GROUP_ACCESS_ADD_MEMBER|SAMR_GROUP_ACCESS_SET_INFO) )
32 #define GENERIC_RIGHTS_GROUP_EXECUTE ( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_GROUP_ACCESS_LOOKUP_INFO) )
33 #define SAMR_ALIAS_ACCESS_ALL_ACCESS ( 0x0000001F )
34 #define GENERIC_RIGHTS_ALIAS_ALL_ACCESS ( (STANDARD_RIGHTS_REQUIRED_ACCESS|SAMR_ALIAS_ACCESS_ALL_ACCESS) )
35 #define GENERIC_RIGHTS_ALIAS_READ ( (STANDARD_RIGHTS_READ_ACCESS|SAMR_ALIAS_ACCESS_GET_MEMBERS) )
36 #define GENERIC_RIGHTS_ALIAS_WRITE ( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_ALIAS_ACCESS_REMOVE_MEMBER|SAMR_ALIAS_ACCESS_ADD_MEMBER|SAMR_ALIAS_ACCESS_SET_INFO) )
37 #define GENERIC_RIGHTS_ALIAS_EXECUTE ( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_ALIAS_ACCESS_LOOKUP_INFO) )
38 #define SAMR_ENUM_USERS_MULTIPLIER ( 54 )
39 #define PASS_MUST_CHANGE_AT_NEXT_LOGON ( 0x01 )
40 #define PASS_DONT_CHANGE_AT_NEXT_LOGON ( 0x00 )
41 enum netr_SamDatabaseID
42 #ifndef USE_UINT_ENUMS
44 SAM_DATABASE_DOMAIN
=0,
45 SAM_DATABASE_BUILTIN
=1,
49 { __donnot_use_enum_netr_SamDatabaseID
=0x7FFFFFFF}
50 #define SAM_DATABASE_DOMAIN ( 0 )
51 #define SAM_DATABASE_BUILTIN ( 1 )
52 #define SAM_DATABASE_PRIVS ( 2 )
56 enum samr_RejectReason
57 #ifndef USE_UINT_ENUMS
60 SAMR_REJECT_TOO_SHORT
=1,
61 SAMR_REJECT_IN_HISTORY
=2,
62 SAMR_REJECT_COMPLEXITY
=5
65 { __donnot_use_enum_samr_RejectReason
=0x7FFFFFFF}
66 #define SAMR_REJECT_OTHER ( 0 )
67 #define SAMR_REJECT_TOO_SHORT ( 1 )
68 #define SAMR_REJECT_IN_HISTORY ( 2 )
69 #define SAMR_REJECT_COMPLEXITY ( 5 )
73 /* bitmap samr_AcctFlags */
74 #define ACB_DISABLED ( 0x00000001 )
75 #define ACB_HOMDIRREQ ( 0x00000002 )
76 #define ACB_PWNOTREQ ( 0x00000004 )
77 #define ACB_TEMPDUP ( 0x00000008 )
78 #define ACB_NORMAL ( 0x00000010 )
79 #define ACB_MNS ( 0x00000020 )
80 #define ACB_DOMTRUST ( 0x00000040 )
81 #define ACB_WSTRUST ( 0x00000080 )
82 #define ACB_SVRTRUST ( 0x00000100 )
83 #define ACB_PWNOEXP ( 0x00000200 )
84 #define ACB_AUTOLOCK ( 0x00000400 )
85 #define ACB_ENC_TXT_PWD_ALLOWED ( 0x00000800 )
86 #define ACB_SMARTCARD_REQUIRED ( 0x00001000 )
87 #define ACB_TRUSTED_FOR_DELEGATION ( 0x00002000 )
88 #define ACB_NOT_DELEGATED ( 0x00004000 )
89 #define ACB_USE_DES_KEY_ONLY ( 0x00008000 )
90 #define ACB_DONT_REQUIRE_PREAUTH ( 0x00010000 )
91 #define ACB_PW_EXPIRED ( 0x00020000 )
92 #define ACB_NO_AUTH_DATA_REQD ( 0x00080000 )
94 /* bitmap samr_ConnectAccessMask */
95 #define SAMR_ACCESS_CONNECT_TO_SERVER ( 0x00000001 )
96 #define SAMR_ACCESS_SHUTDOWN_SERVER ( 0x00000002 )
97 #define SAMR_ACCESS_INITIALIZE_SERVER ( 0x00000004 )
98 #define SAMR_ACCESS_CREATE_DOMAIN ( 0x00000008 )
99 #define SAMR_ACCESS_ENUM_DOMAINS ( 0x00000010 )
100 #define SAMR_ACCESS_LOOKUP_DOMAIN ( 0x00000020 )
102 /* bitmap samr_UserAccessMask */
103 #define SAMR_USER_ACCESS_GET_NAME_ETC ( 0x00000001 )
104 #define SAMR_USER_ACCESS_GET_LOCALE ( 0x00000002 )
105 #define SAMR_USER_ACCESS_SET_LOC_COM ( 0x00000004 )
106 #define SAMR_USER_ACCESS_GET_LOGONINFO ( 0x00000008 )
107 #define SAMR_USER_ACCESS_GET_ATTRIBUTES ( 0x00000010 )
108 #define SAMR_USER_ACCESS_SET_ATTRIBUTES ( 0x00000020 )
109 #define SAMR_USER_ACCESS_CHANGE_PASSWORD ( 0x00000040 )
110 #define SAMR_USER_ACCESS_SET_PASSWORD ( 0x00000080 )
111 #define SAMR_USER_ACCESS_GET_GROUPS ( 0x00000100 )
112 #define SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP ( 0x00000200 )
113 #define SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP ( 0x00000400 )
115 /* bitmap samr_DomainAccessMask */
116 #define SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 ( 0x00000001 )
117 #define SAMR_DOMAIN_ACCESS_SET_INFO_1 ( 0x00000002 )
118 #define SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 ( 0x00000004 )
119 #define SAMR_DOMAIN_ACCESS_SET_INFO_2 ( 0x00000008 )
120 #define SAMR_DOMAIN_ACCESS_CREATE_USER ( 0x00000010 )
121 #define SAMR_DOMAIN_ACCESS_CREATE_GROUP ( 0x00000020 )
122 #define SAMR_DOMAIN_ACCESS_CREATE_ALIAS ( 0x00000040 )
123 #define SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS ( 0x00000080 )
124 #define SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS ( 0x00000100 )
125 #define SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT ( 0x00000200 )
126 #define SAMR_DOMAIN_ACCESS_SET_INFO_3 ( 0x00000400 )
128 /* bitmap samr_GroupAccessMask */
129 #define SAMR_GROUP_ACCESS_LOOKUP_INFO ( 0x00000001 )
130 #define SAMR_GROUP_ACCESS_SET_INFO ( 0x00000002 )
131 #define SAMR_GROUP_ACCESS_ADD_MEMBER ( 0x00000004 )
132 #define SAMR_GROUP_ACCESS_REMOVE_MEMBER ( 0x00000008 )
133 #define SAMR_GROUP_ACCESS_GET_MEMBERS ( 0x00000010 )
135 /* bitmap samr_AliasAccessMask */
136 #define SAMR_ALIAS_ACCESS_ADD_MEMBER ( 0x00000001 )
137 #define SAMR_ALIAS_ACCESS_REMOVE_MEMBER ( 0x00000002 )
138 #define SAMR_ALIAS_ACCESS_GET_MEMBERS ( 0x00000004 )
139 #define SAMR_ALIAS_ACCESS_LOOKUP_INFO ( 0x00000008 )
140 #define SAMR_ALIAS_ACCESS_SET_INFO ( 0x00000010 )
142 struct samr_SamEntry
{
144 struct lsa_String name
;
147 struct samr_SamArray
{
149 struct samr_SamEntry
*entries
;/* [unique,size_is(count)] */
152 enum samr_DomainInfoClass
153 #ifndef USE_UINT_ENUMS
155 DomainPasswordInformation
=1,
156 DomainGeneralInformation
=2,
157 DomainLogoffInformation
=3,
158 DomainOemInformation
=4,
159 DomainNameInformation
=5,
160 DomainReplicationInformation
=6,
161 DomainServerRoleInformation
=7,
162 DomainModifiedInformation
=8,
163 DomainStateInformation
=9,
164 DomainUasInformation
=10,
165 DomainGeneralInformation2
=11,
166 DomainLockoutInformation
=12,
167 DomainModifiedInformation2
=13
170 { __donnot_use_enum_samr_DomainInfoClass
=0x7FFFFFFF}
171 #define DomainPasswordInformation ( 1 )
172 #define DomainGeneralInformation ( 2 )
173 #define DomainLogoffInformation ( 3 )
174 #define DomainOemInformation ( 4 )
175 #define DomainNameInformation ( 5 )
176 #define DomainReplicationInformation ( 6 )
177 #define DomainServerRoleInformation ( 7 )
178 #define DomainModifiedInformation ( 8 )
179 #define DomainStateInformation ( 9 )
180 #define DomainUasInformation ( 10 )
181 #define DomainGeneralInformation2 ( 11 )
182 #define DomainLockoutInformation ( 12 )
183 #define DomainModifiedInformation2 ( 13 )
188 #ifndef USE_UINT_ENUMS
190 SAMR_ROLE_STANDALONE
=0,
191 SAMR_ROLE_DOMAIN_MEMBER
=1,
192 SAMR_ROLE_DOMAIN_BDC
=2,
193 SAMR_ROLE_DOMAIN_PDC
=3
196 { __donnot_use_enum_samr_Role
=0x7FFFFFFF}
197 #define SAMR_ROLE_STANDALONE ( 0 )
198 #define SAMR_ROLE_DOMAIN_MEMBER ( 1 )
199 #define SAMR_ROLE_DOMAIN_BDC ( 2 )
200 #define SAMR_ROLE_DOMAIN_PDC ( 3 )
204 /* bitmap samr_PasswordProperties */
205 #define DOMAIN_PASSWORD_COMPLEX ( 0x00000001 )
206 #define DOMAIN_PASSWORD_NO_ANON_CHANGE ( 0x00000002 )
207 #define DOMAIN_PASSWORD_NO_CLEAR_CHANGE ( 0x00000004 )
208 #define DOMAIN_PASSWORD_LOCKOUT_ADMINS ( 0x00000008 )
209 #define DOMAIN_PASSWORD_STORE_CLEARTEXT ( 0x00000010 )
210 #define DOMAIN_REFUSE_PASSWORD_CHANGE ( 0x00000020 )
212 enum samr_DomainServerState
213 #ifndef USE_UINT_ENUMS
215 DOMAIN_SERVER_ENABLED
=1,
216 DOMAIN_SERVER_DISABLED
=2
219 { __donnot_use_enum_samr_DomainServerState
=0x7FFFFFFF}
220 #define DOMAIN_SERVER_ENABLED ( 1 )
221 #define DOMAIN_SERVER_DISABLED ( 2 )
225 struct samr_DomInfo1
{
226 uint16_t min_password_length
;
227 uint16_t password_history_length
;
228 uint32_t password_properties
;
229 int64_t max_password_age
;
230 int64_t min_password_age
;
233 struct samr_DomGeneralInformation
{
234 NTTIME force_logoff_time
;
235 struct lsa_String oem_information
;
236 struct lsa_String domain_name
;
237 struct lsa_String primary
;
238 uint64_t sequence_num
;
239 enum samr_DomainServerState domain_server_state
;
244 uint32_t num_aliases
;
247 struct samr_DomInfo3
{
248 NTTIME force_logoff_time
;
251 struct samr_DomOEMInformation
{
252 struct lsa_String oem_information
;
255 struct samr_DomInfo5
{
256 struct lsa_String domain_name
;
259 struct samr_DomInfo6
{
260 struct lsa_String primary
;
263 struct samr_DomInfo7
{
267 struct samr_DomInfo8
{
268 uint64_t sequence_num
;
269 NTTIME domain_create_time
;
272 struct samr_DomInfo9
{
273 enum samr_DomainServerState domain_server_state
;
276 struct samr_DomGeneralInformation2
{
277 struct samr_DomGeneralInformation general
;
278 uint64_t lockout_duration
;
279 uint64_t lockout_window
;
280 uint16_t lockout_threshold
;
283 struct samr_DomInfo12
{
284 uint64_t lockout_duration
;
285 uint64_t lockout_window
;
286 uint16_t lockout_threshold
;
289 struct samr_DomInfo13
{
290 uint64_t sequence_num
;
291 NTTIME domain_create_time
;
292 uint64_t modified_count_at_last_promotion
;
295 union samr_DomainInfo
{
296 struct samr_DomInfo1 info1
;/* [case] */
297 struct samr_DomGeneralInformation general
;/* [case(2)] */
298 struct samr_DomInfo3 info3
;/* [case(3)] */
299 struct samr_DomOEMInformation oem
;/* [case(4)] */
300 struct samr_DomInfo5 info5
;/* [case(5)] */
301 struct samr_DomInfo6 info6
;/* [case(6)] */
302 struct samr_DomInfo7 info7
;/* [case(7)] */
303 struct samr_DomInfo8 info8
;/* [case(8)] */
304 struct samr_DomInfo9 info9
;/* [case(9)] */
305 struct samr_DomGeneralInformation2 general2
;/* [case(11)] */
306 struct samr_DomInfo12 info12
;/* [case(12)] */
307 struct samr_DomInfo13 info13
;/* [case(13)] */
308 }/* [switch_type(uint16)] */;
311 uint32_t count
;/* [range(0,1024)] */
312 uint32_t *ids
;/* [unique,size_is(count)] */
315 /* bitmap samr_GroupAttrs */
316 #define SE_GROUP_MANDATORY ( 0x00000001 )
317 #define SE_GROUP_ENABLED_BY_DEFAULT ( 0x00000002 )
318 #define SE_GROUP_ENABLED ( 0x00000004 )
319 #define SE_GROUP_OWNER ( 0x00000008 )
320 #define SE_GROUP_USE_FOR_DENY_ONLY ( 0x00000010 )
321 #define SE_GROUP_RESOURCE ( 0x20000000 )
322 #define SE_GROUP_LOGON_ID ( 0xC0000000 )
324 struct samr_GroupInfoAll
{
325 struct lsa_String name
;
327 uint32_t num_members
;
328 struct lsa_String description
;
331 struct samr_GroupInfoAttributes
{
335 struct samr_GroupInfoDescription
{
336 struct lsa_String description
;
339 enum samr_GroupInfoEnum
340 #ifndef USE_UINT_ENUMS
344 GROUPINFOATTRIBUTES
=3,
345 GROUPINFODESCRIPTION
=4,
349 { __donnot_use_enum_samr_GroupInfoEnum
=0x7FFFFFFF}
350 #define GROUPINFOALL ( 1 )
351 #define GROUPINFONAME ( 2 )
352 #define GROUPINFOATTRIBUTES ( 3 )
353 #define GROUPINFODESCRIPTION ( 4 )
354 #define GROUPINFOALL2 ( 5 )
358 union samr_GroupInfo
{
359 struct samr_GroupInfoAll all
;/* [case(GROUPINFOALL)] */
360 struct lsa_String name
;/* [case(GROUPINFONAME)] */
361 struct samr_GroupInfoAttributes attributes
;/* [case(GROUPINFOATTRIBUTES)] */
362 struct lsa_String description
;/* [case(GROUPINFODESCRIPTION)] */
363 struct samr_GroupInfoAll all2
;/* [case(GROUPINFOALL2)] */
364 }/* [switch_type(samr_GroupInfoEnum)] */;
366 struct samr_RidTypeArray
{
368 uint32_t *rids
;/* [unique,size_is(count)] */
369 uint32_t *types
;/* [unique,size_is(count)] */
372 struct samr_AliasInfoAll
{
373 struct lsa_String name
;
374 uint32_t num_members
;
375 struct lsa_String description
;
378 enum samr_AliasInfoEnum
379 #ifndef USE_UINT_ENUMS
383 ALIASINFODESCRIPTION
=3
386 { __donnot_use_enum_samr_AliasInfoEnum
=0x7FFFFFFF}
387 #define ALIASINFOALL ( 1 )
388 #define ALIASINFONAME ( 2 )
389 #define ALIASINFODESCRIPTION ( 3 )
393 union samr_AliasInfo
{
394 struct samr_AliasInfoAll all
;/* [case(ALIASINFOALL)] */
395 struct lsa_String name
;/* [case(ALIASINFONAME)] */
396 struct lsa_String description
;/* [case(ALIASINFODESCRIPTION)] */
397 }/* [switch_type(samr_AliasInfoEnum)] */;
399 enum samr_UserInfoLevel
400 #ifndef USE_UINT_ENUMS
402 UserGeneralInformation
=1,
403 UserPreferencesInformation
=2,
404 UserLogonInformation
=3,
405 UserLogonHoursInformation
=4,
406 UserAccountInformation
=5,
407 UserNameInformation
=6,
408 UserAccountNameInformation
=7,
409 UserFullNameInformation
=8,
410 UserPrimaryGroupInformation
=9,
411 UserHomeInformation
=10,
412 UserScriptInformation
=11,
413 UserProfileInformation
=12,
414 UserAdminCommentInformation
=13,
415 UserWorkStationsInformation
=14,
416 UserControlInformation
=16,
417 UserExpiresInformation
=17,
418 UserInternal1Information
=18,
419 UserParametersInformation
=20,
420 UserAllInformation
=21,
421 UserInternal4Information
=23,
422 UserInternal5Information
=24,
423 UserInternal4InformationNew
=25,
424 UserInternal5InformationNew
=26
427 { __donnot_use_enum_samr_UserInfoLevel
=0x7FFFFFFF}
428 #define UserGeneralInformation ( 1 )
429 #define UserPreferencesInformation ( 2 )
430 #define UserLogonInformation ( 3 )
431 #define UserLogonHoursInformation ( 4 )
432 #define UserAccountInformation ( 5 )
433 #define UserNameInformation ( 6 )
434 #define UserAccountNameInformation ( 7 )
435 #define UserFullNameInformation ( 8 )
436 #define UserPrimaryGroupInformation ( 9 )
437 #define UserHomeInformation ( 10 )
438 #define UserScriptInformation ( 11 )
439 #define UserProfileInformation ( 12 )
440 #define UserAdminCommentInformation ( 13 )
441 #define UserWorkStationsInformation ( 14 )
442 #define UserControlInformation ( 16 )
443 #define UserExpiresInformation ( 17 )
444 #define UserInternal1Information ( 18 )
445 #define UserParametersInformation ( 20 )
446 #define UserAllInformation ( 21 )
447 #define UserInternal4Information ( 23 )
448 #define UserInternal5Information ( 24 )
449 #define UserInternal4InformationNew ( 25 )
450 #define UserInternal5InformationNew ( 26 )
454 struct samr_UserInfo1
{
455 struct lsa_String account_name
;
456 struct lsa_String full_name
;
457 uint32_t primary_gid
;
458 struct lsa_String description
;
459 struct lsa_String comment
;
462 struct samr_UserInfo2
{
463 struct lsa_String comment
;
464 struct lsa_String unknown
;
465 uint16_t country_code
;
469 struct samr_LogonHours
{
470 uint16_t units_per_week
;
471 uint8_t *bits
;/* [unique,length_is(units_per_week/8),size_is(1260)] */
472 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
474 struct samr_UserInfo3
{
475 struct lsa_String account_name
;
476 struct lsa_String full_name
;
478 uint32_t primary_gid
;
479 struct lsa_String home_directory
;
480 struct lsa_String home_drive
;
481 struct lsa_String logon_script
;
482 struct lsa_String profile_path
;
483 struct lsa_String workstations
;
486 NTTIME last_password_change
;
487 NTTIME allow_password_change
;
488 NTTIME force_password_change
;
489 struct samr_LogonHours logon_hours
;
490 uint16_t bad_password_count
;
491 uint16_t logon_count
;
495 struct samr_UserInfo4
{
496 struct samr_LogonHours logon_hours
;
499 struct samr_UserInfo5
{
500 struct lsa_String account_name
;
501 struct lsa_String full_name
;
503 uint32_t primary_gid
;
504 struct lsa_String home_directory
;
505 struct lsa_String home_drive
;
506 struct lsa_String logon_script
;
507 struct lsa_String profile_path
;
508 struct lsa_String description
;
509 struct lsa_String workstations
;
512 struct samr_LogonHours logon_hours
;
513 uint16_t bad_password_count
;
514 uint16_t logon_count
;
515 NTTIME last_password_change
;
520 struct samr_UserInfo6
{
521 struct lsa_String account_name
;
522 struct lsa_String full_name
;
525 struct samr_UserInfo7
{
526 struct lsa_String account_name
;
529 struct samr_UserInfo8
{
530 struct lsa_String full_name
;
533 struct samr_UserInfo9
{
534 uint32_t primary_gid
;
537 struct samr_UserInfo10
{
538 struct lsa_String home_directory
;
539 struct lsa_String home_drive
;
542 struct samr_UserInfo11
{
543 struct lsa_String logon_script
;
546 struct samr_UserInfo12
{
547 struct lsa_String profile_path
;
550 struct samr_UserInfo13
{
551 struct lsa_String description
;
554 struct samr_UserInfo14
{
555 struct lsa_String workstations
;
558 struct samr_UserInfo16
{
562 struct samr_UserInfo17
{
566 struct samr_Password
{
568 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
570 struct samr_UserInfo18
{
571 struct samr_Password nt_pwd
;
572 struct samr_Password lm_pwd
;
573 uint8_t nt_pwd_active
;
574 uint8_t lm_pwd_active
;
575 uint8_t password_expired
;
578 struct samr_UserInfo20
{
579 struct lsa_BinaryString parameters
;
582 /* bitmap samr_FieldsPresent */
583 #define SAMR_FIELD_ACCOUNT_NAME ( 0x00000001 )
584 #define SAMR_FIELD_FULL_NAME ( 0x00000002 )
585 #define SAMR_FIELD_RID ( 0x00000004 )
586 #define SAMR_FIELD_PRIMARY_GID ( 0x00000008 )
587 #define SAMR_FIELD_DESCRIPTION ( 0x00000010 )
588 #define SAMR_FIELD_COMMENT ( 0x00000020 )
589 #define SAMR_FIELD_HOME_DIRECTORY ( 0x00000040 )
590 #define SAMR_FIELD_HOME_DRIVE ( 0x00000080 )
591 #define SAMR_FIELD_LOGON_SCRIPT ( 0x00000100 )
592 #define SAMR_FIELD_PROFILE_PATH ( 0x00000200 )
593 #define SAMR_FIELD_WORKSTATIONS ( 0x00000400 )
594 #define SAMR_FIELD_LAST_LOGON ( 0x00000800 )
595 #define SAMR_FIELD_LAST_LOGOFF ( 0x00001000 )
596 #define SAMR_FIELD_LOGON_HOURS ( 0x00002000 )
597 #define SAMR_FIELD_BAD_PWD_COUNT ( 0x00004000 )
598 #define SAMR_FIELD_NUM_LOGONS ( 0x00008000 )
599 #define SAMR_FIELD_ALLOW_PWD_CHANGE ( 0x00010000 )
600 #define SAMR_FIELD_FORCE_PWD_CHANGE ( 0x00020000 )
601 #define SAMR_FIELD_LAST_PWD_CHANGE ( 0x00040000 )
602 #define SAMR_FIELD_ACCT_EXPIRY ( 0x00080000 )
603 #define SAMR_FIELD_ACCT_FLAGS ( 0x00100000 )
604 #define SAMR_FIELD_PARAMETERS ( 0x00200000 )
605 #define SAMR_FIELD_COUNTRY_CODE ( 0x00400000 )
606 #define SAMR_FIELD_CODE_PAGE ( 0x00800000 )
607 #define SAMR_FIELD_NT_PASSWORD_PRESENT ( 0x01000000 )
608 #define SAMR_FIELD_LM_PASSWORD_PRESENT ( 0x02000000 )
609 #define SAMR_FIELD_PRIVATE_DATA ( 0x04000000 )
610 #define SAMR_FIELD_EXPIRED_FLAG ( 0x08000000 )
611 #define SAMR_FIELD_SEC_DESC ( 0x10000000 )
612 #define SAMR_FIELD_OWF_PWD ( 0x20000000 )
614 struct samr_UserInfo21
{
617 NTTIME last_password_change
;
619 NTTIME allow_password_change
;
620 NTTIME force_password_change
;
621 struct lsa_String account_name
;
622 struct lsa_String full_name
;
623 struct lsa_String home_directory
;
624 struct lsa_String home_drive
;
625 struct lsa_String logon_script
;
626 struct lsa_String profile_path
;
627 struct lsa_String description
;
628 struct lsa_String workstations
;
629 struct lsa_String comment
;
630 struct lsa_BinaryString parameters
;
631 struct lsa_BinaryString lm_owf_password
;
632 struct lsa_BinaryString nt_owf_password
;
633 struct lsa_String unknown3
;
635 uint8_t *buffer
;/* [unique,size_is(buf_count)] */
637 uint32_t primary_gid
;
639 uint32_t fields_present
;
640 struct samr_LogonHours logon_hours
;
641 uint16_t bad_password_count
;
642 uint16_t logon_count
;
643 uint16_t country_code
;
645 uint8_t lm_password_set
;
646 uint8_t nt_password_set
;
647 uint8_t password_expired
;
651 struct samr_CryptPassword
{
653 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
655 struct samr_UserInfo23
{
656 struct samr_UserInfo21 info
;
657 struct samr_CryptPassword password
;
660 struct samr_UserInfo24
{
661 struct samr_CryptPassword password
;
662 uint8_t password_expired
;
665 struct samr_CryptPasswordEx
{
667 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
669 struct samr_UserInfo25
{
670 struct samr_UserInfo21 info
;
671 struct samr_CryptPasswordEx password
;
674 struct samr_UserInfo26
{
675 struct samr_CryptPasswordEx password
;
676 uint8_t password_expired
;
679 union samr_UserInfo
{
680 struct samr_UserInfo1 info1
;/* [case] */
681 struct samr_UserInfo2 info2
;/* [case(2)] */
682 struct samr_UserInfo3 info3
;/* [case(3)] */
683 struct samr_UserInfo4 info4
;/* [case(4)] */
684 struct samr_UserInfo5 info5
;/* [case(5)] */
685 struct samr_UserInfo6 info6
;/* [case(6)] */
686 struct samr_UserInfo7 info7
;/* [case(7)] */
687 struct samr_UserInfo8 info8
;/* [case(8)] */
688 struct samr_UserInfo9 info9
;/* [case(9)] */
689 struct samr_UserInfo10 info10
;/* [case(10)] */
690 struct samr_UserInfo11 info11
;/* [case(11)] */
691 struct samr_UserInfo12 info12
;/* [case(12)] */
692 struct samr_UserInfo13 info13
;/* [case(13)] */
693 struct samr_UserInfo14 info14
;/* [case(14)] */
694 struct samr_UserInfo16 info16
;/* [case(16)] */
695 struct samr_UserInfo17 info17
;/* [case(17)] */
696 struct samr_UserInfo18 info18
;/* [case(18)] */
697 struct samr_UserInfo20 info20
;/* [case(20)] */
698 struct samr_UserInfo21 info21
;/* [case(21)] */
699 struct samr_UserInfo23 info23
;/* [case(23)] */
700 struct samr_UserInfo24 info24
;/* [case(24)] */
701 struct samr_UserInfo25 info25
;/* [case(25)] */
702 struct samr_UserInfo26 info26
;/* [case(26)] */
703 }/* [switch_type(uint16)] */;
705 struct samr_RidWithAttribute
{
710 struct samr_RidWithAttributeArray
{
712 struct samr_RidWithAttribute
*rids
;/* [unique,size_is(count)] */
715 struct samr_DispEntryGeneral
{
719 struct lsa_String account_name
;
720 struct lsa_String description
;
721 struct lsa_String full_name
;
724 struct samr_DispInfoGeneral
{
726 struct samr_DispEntryGeneral
*entries
;/* [unique,size_is(count)] */
729 struct samr_DispEntryFull
{
733 struct lsa_String account_name
;
734 struct lsa_String description
;
737 struct samr_DispInfoFull
{
739 struct samr_DispEntryFull
*entries
;/* [unique,size_is(count)] */
742 struct samr_DispEntryFullGroup
{
746 struct lsa_String account_name
;
747 struct lsa_String description
;
750 struct samr_DispInfoFullGroups
{
752 struct samr_DispEntryFullGroup
*entries
;/* [unique,size_is(count)] */
755 struct samr_DispEntryAscii
{
757 struct lsa_AsciiStringLarge account_name
;
760 struct samr_DispInfoAscii
{
762 struct samr_DispEntryAscii
*entries
;/* [unique,size_is(count)] */
765 union samr_DispInfo
{
766 struct samr_DispInfoGeneral info1
;/* [case] */
767 struct samr_DispInfoFull info2
;/* [case(2)] */
768 struct samr_DispInfoFullGroups info3
;/* [case(3)] */
769 struct samr_DispInfoAscii info4
;/* [case(4)] */
770 struct samr_DispInfoAscii info5
;/* [case(5)] */
771 }/* [switch_type(uint16)] */;
774 uint16_t min_password_length
;
775 uint32_t password_properties
;
778 enum samr_ConnectVersion
779 #ifndef USE_UINT_ENUMS
781 SAMR_CONNECT_PRE_W2K
=1,
783 SAMR_CONNECT_AFTER_W2K
=3
786 { __donnot_use_enum_samr_ConnectVersion
=0x7FFFFFFF}
787 #define SAMR_CONNECT_PRE_W2K ( 1 )
788 #define SAMR_CONNECT_W2K ( 2 )
789 #define SAMR_CONNECT_AFTER_W2K ( 3 )
793 struct samr_ChangeReject
{
794 enum samr_RejectReason reason
;
799 struct samr_ConnectInfo1
{
800 enum samr_ConnectVersion client_version
;
804 union samr_ConnectInfo
{
805 struct samr_ConnectInfo1 info1
;/* [case] */
808 /* bitmap samr_ValidateFieldsPresent */
809 #define SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET ( 0x00000001 )
810 #define SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME ( 0x00000002 )
811 #define SAMR_VALIDATE_FIELD_LOCKOUT_TIME ( 0x00000004 )
812 #define SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT ( 0x00000008 )
813 #define SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH ( 0x00000010 )
814 #define SAMR_VALIDATE_FIELD_PASSWORD_HISTORY ( 0x00000020 )
816 enum samr_ValidatePasswordLevel
817 #ifndef USE_UINT_ENUMS
819 NetValidateAuthentication
=1,
820 NetValidatePasswordChange
=2,
821 NetValidatePasswordReset
=3
824 { __donnot_use_enum_samr_ValidatePasswordLevel
=0x7FFFFFFF}
825 #define NetValidateAuthentication ( 1 )
826 #define NetValidatePasswordChange ( 2 )
827 #define NetValidatePasswordReset ( 3 )
831 enum samr_ValidationStatus
832 #ifndef USE_UINT_ENUMS
834 SAMR_VALIDATION_STATUS_SUCCESS
=0,
835 SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE
=1,
836 SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT
=2,
837 SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED
=3,
838 SAMR_VALIDATION_STATUS_BAD_PASSWORD
=4,
839 SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT
=5,
840 SAMR_VALIDATION_STATUS_PWD_TOO_SHORT
=6,
841 SAMR_VALIDATION_STATUS_PWD_TOO_LONG
=7,
842 SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH
=8,
843 SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT
=9,
844 SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR
=10
847 { __donnot_use_enum_samr_ValidationStatus
=0x7FFFFFFF}
848 #define SAMR_VALIDATION_STATUS_SUCCESS ( 0 )
849 #define SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE ( 1 )
850 #define SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT ( 2 )
851 #define SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED ( 3 )
852 #define SAMR_VALIDATION_STATUS_BAD_PASSWORD ( 4 )
853 #define SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT ( 5 )
854 #define SAMR_VALIDATION_STATUS_PWD_TOO_SHORT ( 6 )
855 #define SAMR_VALIDATION_STATUS_PWD_TOO_LONG ( 7 )
856 #define SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH ( 8 )
857 #define SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT ( 9 )
858 #define SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR ( 10 )
862 struct samr_ValidationBlob
{
864 uint8_t *data
;/* [unique,size_is(length)] */
867 struct samr_ValidatePasswordInfo
{
868 uint32_t fields_present
;
869 NTTIME last_password_change
;
870 NTTIME bad_password_time
;
872 uint32_t bad_pwd_count
;
873 uint32_t pwd_history_len
;
874 struct samr_ValidationBlob
*pwd_history
;/* [unique,size_is(pwd_history_len)] */
877 struct samr_ValidatePasswordRepCtr
{
878 struct samr_ValidatePasswordInfo info
;
879 enum samr_ValidationStatus status
;
882 union samr_ValidatePasswordRep
{
883 struct samr_ValidatePasswordRepCtr ctr1
;/* [case] */
884 struct samr_ValidatePasswordRepCtr ctr2
;/* [case(2)] */
885 struct samr_ValidatePasswordRepCtr ctr3
;/* [case(3)] */
886 }/* [switch_type(uint16)] */;
888 struct samr_ValidatePasswordReq3
{
889 struct samr_ValidatePasswordInfo info
;
890 struct lsa_StringLarge password
;
891 struct lsa_StringLarge account
;
892 struct samr_ValidationBlob hash
;
893 uint8_t pwd_must_change_at_next_logon
;
894 uint8_t clear_lockout
;
897 struct samr_ValidatePasswordReq2
{
898 struct samr_ValidatePasswordInfo info
;
899 struct lsa_StringLarge password
;
900 struct lsa_StringLarge account
;
901 struct samr_ValidationBlob hash
;
902 uint8_t password_matched
;
905 struct samr_ValidatePasswordReq1
{
906 struct samr_ValidatePasswordInfo info
;
907 uint8_t password_matched
;
910 union samr_ValidatePasswordReq
{
911 struct samr_ValidatePasswordReq1 req1
;/* [case] */
912 struct samr_ValidatePasswordReq2 req2
;/* [case(2)] */
913 struct samr_ValidatePasswordReq3 req3
;/* [case(3)] */
914 }/* [switch_type(uint16)] */;
917 struct samr_Connect
{
919 uint16_t *system_name
;/* [unique] */
920 uint32_t access_mask
;
924 struct policy_handle
*connect_handle
;/* [ref] */
933 struct policy_handle
*handle
;/* [ref] */
937 struct policy_handle
*handle
;/* [ref] */
944 struct samr_SetSecurity
{
946 struct policy_handle
*handle
;/* [ref] */
948 struct sec_desc_buf
*sdbuf
;/* [ref] */
958 struct samr_QuerySecurity
{
960 struct policy_handle
*handle
;/* [ref] */
965 struct sec_desc_buf
**sdbuf
;/* [ref] */
972 struct samr_Shutdown
{
974 struct policy_handle
*connect_handle
;/* [ref] */
984 struct samr_LookupDomain
{
986 struct policy_handle
*connect_handle
;/* [ref] */
987 struct lsa_String
*domain_name
;/* [ref] */
991 struct dom_sid2
**sid
;/* [ref] */
998 struct samr_EnumDomains
{
1000 struct policy_handle
*connect_handle
;/* [ref] */
1002 uint32_t *resume_handle
;/* [ref] */
1006 struct samr_SamArray
**sam
;/* [ref] */
1007 uint32_t *num_entries
;/* [ref] */
1008 uint32_t *resume_handle
;/* [ref] */
1015 struct samr_OpenDomain
{
1017 struct policy_handle
*connect_handle
;/* [ref] */
1018 uint32_t access_mask
;
1019 struct dom_sid2
*sid
;/* [ref] */
1023 struct policy_handle
*domain_handle
;/* [ref] */
1030 struct samr_QueryDomainInfo
{
1032 struct policy_handle
*domain_handle
;/* [ref] */
1033 enum samr_DomainInfoClass level
;
1037 union samr_DomainInfo
**info
;/* [ref,switch_is(level)] */
1044 struct samr_SetDomainInfo
{
1046 struct policy_handle
*domain_handle
;/* [ref] */
1047 enum samr_DomainInfoClass level
;
1048 union samr_DomainInfo
*info
;/* [ref,switch_is(level)] */
1058 struct samr_CreateDomainGroup
{
1060 struct policy_handle
*domain_handle
;/* [ref] */
1061 struct lsa_String
*name
;/* [ref] */
1062 uint32_t access_mask
;
1066 struct policy_handle
*group_handle
;/* [ref] */
1067 uint32_t *rid
;/* [ref] */
1074 struct samr_EnumDomainGroups
{
1076 struct policy_handle
*domain_handle
;/* [ref] */
1078 uint32_t *resume_handle
;/* [ref] */
1082 struct samr_SamArray
**sam
;/* [ref] */
1083 uint32_t *num_entries
;/* [ref] */
1084 uint32_t *resume_handle
;/* [ref] */
1091 struct samr_CreateUser
{
1093 struct policy_handle
*domain_handle
;/* [ref] */
1094 struct lsa_String
*account_name
;/* [ref] */
1095 uint32_t access_mask
;
1099 struct policy_handle
*user_handle
;/* [ref] */
1100 uint32_t *rid
;/* [ref] */
1107 struct samr_EnumDomainUsers
{
1109 struct policy_handle
*domain_handle
;/* [ref] */
1110 uint32_t acct_flags
;
1112 uint32_t *resume_handle
;/* [ref] */
1116 struct samr_SamArray
**sam
;/* [ref] */
1117 uint32_t *num_entries
;/* [ref] */
1118 uint32_t *resume_handle
;/* [ref] */
1125 struct samr_CreateDomAlias
{
1127 struct policy_handle
*domain_handle
;/* [ref] */
1128 struct lsa_String
*alias_name
;/* [ref] */
1129 uint32_t access_mask
;
1133 struct policy_handle
*alias_handle
;/* [ref] */
1134 uint32_t *rid
;/* [ref] */
1141 struct samr_EnumDomainAliases
{
1143 struct policy_handle
*domain_handle
;/* [ref] */
1145 uint32_t *resume_handle
;/* [ref] */
1149 struct samr_SamArray
**sam
;/* [ref] */
1150 uint32_t *num_entries
;/* [ref] */
1151 uint32_t *resume_handle
;/* [ref] */
1158 struct samr_GetAliasMembership
{
1160 struct policy_handle
*domain_handle
;/* [ref] */
1161 struct lsa_SidArray
*sids
;/* [ref] */
1165 struct samr_Ids
*rids
;/* [ref] */
1172 struct samr_LookupNames
{
1174 struct policy_handle
*domain_handle
;/* [ref] */
1175 uint32_t num_names
;/* [range(0,1000)] */
1176 struct lsa_String
*names
;/* [length_is(num_names),size_is(1000)] */
1180 struct samr_Ids
*rids
;/* [ref] */
1181 struct samr_Ids
*types
;/* [ref] */
1188 struct samr_LookupRids
{
1190 struct policy_handle
*domain_handle
;/* [ref] */
1191 uint32_t num_rids
;/* [range(0,1000)] */
1192 uint32_t *rids
;/* [length_is(num_rids),size_is(1000)] */
1196 struct lsa_Strings
*names
;/* [ref] */
1197 struct samr_Ids
*types
;/* [ref] */
1204 struct samr_OpenGroup
{
1206 struct policy_handle
*domain_handle
;/* [ref] */
1207 uint32_t access_mask
;
1212 struct policy_handle
*group_handle
;/* [ref] */
1219 struct samr_QueryGroupInfo
{
1221 struct policy_handle
*group_handle
;/* [ref] */
1222 enum samr_GroupInfoEnum level
;
1226 union samr_GroupInfo
**info
;/* [ref,switch_is(level)] */
1233 struct samr_SetGroupInfo
{
1235 struct policy_handle
*group_handle
;/* [ref] */
1236 enum samr_GroupInfoEnum level
;
1237 union samr_GroupInfo
*info
;/* [ref,switch_is(level)] */
1247 struct samr_AddGroupMember
{
1249 struct policy_handle
*group_handle
;/* [ref] */
1261 struct samr_DeleteDomainGroup
{
1263 struct policy_handle
*group_handle
;/* [ref] */
1267 struct policy_handle
*group_handle
;/* [ref] */
1274 struct samr_DeleteGroupMember
{
1276 struct policy_handle
*group_handle
;/* [ref] */
1287 struct samr_QueryGroupMember
{
1289 struct policy_handle
*group_handle
;/* [ref] */
1293 struct samr_RidTypeArray
**rids
;/* [ref] */
1300 struct samr_SetMemberAttributesOfGroup
{
1302 struct policy_handle
*group_handle
;/* [ref] */
1314 struct samr_OpenAlias
{
1316 struct policy_handle
*domain_handle
;/* [ref] */
1317 uint32_t access_mask
;
1322 struct policy_handle
*alias_handle
;/* [ref] */
1329 struct samr_QueryAliasInfo
{
1331 struct policy_handle
*alias_handle
;/* [ref] */
1332 enum samr_AliasInfoEnum level
;
1336 union samr_AliasInfo
**info
;/* [ref,switch_is(level)] */
1343 struct samr_SetAliasInfo
{
1345 struct policy_handle
*alias_handle
;/* [ref] */
1346 enum samr_AliasInfoEnum level
;
1347 union samr_AliasInfo
*info
;/* [ref,switch_is(level)] */
1357 struct samr_DeleteDomAlias
{
1359 struct policy_handle
*alias_handle
;/* [ref] */
1363 struct policy_handle
*alias_handle
;/* [ref] */
1370 struct samr_AddAliasMember
{
1372 struct policy_handle
*alias_handle
;/* [ref] */
1373 struct dom_sid2
*sid
;/* [ref] */
1383 struct samr_DeleteAliasMember
{
1385 struct policy_handle
*alias_handle
;/* [ref] */
1386 struct dom_sid2
*sid
;/* [ref] */
1396 struct samr_GetMembersInAlias
{
1398 struct policy_handle
*alias_handle
;/* [ref] */
1402 struct lsa_SidArray
*sids
;/* [ref] */
1409 struct samr_OpenUser
{
1411 struct policy_handle
*domain_handle
;/* [ref] */
1412 uint32_t access_mask
;
1417 struct policy_handle
*user_handle
;/* [ref] */
1424 struct samr_DeleteUser
{
1426 struct policy_handle
*user_handle
;/* [ref] */
1430 struct policy_handle
*user_handle
;/* [ref] */
1437 struct samr_QueryUserInfo
{
1439 struct policy_handle
*user_handle
;/* [ref] */
1440 enum samr_UserInfoLevel level
;
1444 union samr_UserInfo
**info
;/* [ref,switch_is(level)] */
1451 struct samr_SetUserInfo
{
1453 struct policy_handle
*user_handle
;/* [ref] */
1454 enum samr_UserInfoLevel level
;
1455 union samr_UserInfo
*info
;/* [ref,switch_is(level)] */
1465 struct samr_ChangePasswordUser
{
1467 struct policy_handle
*user_handle
;/* [ref] */
1469 struct samr_Password
*old_lm_crypted
;/* [unique] */
1470 struct samr_Password
*new_lm_crypted
;/* [unique] */
1472 struct samr_Password
*old_nt_crypted
;/* [unique] */
1473 struct samr_Password
*new_nt_crypted
;/* [unique] */
1474 uint8_t cross1_present
;
1475 struct samr_Password
*nt_cross
;/* [unique] */
1476 uint8_t cross2_present
;
1477 struct samr_Password
*lm_cross
;/* [unique] */
1487 struct samr_GetGroupsForUser
{
1489 struct policy_handle
*user_handle
;/* [ref] */
1493 struct samr_RidWithAttributeArray
**rids
;/* [ref] */
1500 struct samr_QueryDisplayInfo
{
1502 struct policy_handle
*domain_handle
;/* [ref] */
1505 uint32_t max_entries
;
1510 uint32_t *total_size
;/* [ref] */
1511 uint32_t *returned_size
;/* [ref] */
1512 union samr_DispInfo
*info
;/* [ref,switch_is(level)] */
1519 struct samr_GetDisplayEnumerationIndex
{
1521 struct policy_handle
*domain_handle
;/* [ref] */
1523 struct lsa_String
*name
;/* [ref] */
1527 uint32_t *idx
;/* [ref] */
1534 struct samr_TestPrivateFunctionsDomain
{
1536 struct policy_handle
*domain_handle
;/* [ref] */
1546 struct samr_TestPrivateFunctionsUser
{
1548 struct policy_handle
*user_handle
;/* [ref] */
1558 struct samr_GetUserPwInfo
{
1560 struct policy_handle
*user_handle
;/* [ref] */
1564 struct samr_PwInfo
*info
;/* [ref] */
1571 struct samr_RemoveMemberFromForeignDomain
{
1573 struct policy_handle
*domain_handle
;/* [ref] */
1574 struct dom_sid2
*sid
;/* [ref] */
1584 struct samr_QueryDomainInfo2
{
1586 struct policy_handle
*domain_handle
;/* [ref] */
1587 enum samr_DomainInfoClass level
;
1591 union samr_DomainInfo
**info
;/* [ref,switch_is(level)] */
1598 struct samr_QueryUserInfo2
{
1600 struct policy_handle
*user_handle
;/* [ref] */
1601 enum samr_UserInfoLevel level
;
1605 union samr_UserInfo
**info
;/* [ref,switch_is(level)] */
1612 struct samr_QueryDisplayInfo2
{
1614 struct policy_handle
*domain_handle
;/* [ref] */
1617 uint32_t max_entries
;
1622 uint32_t *total_size
;/* [ref] */
1623 uint32_t *returned_size
;/* [ref] */
1624 union samr_DispInfo
*info
;/* [ref,switch_is(level)] */
1631 struct samr_GetDisplayEnumerationIndex2
{
1633 struct policy_handle
*domain_handle
;/* [ref] */
1635 struct lsa_String
*name
;/* [ref] */
1639 uint32_t *idx
;/* [ref] */
1646 struct samr_CreateUser2
{
1648 struct policy_handle
*domain_handle
;/* [ref] */
1649 struct lsa_String
*account_name
;/* [ref] */
1650 uint32_t acct_flags
;
1651 uint32_t access_mask
;
1655 struct policy_handle
*user_handle
;/* [ref] */
1656 uint32_t *access_granted
;/* [ref] */
1657 uint32_t *rid
;/* [ref] */
1664 struct samr_QueryDisplayInfo3
{
1666 struct policy_handle
*domain_handle
;/* [ref] */
1669 uint32_t max_entries
;
1674 uint32_t *total_size
;/* [ref] */
1675 uint32_t *returned_size
;/* [ref] */
1676 union samr_DispInfo
*info
;/* [ref,switch_is(level)] */
1683 struct samr_AddMultipleMembersToAlias
{
1685 struct policy_handle
*alias_handle
;/* [ref] */
1686 struct lsa_SidArray
*sids
;/* [ref] */
1696 struct samr_RemoveMultipleMembersFromAlias
{
1698 struct policy_handle
*alias_handle
;/* [ref] */
1699 struct lsa_SidArray
*sids
;/* [ref] */
1709 struct samr_OemChangePasswordUser2
{
1711 struct lsa_AsciiString
*server
;/* [unique] */
1712 struct lsa_AsciiString
*account
;/* [ref] */
1713 struct samr_CryptPassword
*password
;/* [unique] */
1714 struct samr_Password
*hash
;/* [unique] */
1724 struct samr_ChangePasswordUser2
{
1726 struct lsa_String
*server
;/* [unique] */
1727 struct lsa_String
*account
;/* [ref] */
1728 struct samr_CryptPassword
*nt_password
;/* [unique] */
1729 struct samr_Password
*nt_verifier
;/* [unique] */
1731 struct samr_CryptPassword
*lm_password
;/* [unique] */
1732 struct samr_Password
*lm_verifier
;/* [unique] */
1742 struct samr_GetDomPwInfo
{
1744 struct lsa_String
*domain_name
;/* [unique] */
1748 struct samr_PwInfo
*info
;/* [ref] */
1755 struct samr_Connect2
{
1757 const char *system_name
;/* [unique,charset(UTF16)] */
1758 uint32_t access_mask
;
1762 struct policy_handle
*connect_handle
;/* [ref] */
1769 struct samr_SetUserInfo2
{
1771 struct policy_handle
*user_handle
;/* [ref] */
1772 enum samr_UserInfoLevel level
;
1773 union samr_UserInfo
*info
;/* [ref,switch_is(level)] */
1783 struct samr_SetBootKeyInformation
{
1785 struct policy_handle
*connect_handle
;/* [ref] */
1798 struct samr_GetBootKeyInformation
{
1800 struct policy_handle
*domain_handle
;/* [ref] */
1804 uint32_t *unknown
;/* [ref] */
1811 struct samr_Connect3
{
1813 const char *system_name
;/* [unique,charset(UTF16)] */
1815 uint32_t access_mask
;
1819 struct policy_handle
*connect_handle
;/* [ref] */
1826 struct samr_Connect4
{
1828 const char *system_name
;/* [unique,charset(UTF16)] */
1829 enum samr_ConnectVersion client_version
;
1830 uint32_t access_mask
;
1834 struct policy_handle
*connect_handle
;/* [ref] */
1841 struct samr_ChangePasswordUser3
{
1843 struct lsa_String
*server
;/* [unique] */
1844 struct lsa_String
*account
;/* [ref] */
1845 struct samr_CryptPassword
*nt_password
;/* [unique] */
1846 struct samr_Password
*nt_verifier
;/* [unique] */
1848 struct samr_CryptPassword
*lm_password
;/* [unique] */
1849 struct samr_Password
*lm_verifier
;/* [unique] */
1850 struct samr_CryptPassword
*password3
;/* [unique] */
1854 struct samr_DomInfo1
**dominfo
;/* [ref] */
1855 struct samr_ChangeReject
**reject
;/* [ref] */
1862 struct samr_Connect5
{
1864 const char *system_name
;/* [unique,charset(UTF16)] */
1865 uint32_t access_mask
;
1867 union samr_ConnectInfo
*info_in
;/* [ref,switch_is(level_in)] */
1871 uint32_t *level_out
;/* [ref] */
1872 union samr_ConnectInfo
*info_out
;/* [ref,switch_is(*level_out)] */
1873 struct policy_handle
*connect_handle
;/* [ref] */
1880 struct samr_RidToSid
{
1882 struct policy_handle
*domain_handle
;/* [ref] */
1887 struct dom_sid2
**sid
;/* [ref] */
1894 struct samr_SetDsrmPassword
{
1896 struct lsa_String
*name
;/* [unique] */
1898 struct samr_Password
*hash
;/* [unique] */
1908 struct samr_ValidatePassword
{
1910 enum samr_ValidatePasswordLevel level
;
1911 union samr_ValidatePasswordReq
*req
;/* [ref,switch_is(level)] */
1915 union samr_ValidatePasswordRep
**rep
;/* [ref,switch_is(level)] */
1921 #endif /* _HEADER_samr */