Re-run make idl.
[Samba.git] / source / librpc / gen_ndr / samr.h
blob376feae5d16abd2fda924cbb37ca7d111630bcb7
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 SAMR_USER_ACCESS_GET_NAME_ETC ( 0x00000001 )
43 #define SAMR_USER_ACCESS_GET_LOCALE ( 0x00000002 )
44 #define SAMR_USER_ACCESS_SET_LOC_COM ( 0x00000004 )
45 #define SAMR_USER_ACCESS_GET_LOGONINFO ( 0x00000008 )
46 #define SAMR_USER_ACCESS_GET_ATTRIBUTES ( 0x00000010 )
47 #define SAMR_USER_ACCESS_SET_ATTRIBUTES ( 0x00000020 )
48 #define SAMR_USER_ACCESS_CHANGE_PASSWORD ( 0x00000040 )
49 #define SAMR_USER_ACCESS_SET_PASSWORD ( 0x00000080 )
50 #define SAMR_USER_ACCESS_GET_GROUPS ( 0x00000100 )
51 #define SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP ( 0x00000200 )
52 #define SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP ( 0x00000400 )
54 /* bitmap samr_DomainAccessMask */
55 #define SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 ( 0x00000001 )
56 #define SAMR_DOMAIN_ACCESS_SET_INFO_1 ( 0x00000002 )
57 #define SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 ( 0x00000004 )
58 #define SAMR_DOMAIN_ACCESS_SET_INFO_2 ( 0x00000008 )
59 #define SAMR_DOMAIN_ACCESS_CREATE_USER ( 0x00000010 )
60 #define SAMR_DOMAIN_ACCESS_CREATE_GROUP ( 0x00000020 )
61 #define SAMR_DOMAIN_ACCESS_CREATE_ALIAS ( 0x00000040 )
62 #define SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS ( 0x00000080 )
63 #define SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS ( 0x00000100 )
64 #define SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT ( 0x00000200 )
65 #define SAMR_DOMAIN_ACCESS_SET_INFO_3 ( 0x00000400 )
67 /* bitmap samr_GroupAccessMask */
68 #define SAMR_GROUP_ACCESS_LOOKUP_INFO ( 0x00000001 )
69 #define SAMR_GROUP_ACCESS_SET_INFO ( 0x00000002 )
70 #define SAMR_GROUP_ACCESS_ADD_MEMBER ( 0x00000004 )
71 #define SAMR_GROUP_ACCESS_REMOVE_MEMBER ( 0x00000008 )
72 #define SAMR_GROUP_ACCESS_GET_MEMBERS ( 0x00000010 )
74 /* bitmap samr_AliasAccessMask */
75 #define SAMR_ALIAS_ACCESS_ADD_MEMBER ( 0x00000001 )
76 #define SAMR_ALIAS_ACCESS_REMOVE_MEMBER ( 0x00000002 )
77 #define SAMR_ALIAS_ACCESS_GET_MEMBERS ( 0x00000004 )
78 #define SAMR_ALIAS_ACCESS_LOOKUP_INFO ( 0x00000008 )
79 #define SAMR_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_Password {
404 uint8_t hash[16];
405 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
407 struct samr_UserInfo18 {
408 struct samr_Password lm_pwd;
409 struct samr_Password nt_pwd;
410 uint8_t lm_pwd_active;
411 uint8_t nt_pwd_active;
414 struct samr_UserInfo20 {
415 struct lsa_String parameters;
418 /* bitmap samr_FieldsPresent */
419 #define SAMR_FIELD_ACCOUNT_NAME ( 0x00000001 )
420 #define SAMR_FIELD_FULL_NAME ( 0x00000002 )
421 #define SAMR_FIELD_RID ( 0x00000004 )
422 #define SAMR_FIELD_PRIMARY_GID ( 0x00000008 )
423 #define SAMR_FIELD_DESCRIPTION ( 0x00000010 )
424 #define SAMR_FIELD_COMMENT ( 0x00000020 )
425 #define SAMR_FIELD_HOME_DIRECTORY ( 0x00000040 )
426 #define SAMR_FIELD_HOME_DRIVE ( 0x00000080 )
427 #define SAMR_FIELD_LOGON_SCRIPT ( 0x00000100 )
428 #define SAMR_FIELD_PROFILE_PATH ( 0x00000200 )
429 #define SAMR_FIELD_WORKSTATIONS ( 0x00000400 )
430 #define SAMR_FIELD_LAST_LOGON ( 0x00000800 )
431 #define SAMR_FIELD_LAST_LOGOFF ( 0x00001000 )
432 #define SAMR_FIELD_LOGON_HOURS ( 0x00002000 )
433 #define SAMR_FIELD_BAD_PWD_COUNT ( 0x00004000 )
434 #define SAMR_FIELD_NUM_LOGONS ( 0x00008000 )
435 #define SAMR_FIELD_ALLOW_PWD_CHANGE ( 0x00010000 )
436 #define SAMR_FIELD_FORCE_PWD_CHANGE ( 0x00020000 )
437 #define SAMR_FIELD_LAST_PWD_CHANGE ( 0x00040000 )
438 #define SAMR_FIELD_ACCT_EXPIRY ( 0x00080000 )
439 #define SAMR_FIELD_ACCT_FLAGS ( 0x00100000 )
440 #define SAMR_FIELD_PARAMETERS ( 0x00200000 )
441 #define SAMR_FIELD_COUNTRY_CODE ( 0x00400000 )
442 #define SAMR_FIELD_CODE_PAGE ( 0x00800000 )
443 #define SAMR_FIELD_PASSWORD ( 0x01000000 )
444 #define SAMR_FIELD_PASSWORD2 ( 0x02000000 )
445 #define SAMR_FIELD_PRIVATE_DATA ( 0x04000000 )
446 #define SAMR_FIELD_EXPIRED_FLAG ( 0x08000000 )
447 #define SAMR_FIELD_SEC_DESC ( 0x10000000 )
448 #define SAMR_FIELD_OWF_PWD ( 0x20000000 )
450 struct samr_UserInfo21 {
451 NTTIME last_logon;
452 NTTIME last_logoff;
453 NTTIME last_password_change;
454 NTTIME acct_expiry;
455 NTTIME allow_password_change;
456 NTTIME force_password_change;
457 struct lsa_String account_name;
458 struct lsa_String full_name;
459 struct lsa_String home_directory;
460 struct lsa_String home_drive;
461 struct lsa_String logon_script;
462 struct lsa_String profile_path;
463 struct lsa_String description;
464 struct lsa_String workstations;
465 struct lsa_String comment;
466 struct lsa_String parameters;
467 struct lsa_String unknown1;
468 struct lsa_String unknown2;
469 struct lsa_String unknown3;
470 uint32_t buf_count;
471 uint8_t *buffer;/* [unique,size_is(buf_count)] */
472 uint32_t rid;
473 uint32_t primary_gid;
474 uint32_t acct_flags;
475 uint32_t fields_present;
476 struct samr_LogonHours logon_hours;
477 uint16_t bad_password_count;
478 uint16_t logon_count;
479 uint16_t country_code;
480 uint16_t code_page;
481 uint8_t nt_password_set;
482 uint8_t lm_password_set;
483 uint8_t password_expired;
484 uint8_t unknown4;
487 struct samr_CryptPassword {
488 uint8_t data[516];
489 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
491 struct samr_UserInfo23 {
492 struct samr_UserInfo21 info;
493 struct samr_CryptPassword password;
496 struct samr_UserInfo24 {
497 struct samr_CryptPassword password;
498 uint8_t pw_len;
501 struct samr_CryptPasswordEx {
502 uint8_t data[532];
503 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
505 struct samr_UserInfo25 {
506 struct samr_UserInfo21 info;
507 struct samr_CryptPasswordEx password;
510 struct samr_UserInfo26 {
511 struct samr_CryptPasswordEx password;
512 uint8_t pw_len;
515 union samr_UserInfo {
516 struct samr_UserInfo1 info1;/* [case] */
517 struct samr_UserInfo2 info2;/* [case(2)] */
518 struct samr_UserInfo3 info3;/* [case(3)] */
519 struct samr_UserInfo4 info4;/* [case(4)] */
520 struct samr_UserInfo5 info5;/* [case(5)] */
521 struct samr_UserInfo6 info6;/* [case(6)] */
522 struct samr_UserInfo7 info7;/* [case(7)] */
523 struct samr_UserInfo8 info8;/* [case(8)] */
524 struct samr_UserInfo9 info9;/* [case(9)] */
525 struct samr_UserInfo10 info10;/* [case(10)] */
526 struct samr_UserInfo11 info11;/* [case(11)] */
527 struct samr_UserInfo12 info12;/* [case(12)] */
528 struct samr_UserInfo13 info13;/* [case(13)] */
529 struct samr_UserInfo14 info14;/* [case(14)] */
530 struct samr_UserInfo16 info16;/* [case(16)] */
531 struct samr_UserInfo17 info17;/* [case(17)] */
532 struct samr_UserInfo18 info18;/* [case(18)] */
533 struct samr_UserInfo20 info20;/* [case(20)] */
534 struct samr_UserInfo21 info21;/* [case(21)] */
535 struct samr_UserInfo23 info23;/* [case(23)] */
536 struct samr_UserInfo24 info24;/* [case(24)] */
537 struct samr_UserInfo25 info25;/* [case(25)] */
538 struct samr_UserInfo26 info26;/* [case(26)] */
539 }/* [switch_type(uint16)] */;
541 struct samr_RidWithAttribute {
542 uint32_t rid;
543 uint32_t attributes;
544 }/* [public] */;
546 struct samr_RidWithAttributeArray {
547 uint32_t count;
548 struct samr_RidWithAttribute *rids;/* [unique,size_is(count)] */
549 }/* [public] */;
551 struct samr_DispEntryGeneral {
552 uint32_t idx;
553 uint32_t rid;
554 uint32_t acct_flags;
555 struct lsa_String account_name;
556 struct lsa_String description;
557 struct lsa_String full_name;
560 struct samr_DispInfoGeneral {
561 uint32_t count;
562 struct samr_DispEntryGeneral *entries;/* [unique,size_is(count)] */
565 struct samr_DispEntryFull {
566 uint32_t idx;
567 uint32_t rid;
568 uint32_t acct_flags;
569 struct lsa_String account_name;
570 struct lsa_String description;
573 struct samr_DispInfoFull {
574 uint32_t count;
575 struct samr_DispEntryFull *entries;/* [unique,size_is(count)] */
578 struct samr_DispEntryFullGroup {
579 uint32_t idx;
580 uint32_t rid;
581 uint32_t acct_flags;
582 struct lsa_String account_name;
583 struct lsa_String description;
586 struct samr_DispInfoFullGroups {
587 uint32_t count;
588 struct samr_DispEntryFullGroup *entries;/* [unique,size_is(count)] */
591 struct samr_DispEntryAscii {
592 uint32_t idx;
593 struct lsa_AsciiString account_name;
596 struct samr_DispInfoAscii {
597 uint32_t count;
598 struct samr_DispEntryAscii *entries;/* [unique,size_is(count)] */
601 union samr_DispInfo {
602 struct samr_DispInfoGeneral info1;/* [case] */
603 struct samr_DispInfoFull info2;/* [case(2)] */
604 struct samr_DispInfoFullGroups info3;/* [case(3)] */
605 struct samr_DispInfoAscii info4;/* [case(4)] */
606 struct samr_DispInfoAscii info5;/* [case(5)] */
607 }/* [switch_type(uint16)] */;
609 struct samr_PwInfo {
610 uint16_t min_password_length;
611 uint32_t password_properties;
614 enum samr_ConnectVersion
615 #ifndef USE_UINT_ENUMS
617 SAMR_CONNECT_PRE_W2K=1,
618 SAMR_CONNECT_W2K=2,
619 SAMR_CONNECT_AFTER_W2K=3
621 #else
622 { __donnot_use_enum_samr_ConnectVersion=0x7FFFFFFF}
623 #define SAMR_CONNECT_PRE_W2K ( 1 )
624 #define SAMR_CONNECT_W2K ( 2 )
625 #define SAMR_CONNECT_AFTER_W2K ( 3 )
626 #endif
629 enum samr_RejectReason;
631 struct samr_ChangeReject {
632 enum samr_RejectReason reason;
633 uint32_t unknown1;
634 uint32_t unknown2;
637 struct samr_ConnectInfo1 {
638 enum samr_ConnectVersion client_version;
639 uint32_t unknown2;
642 union samr_ConnectInfo {
643 struct samr_ConnectInfo1 info1;/* [case] */
646 /* bitmap samr_ValidateFieldsPresent */
647 #define SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET ( 0x00000001 )
648 #define SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME ( 0x00000002 )
649 #define SAMR_VALIDATE_FIELD_LOCKOUT_TIME ( 0x00000004 )
650 #define SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT ( 0x00000008 )
651 #define SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH ( 0x00000010 )
652 #define SAMR_VALIDATE_FIELD_PASSWORD_HISTORY ( 0x00000020 )
654 enum samr_ValidatePasswordLevel
655 #ifndef USE_UINT_ENUMS
657 NetValidateAuthentication=1,
658 NetValidatePasswordChange=2,
659 NetValidatePasswordReset=3
661 #else
662 { __donnot_use_enum_samr_ValidatePasswordLevel=0x7FFFFFFF}
663 #define NetValidateAuthentication ( 1 )
664 #define NetValidatePasswordChange ( 2 )
665 #define NetValidatePasswordReset ( 3 )
666 #endif
669 enum samr_ValidationStatus
670 #ifndef USE_UINT_ENUMS
672 SAMR_VALIDATION_STATUS_SUCCESS=0,
673 SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE=1,
674 SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT=2,
675 SAMR_VALIDATION_STATUS_BAD_PASSWORD=4,
676 SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT=5,
677 SAMR_VALIDATION_STATUS_PWD_TOO_SHORT=6,
678 SAMR_VALIDATION_STATUS_PWD_TOO_LONG=7,
679 SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH=8,
680 SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT=9
682 #else
683 { __donnot_use_enum_samr_ValidationStatus=0x7FFFFFFF}
684 #define SAMR_VALIDATION_STATUS_SUCCESS ( 0 )
685 #define SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE ( 1 )
686 #define SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT ( 2 )
687 #define SAMR_VALIDATION_STATUS_BAD_PASSWORD ( 4 )
688 #define SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT ( 5 )
689 #define SAMR_VALIDATION_STATUS_PWD_TOO_SHORT ( 6 )
690 #define SAMR_VALIDATION_STATUS_PWD_TOO_LONG ( 7 )
691 #define SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH ( 8 )
692 #define SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT ( 9 )
693 #endif
696 struct samr_ValidationBlob {
697 uint32_t length;
698 uint8_t *data;/* [unique,size_is(length)] */
701 struct samr_ValidatePasswordInfo {
702 uint32_t fields_present;
703 NTTIME last_password_change;
704 NTTIME bad_password_time;
705 NTTIME lockout_time;
706 uint32_t bad_pwd_count;
707 uint32_t pwd_history_len;
708 struct samr_ValidationBlob *pwd_history;/* [unique,size_is(pwd_history_len)] */
711 struct samr_ValidatePasswordRepCtr {
712 struct samr_ValidatePasswordInfo info;
713 enum samr_ValidationStatus status;
716 union samr_ValidatePasswordRep {
717 struct samr_ValidatePasswordRepCtr ctr1;/* [case] */
718 struct samr_ValidatePasswordRepCtr ctr2;/* [case(2)] */
719 struct samr_ValidatePasswordRepCtr ctr3;/* [case(3)] */
720 }/* [switch_type(uint16)] */;
722 struct samr_ValidatePasswordReq3 {
723 struct samr_ValidatePasswordInfo info;
724 struct lsa_StringLarge password;
725 struct lsa_StringLarge account;
726 struct samr_ValidationBlob hash;
727 uint8_t pwd_must_change_at_next_logon;
728 uint8_t clear_lockout;
731 struct samr_ValidatePasswordReq2 {
732 struct samr_ValidatePasswordInfo info;
733 struct lsa_StringLarge password;
734 struct lsa_StringLarge account;
735 struct samr_ValidationBlob hash;
736 uint8_t password_matched;
739 struct samr_ValidatePasswordReq1 {
740 struct samr_ValidatePasswordInfo info;
741 uint8_t password_matched;
744 union samr_ValidatePasswordReq {
745 struct samr_ValidatePasswordReq1 req1;/* [case] */
746 struct samr_ValidatePasswordReq2 req2;/* [case(2)] */
747 struct samr_ValidatePasswordReq3 req3;/* [case(3)] */
748 }/* [switch_type(uint16)] */;
751 struct samr_Connect {
752 struct {
753 uint16_t *system_name;/* [unique] */
754 uint32_t access_mask;
755 } in;
757 struct {
758 struct policy_handle *connect_handle;/* [ref] */
759 NTSTATUS result;
760 } out;
765 struct samr_Close {
766 struct {
767 struct policy_handle *handle;/* [ref] */
768 } in;
770 struct {
771 struct policy_handle *handle;/* [ref] */
772 NTSTATUS result;
773 } out;
778 struct samr_SetSecurity {
779 struct {
780 struct policy_handle *handle;/* [ref] */
781 uint32_t sec_info;
782 struct sec_desc_buf *sdbuf;/* [ref] */
783 } in;
785 struct {
786 NTSTATUS result;
787 } out;
792 struct samr_QuerySecurity {
793 struct {
794 struct policy_handle *handle;/* [ref] */
795 uint32_t sec_info;
796 } in;
798 struct {
799 struct sec_desc_buf **sdbuf;/* [ref] */
800 NTSTATUS result;
801 } out;
806 struct samr_Shutdown {
807 struct {
808 struct policy_handle *connect_handle;/* [ref] */
809 } in;
811 struct {
812 NTSTATUS result;
813 } out;
818 struct samr_LookupDomain {
819 struct {
820 struct policy_handle *connect_handle;/* [ref] */
821 struct lsa_String *domain_name;/* [ref] */
822 } in;
824 struct {
825 struct dom_sid2 **sid;/* [ref] */
826 NTSTATUS result;
827 } out;
832 struct samr_EnumDomains {
833 struct {
834 struct policy_handle *connect_handle;/* [ref] */
835 uint32_t buf_size;
836 uint32_t *resume_handle;/* [ref] */
837 } in;
839 struct {
840 struct samr_SamArray *sam;/* [ref] */
841 uint32_t *num_entries;/* [ref] */
842 uint32_t *resume_handle;/* [ref] */
843 NTSTATUS result;
844 } out;
849 struct samr_OpenDomain {
850 struct {
851 struct policy_handle *connect_handle;/* [ref] */
852 uint32_t access_mask;
853 struct dom_sid2 *sid;/* [ref] */
854 } in;
856 struct {
857 struct policy_handle *domain_handle;/* [ref] */
858 NTSTATUS result;
859 } out;
864 struct samr_QueryDomainInfo {
865 struct {
866 struct policy_handle *domain_handle;/* [ref] */
867 uint16_t level;
868 } in;
870 struct {
871 union samr_DomainInfo **info;/* [ref,switch_is(level)] */
872 NTSTATUS result;
873 } out;
878 struct samr_SetDomainInfo {
879 struct {
880 struct policy_handle *domain_handle;/* [ref] */
881 uint16_t level;
882 union samr_DomainInfo *info;/* [ref,switch_is(level)] */
883 } in;
885 struct {
886 NTSTATUS result;
887 } out;
892 struct samr_CreateDomainGroup {
893 struct {
894 struct policy_handle *domain_handle;/* [ref] */
895 struct lsa_String *name;/* [ref] */
896 uint32_t access_mask;
897 } in;
899 struct {
900 struct policy_handle *group_handle;/* [ref] */
901 uint32_t *rid;/* [ref] */
902 NTSTATUS result;
903 } out;
908 struct samr_EnumDomainGroups {
909 struct {
910 struct policy_handle *domain_handle;/* [ref] */
911 uint32_t max_size;
912 uint32_t *resume_handle;/* [ref] */
913 } in;
915 struct {
916 struct samr_SamArray *sam;/* [ref] */
917 uint32_t *num_entries;/* [ref] */
918 uint32_t *resume_handle;/* [ref] */
919 NTSTATUS result;
920 } out;
925 struct samr_CreateUser {
926 struct {
927 struct policy_handle *domain_handle;/* [ref] */
928 struct lsa_String *account_name;/* [ref] */
929 uint32_t access_mask;
930 } in;
932 struct {
933 struct policy_handle *user_handle;/* [ref] */
934 uint32_t *rid;/* [ref] */
935 NTSTATUS result;
936 } out;
941 struct samr_EnumDomainUsers {
942 struct {
943 struct policy_handle *domain_handle;/* [ref] */
944 uint32_t acct_flags;
945 uint32_t max_size;
946 uint32_t *resume_handle;/* [ref] */
947 } in;
949 struct {
950 struct samr_SamArray **sam;/* [ref] */
951 uint32_t *num_entries;/* [ref] */
952 uint32_t *resume_handle;/* [ref] */
953 NTSTATUS result;
954 } out;
959 struct samr_CreateDomAlias {
960 struct {
961 struct policy_handle *domain_handle;/* [ref] */
962 struct lsa_String *alias_name;/* [ref] */
963 uint32_t access_mask;
964 } in;
966 struct {
967 struct policy_handle *alias_handle;/* [ref] */
968 uint32_t *rid;/* [ref] */
969 NTSTATUS result;
970 } out;
975 struct samr_EnumDomainAliases {
976 struct {
977 struct policy_handle *domain_handle;/* [ref] */
978 uint32_t acct_flags;
979 uint32_t *resume_handle;/* [ref] */
980 } in;
982 struct {
983 struct samr_SamArray *sam;/* [ref] */
984 uint32_t *num_entries;/* [ref] */
985 uint32_t *resume_handle;/* [ref] */
986 NTSTATUS result;
987 } out;
992 struct samr_GetAliasMembership {
993 struct {
994 struct policy_handle *domain_handle;/* [ref] */
995 struct lsa_SidArray *sids;/* [ref] */
996 } in;
998 struct {
999 struct samr_Ids *rids;/* [ref] */
1000 NTSTATUS result;
1001 } out;
1006 struct samr_LookupNames {
1007 struct {
1008 struct policy_handle *domain_handle;/* [ref] */
1009 uint32_t num_names;/* [range(0,1000)] */
1010 struct lsa_String *names;/* [length_is(num_names),size_is(1000)] */
1011 } in;
1013 struct {
1014 struct samr_Ids *rids;/* [ref] */
1015 struct samr_Ids *types;/* [ref] */
1016 NTSTATUS result;
1017 } out;
1022 struct samr_LookupRids {
1023 struct {
1024 struct policy_handle *domain_handle;/* [ref] */
1025 uint32_t num_rids;/* [range(0,1000)] */
1026 uint32_t *rids;/* [length_is(num_rids),size_is(1000)] */
1027 } in;
1029 struct {
1030 struct lsa_Strings *names;/* [ref] */
1031 struct samr_Ids *types;/* [ref] */
1032 NTSTATUS result;
1033 } out;
1038 struct samr_OpenGroup {
1039 struct {
1040 struct policy_handle *domain_handle;/* [ref] */
1041 uint32_t access_mask;
1042 uint32_t rid;
1043 } in;
1045 struct {
1046 struct policy_handle *group_handle;/* [ref] */
1047 NTSTATUS result;
1048 } out;
1053 struct samr_QueryGroupInfo {
1054 struct {
1055 struct policy_handle *group_handle;/* [ref] */
1056 enum samr_GroupInfoEnum level;
1057 } in;
1059 struct {
1060 union samr_GroupInfo **info;/* [ref,switch_is(level)] */
1061 NTSTATUS result;
1062 } out;
1067 struct samr_SetGroupInfo {
1068 struct {
1069 struct policy_handle *group_handle;/* [ref] */
1070 enum samr_GroupInfoEnum level;
1071 union samr_GroupInfo *info;/* [ref,switch_is(level)] */
1072 } in;
1074 struct {
1075 NTSTATUS result;
1076 } out;
1081 struct samr_AddGroupMember {
1082 struct {
1083 struct policy_handle *group_handle;/* [ref] */
1084 uint32_t rid;
1085 uint32_t flags;
1086 } in;
1088 struct {
1089 NTSTATUS result;
1090 } out;
1095 struct samr_DeleteDomainGroup {
1096 struct {
1097 struct policy_handle *group_handle;/* [ref] */
1098 } in;
1100 struct {
1101 struct policy_handle *group_handle;/* [ref] */
1102 NTSTATUS result;
1103 } out;
1108 struct samr_DeleteGroupMember {
1109 struct {
1110 struct policy_handle *group_handle;/* [ref] */
1111 uint32_t rid;
1112 } in;
1114 struct {
1115 NTSTATUS result;
1116 } out;
1121 struct samr_QueryGroupMember {
1122 struct {
1123 struct policy_handle *group_handle;/* [ref] */
1124 } in;
1126 struct {
1127 struct samr_RidTypeArray **rids;/* [ref] */
1128 NTSTATUS result;
1129 } out;
1134 struct samr_SetMemberAttributesOfGroup {
1135 struct {
1136 struct policy_handle *group_handle;/* [ref] */
1137 uint32_t unknown1;
1138 uint32_t unknown2;
1139 } in;
1141 struct {
1142 NTSTATUS result;
1143 } out;
1148 struct samr_OpenAlias {
1149 struct {
1150 struct policy_handle *domain_handle;/* [ref] */
1151 uint32_t access_mask;
1152 uint32_t rid;
1153 } in;
1155 struct {
1156 struct policy_handle *alias_handle;/* [ref] */
1157 NTSTATUS result;
1158 } out;
1163 struct samr_QueryAliasInfo {
1164 struct {
1165 struct policy_handle *alias_handle;/* [ref] */
1166 enum samr_AliasInfoEnum level;
1167 } in;
1169 struct {
1170 union samr_AliasInfo **info;/* [ref,switch_is(level)] */
1171 NTSTATUS result;
1172 } out;
1177 struct samr_SetAliasInfo {
1178 struct {
1179 struct policy_handle *alias_handle;/* [ref] */
1180 enum samr_AliasInfoEnum level;
1181 union samr_AliasInfo *info;/* [ref,switch_is(level)] */
1182 } in;
1184 struct {
1185 NTSTATUS result;
1186 } out;
1191 struct samr_DeleteDomAlias {
1192 struct {
1193 struct policy_handle *alias_handle;/* [ref] */
1194 } in;
1196 struct {
1197 struct policy_handle *alias_handle;/* [ref] */
1198 NTSTATUS result;
1199 } out;
1204 struct samr_AddAliasMember {
1205 struct {
1206 struct policy_handle *alias_handle;/* [ref] */
1207 struct dom_sid2 *sid;/* [ref] */
1208 } in;
1210 struct {
1211 NTSTATUS result;
1212 } out;
1217 struct samr_DeleteAliasMember {
1218 struct {
1219 struct policy_handle *alias_handle;/* [ref] */
1220 struct dom_sid2 *sid;/* [ref] */
1221 } in;
1223 struct {
1224 NTSTATUS result;
1225 } out;
1230 struct samr_GetMembersInAlias {
1231 struct {
1232 struct policy_handle *alias_handle;/* [ref] */
1233 } in;
1235 struct {
1236 struct lsa_SidArray *sids;/* [ref] */
1237 NTSTATUS result;
1238 } out;
1243 struct samr_OpenUser {
1244 struct {
1245 struct policy_handle *domain_handle;/* [ref] */
1246 uint32_t access_mask;
1247 uint32_t rid;
1248 } in;
1250 struct {
1251 struct policy_handle *user_handle;/* [ref] */
1252 NTSTATUS result;
1253 } out;
1258 struct samr_DeleteUser {
1259 struct {
1260 struct policy_handle *user_handle;/* [ref] */
1261 } in;
1263 struct {
1264 struct policy_handle *user_handle;/* [ref] */
1265 NTSTATUS result;
1266 } out;
1271 struct samr_QueryUserInfo {
1272 struct {
1273 struct policy_handle *user_handle;/* [ref] */
1274 uint16_t level;
1275 } in;
1277 struct {
1278 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1279 NTSTATUS result;
1280 } out;
1285 struct samr_SetUserInfo {
1286 struct {
1287 struct policy_handle *user_handle;/* [ref] */
1288 uint16_t level;
1289 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1290 } in;
1292 struct {
1293 NTSTATUS result;
1294 } out;
1299 struct samr_ChangePasswordUser {
1300 struct {
1301 struct policy_handle *user_handle;/* [ref] */
1302 uint8_t lm_present;
1303 struct samr_Password *old_lm_crypted;/* [unique] */
1304 struct samr_Password *new_lm_crypted;/* [unique] */
1305 uint8_t nt_present;
1306 struct samr_Password *old_nt_crypted;/* [unique] */
1307 struct samr_Password *new_nt_crypted;/* [unique] */
1308 uint8_t cross1_present;
1309 struct samr_Password *nt_cross;/* [unique] */
1310 uint8_t cross2_present;
1311 struct samr_Password *lm_cross;/* [unique] */
1312 } in;
1314 struct {
1315 NTSTATUS result;
1316 } out;
1321 struct samr_GetGroupsForUser {
1322 struct {
1323 struct policy_handle *user_handle;/* [ref] */
1324 } in;
1326 struct {
1327 struct samr_RidWithAttributeArray **rids;/* [ref] */
1328 NTSTATUS result;
1329 } out;
1334 struct samr_QueryDisplayInfo {
1335 struct {
1336 struct policy_handle *domain_handle;/* [ref] */
1337 uint16_t level;
1338 uint32_t start_idx;
1339 uint32_t max_entries;
1340 uint32_t buf_size;
1341 } in;
1343 struct {
1344 uint32_t *total_size;/* [ref] */
1345 uint32_t *returned_size;/* [ref] */
1346 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1347 NTSTATUS result;
1348 } out;
1353 struct samr_GetDisplayEnumerationIndex {
1354 struct {
1355 struct policy_handle *domain_handle;/* [ref] */
1356 uint16_t level;
1357 struct lsa_String name;
1358 } in;
1360 struct {
1361 uint32_t *idx;/* [ref] */
1362 NTSTATUS result;
1363 } out;
1368 struct samr_TestPrivateFunctionsDomain {
1369 struct {
1370 struct policy_handle *domain_handle;/* [ref] */
1371 } in;
1373 struct {
1374 NTSTATUS result;
1375 } out;
1380 struct samr_TestPrivateFunctionsUser {
1381 struct {
1382 struct policy_handle *user_handle;/* [ref] */
1383 } in;
1385 struct {
1386 NTSTATUS result;
1387 } out;
1392 struct samr_GetUserPwInfo {
1393 struct {
1394 struct policy_handle *user_handle;/* [ref] */
1395 } in;
1397 struct {
1398 struct samr_PwInfo *info;/* [ref] */
1399 NTSTATUS result;
1400 } out;
1405 struct samr_RemoveMemberFromForeignDomain {
1406 struct {
1407 struct policy_handle *domain_handle;/* [ref] */
1408 struct dom_sid2 *sid;/* [ref] */
1409 } in;
1411 struct {
1412 NTSTATUS result;
1413 } out;
1418 struct samr_QueryDomainInfo2 {
1419 struct {
1420 struct policy_handle *domain_handle;/* [ref] */
1421 uint16_t level;
1422 } in;
1424 struct {
1425 union samr_DomainInfo **info;/* [ref,switch_is(level)] */
1426 NTSTATUS result;
1427 } out;
1432 struct samr_QueryUserInfo2 {
1433 struct {
1434 struct policy_handle *user_handle;/* [ref] */
1435 uint16_t level;
1436 } in;
1438 struct {
1439 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1440 NTSTATUS result;
1441 } out;
1446 struct samr_QueryDisplayInfo2 {
1447 struct {
1448 struct policy_handle *domain_handle;/* [ref] */
1449 uint16_t level;
1450 uint32_t start_idx;
1451 uint32_t max_entries;
1452 uint32_t buf_size;
1453 } in;
1455 struct {
1456 uint32_t *total_size;/* [ref] */
1457 uint32_t *returned_size;/* [ref] */
1458 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1459 NTSTATUS result;
1460 } out;
1465 struct samr_GetDisplayEnumerationIndex2 {
1466 struct {
1467 struct policy_handle *domain_handle;/* [ref] */
1468 uint16_t level;
1469 struct lsa_String name;
1470 } in;
1472 struct {
1473 uint32_t *idx;/* [ref] */
1474 NTSTATUS result;
1475 } out;
1480 struct samr_CreateUser2 {
1481 struct {
1482 struct policy_handle *domain_handle;/* [ref] */
1483 struct lsa_String *account_name;/* [ref] */
1484 uint32_t acct_flags;
1485 uint32_t access_mask;
1486 } in;
1488 struct {
1489 struct policy_handle *user_handle;/* [ref] */
1490 uint32_t *access_granted;/* [ref] */
1491 uint32_t *rid;/* [ref] */
1492 NTSTATUS result;
1493 } out;
1498 struct samr_QueryDisplayInfo3 {
1499 struct {
1500 struct policy_handle *domain_handle;/* [ref] */
1501 uint16_t level;
1502 uint32_t start_idx;
1503 uint32_t max_entries;
1504 uint32_t buf_size;
1505 } in;
1507 struct {
1508 uint32_t *total_size;/* [ref] */
1509 uint32_t *returned_size;/* [ref] */
1510 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1511 NTSTATUS result;
1512 } out;
1517 struct samr_AddMultipleMembersToAlias {
1518 struct {
1519 struct policy_handle *alias_handle;/* [ref] */
1520 struct lsa_SidArray *sids;/* [ref] */
1521 } in;
1523 struct {
1524 NTSTATUS result;
1525 } out;
1530 struct samr_RemoveMultipleMembersFromAlias {
1531 struct {
1532 struct policy_handle *alias_handle;/* [ref] */
1533 struct lsa_SidArray *sids;/* [ref] */
1534 } in;
1536 struct {
1537 NTSTATUS result;
1538 } out;
1543 struct samr_OemChangePasswordUser2 {
1544 struct {
1545 struct lsa_AsciiString *server;/* [unique] */
1546 struct lsa_AsciiString *account;/* [ref] */
1547 struct samr_CryptPassword *password;/* [unique] */
1548 struct samr_Password *hash;/* [unique] */
1549 } in;
1551 struct {
1552 NTSTATUS result;
1553 } out;
1558 struct samr_ChangePasswordUser2 {
1559 struct {
1560 struct lsa_String *server;/* [unique] */
1561 struct lsa_String *account;/* [ref] */
1562 struct samr_CryptPassword *nt_password;/* [unique] */
1563 struct samr_Password *nt_verifier;/* [unique] */
1564 uint8_t lm_change;
1565 struct samr_CryptPassword *lm_password;/* [unique] */
1566 struct samr_Password *lm_verifier;/* [unique] */
1567 } in;
1569 struct {
1570 NTSTATUS result;
1571 } out;
1576 struct samr_GetDomPwInfo {
1577 struct {
1578 struct lsa_String *domain_name;/* [unique] */
1579 } in;
1581 struct {
1582 struct samr_PwInfo *info;/* [ref] */
1583 NTSTATUS result;
1584 } out;
1589 struct samr_Connect2 {
1590 struct {
1591 const char *system_name;/* [unique,charset(UTF16)] */
1592 uint32_t access_mask;
1593 } in;
1595 struct {
1596 struct policy_handle *connect_handle;/* [ref] */
1597 NTSTATUS result;
1598 } out;
1603 struct samr_SetUserInfo2 {
1604 struct {
1605 struct policy_handle *user_handle;/* [ref] */
1606 uint16_t level;
1607 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1608 } in;
1610 struct {
1611 NTSTATUS result;
1612 } out;
1617 struct samr_SetBootKeyInformation {
1618 struct {
1619 struct policy_handle *connect_handle;/* [ref] */
1620 uint32_t unknown1;
1621 uint32_t unknown2;
1622 uint32_t unknown3;
1623 } in;
1625 struct {
1626 NTSTATUS result;
1627 } out;
1632 struct samr_GetBootKeyInformation {
1633 struct {
1634 struct policy_handle *domain_handle;/* [ref] */
1635 } in;
1637 struct {
1638 uint32_t *unknown;/* [ref] */
1639 NTSTATUS result;
1640 } out;
1645 struct samr_Connect3 {
1646 struct {
1647 const char *system_name;/* [unique,charset(UTF16)] */
1648 uint32_t unknown;
1649 uint32_t access_mask;
1650 } in;
1652 struct {
1653 struct policy_handle *connect_handle;/* [ref] */
1654 NTSTATUS result;
1655 } out;
1660 struct samr_Connect4 {
1661 struct {
1662 const char *system_name;/* [unique,charset(UTF16)] */
1663 enum samr_ConnectVersion client_version;
1664 uint32_t access_mask;
1665 } in;
1667 struct {
1668 struct policy_handle *connect_handle;/* [ref] */
1669 NTSTATUS result;
1670 } out;
1675 struct samr_ChangePasswordUser3 {
1676 struct {
1677 struct lsa_String *server;/* [unique] */
1678 struct lsa_String *account;/* [ref] */
1679 struct samr_CryptPassword *nt_password;/* [unique] */
1680 struct samr_Password *nt_verifier;/* [unique] */
1681 uint8_t lm_change;
1682 struct samr_CryptPassword *lm_password;/* [unique] */
1683 struct samr_Password *lm_verifier;/* [unique] */
1684 struct samr_CryptPassword *password3;/* [unique] */
1685 } in;
1687 struct {
1688 struct samr_DomInfo1 **dominfo;/* [ref] */
1689 struct samr_ChangeReject **reject;/* [ref] */
1690 NTSTATUS result;
1691 } out;
1696 struct samr_Connect5 {
1697 struct {
1698 const char *system_name;/* [unique,charset(UTF16)] */
1699 uint32_t access_mask;
1700 uint32_t level_in;
1701 union samr_ConnectInfo *info_in;/* [ref,switch_is(level_in)] */
1702 } in;
1704 struct {
1705 uint32_t *level_out;/* [ref] */
1706 union samr_ConnectInfo *info_out;/* [ref,switch_is(*level_out)] */
1707 struct policy_handle *connect_handle;/* [ref] */
1708 NTSTATUS result;
1709 } out;
1714 struct samr_RidToSid {
1715 struct {
1716 struct policy_handle *domain_handle;/* [ref] */
1717 uint32_t rid;
1718 } in;
1720 struct {
1721 struct dom_sid2 *sid;/* [ref] */
1722 NTSTATUS result;
1723 } out;
1728 struct samr_SetDsrmPassword {
1729 struct {
1730 struct lsa_String *name;/* [unique] */
1731 uint32_t unknown;
1732 struct samr_Password *hash;/* [unique] */
1733 } in;
1735 struct {
1736 NTSTATUS result;
1737 } out;
1742 struct samr_ValidatePassword {
1743 struct {
1744 enum samr_ValidatePasswordLevel level;
1745 union samr_ValidatePasswordReq req;/* [switch_is(level)] */
1746 } in;
1748 struct {
1749 union samr_ValidatePasswordRep *rep;/* [ref,switch_is(level)] */
1750 NTSTATUS result;
1751 } out;
1755 #endif /* _HEADER_samr */