Merge branch 'v3-2-test' of ssh://git.samba.org/data/git/samba into v3-2-test
[samba.git] / source3 / librpc / gen_ndr / samr.h
1 /* header auto-generated by pidl */
2
3 #include <stdint.h>
4
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
10
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 )
32
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 )
40
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 )
53
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 )
66
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 )
73
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 )
80
81 struct samr_SamEntry {
82         uint32_t idx;
83         struct lsa_String name;
84 };
85
86 struct samr_SamArray {
87         uint32_t count;
88         struct samr_SamEntry *entries;/* [unique,size_is(count)] */
89 };
90
91 enum samr_Role
92 #ifndef USE_UINT_ENUMS
93  {
94         SAMR_ROLE_STANDALONE=0,
95         SAMR_ROLE_DOMAIN_MEMBER=1,
96         SAMR_ROLE_DOMAIN_BDC=2,
97         SAMR_ROLE_DOMAIN_PDC=3
98 }
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
106 ;
107
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 )
115
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;
122 };
123
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;
136 };
137
138 struct samr_DomInfo3 {
139         NTTIME force_logoff_time;
140 };
141
142 struct samr_DomInfo4 {
143         struct lsa_String comment;
144 };
145
146 struct samr_DomInfo5 {
147         struct lsa_String domain_name;
148 };
149
150 struct samr_DomInfo6 {
151         struct lsa_String primary;
152 };
153
154 struct samr_DomInfo7 {
155         enum samr_Role role;
156 };
157
158 struct samr_DomInfo8 {
159         uint64_t sequence_num;
160         NTTIME domain_create_time;
161 };
162
163 struct samr_DomInfo9 {
164         uint32_t unknown;
165 };
166
167 struct samr_DomInfo11 {
168         struct samr_DomInfo2 info2;
169         uint64_t lockout_duration;
170         uint64_t lockout_window;
171         uint16_t lockout_threshold;
172 };
173
174 struct samr_DomInfo12 {
175         uint64_t lockout_duration;
176         uint64_t lockout_window;
177         uint16_t lockout_threshold;
178 };
179
180 struct samr_DomInfo13 {
181         uint64_t sequence_num;
182         NTTIME domain_create_time;
183         uint32_t unknown1;
184         uint32_t unknown2;
185 };
186
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)] */;
201
202 struct samr_Ids {
203         uint32_t count;/* [range(0 1024)] */
204         uint32_t *ids;/* [unique,size_is(count)] */
205 };
206
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 )
215
216 struct samr_GroupInfoAll {
217         struct lsa_String name;
218         uint32_t attributes;
219         uint32_t num_members;
220         struct lsa_String description;
221 };
222
223 struct samr_GroupInfoAttributes {
224         uint32_t attributes;
225 };
226
227 struct samr_GroupInfoDescription {
228         struct lsa_String description;
229 };
230
231 enum samr_GroupInfoEnum
232 #ifndef USE_UINT_ENUMS
233  {
234         GROUPINFOALL=1,
235         GROUPINFONAME=2,
236         GROUPINFOATTRIBUTES=3,
237         GROUPINFODESCRIPTION=4,
238         GROUPINFOALL2=5
239 }
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
248 ;
249
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)] */;
257
258 struct samr_RidTypeArray {
259         uint32_t count;
260         uint32_t *rids;/* [unique,size_is(count)] */
261         uint32_t *types;/* [unique,size_is(count)] */
262 };
263
264 struct samr_AliasInfoAll {
265         struct lsa_String name;
266         uint32_t num_members;
267         struct lsa_String description;
268 };
269
270 enum samr_AliasInfoEnum
271 #ifndef USE_UINT_ENUMS
272  {
273         ALIASINFOALL=1,
274         ALIASINFONAME=2,
275         ALIASINFODESCRIPTION=3
276 }
277 #else
278  { __donnot_use_enum_samr_AliasInfoEnum=0x7FFFFFFF}
279 #define ALIASINFOALL ( 1 )
280 #define ALIASINFONAME ( 2 )
281 #define ALIASINFODESCRIPTION ( 3 )
282 #endif
283 ;
284
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)] */;
290
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;
297 };
298
299 struct samr_UserInfo2 {
300         struct lsa_String comment;
301         struct lsa_String unknown;
302         uint16_t country_code;
303         uint16_t code_page;
304 };
305
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)] */;
310
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;
330 };
331
332 struct samr_UserInfo4 {
333         struct samr_LogonHours logon_hours;
334 };
335
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;
355 };
356
357 struct samr_UserInfo6 {
358         struct lsa_String account_name;
359         struct lsa_String full_name;
360 };
361
362 struct samr_UserInfo7 {
363         struct lsa_String account_name;
364 };
365
366 struct samr_UserInfo8 {
367         struct lsa_String full_name;
368 };
369
370 struct samr_UserInfo9 {
371         uint32_t primary_gid;
372 };
373
374 struct samr_UserInfo10 {
375         struct lsa_String home_directory;
376         struct lsa_String home_drive;
377 };
378
379 struct samr_UserInfo11 {
380         struct lsa_String logon_script;
381 };
382
383 struct samr_UserInfo12 {
384         struct lsa_String profile_path;
385 };
386
387 struct samr_UserInfo13 {
388         struct lsa_String description;
389 };
390
391 struct samr_UserInfo14 {
392         struct lsa_String workstations;
393 };
394
395 struct samr_UserInfo16 {
396         uint32_t acct_flags;
397 };
398
399 struct samr_UserInfo17 {
400         NTTIME acct_expiry;
401 };
402
403 struct samr_UserInfo20 {
404         struct lsa_String parameters;
405 };
406
407 /* bitmap samr_FieldsPresent */
408 #define SAMR_FIELD_ACCOUNT_NAME ( 0x00000001 )
409 #define SAMR_FIELD_FULL_NAME ( 0x00000002 )
410 #define SAMR_FIELD_RID ( 0x00000004 )
411 #define SAMR_FIELD_PRIMARY_GID ( 0x00000008 )
412 #define SAMR_FIELD_DESCRIPTION ( 0x00000010 )
413 #define SAMR_FIELD_COMMENT ( 0x00000020 )
414 #define SAMR_FIELD_HOME_DIRECTORY ( 0x00000040 )
415 #define SAMR_FIELD_HOME_DRIVE ( 0x00000080 )
416 #define SAMR_FIELD_LOGON_SCRIPT ( 0x00000100 )
417 #define SAMR_FIELD_PROFILE_PATH ( 0x00000200 )
418 #define SAMR_FIELD_WORKSTATIONS ( 0x00000400 )
419 #define SAMR_FIELD_LAST_LOGON ( 0x00000800 )
420 #define SAMR_FIELD_LAST_LOGOFF ( 0x00001000 )
421 #define SAMR_FIELD_LOGON_HOURS ( 0x00002000 )
422 #define SAMR_FIELD_BAD_PWD_COUNT ( 0x00004000 )
423 #define SAMR_FIELD_NUM_LOGONS ( 0x00008000 )
424 #define SAMR_FIELD_ALLOW_PWD_CHANGE ( 0x00010000 )
425 #define SAMR_FIELD_FORCE_PWD_CHANGE ( 0x00020000 )
426 #define SAMR_FIELD_LAST_PWD_CHANGE ( 0x00040000 )
427 #define SAMR_FIELD_ACCT_EXPIRY ( 0x00080000 )
428 #define SAMR_FIELD_ACCT_FLAGS ( 0x00100000 )
429 #define SAMR_FIELD_PARAMETERS ( 0x00200000 )
430 #define SAMR_FIELD_COUNTRY_CODE ( 0x00400000 )
431 #define SAMR_FIELD_CODE_PAGE ( 0x00800000 )
432 #define SAMR_FIELD_PASSWORD ( 0x01000000 )
433 #define SAMR_FIELD_PASSWORD2 ( 0x02000000 )
434 #define SAMR_FIELD_PRIVATE_DATA ( 0x04000000 )
435 #define SAMR_FIELD_EXPIRED_FLAG ( 0x08000000 )
436 #define SAMR_FIELD_SEC_DESC ( 0x10000000 )
437 #define SAMR_FIELD_OWF_PWD ( 0x20000000 )
438
439 struct samr_UserInfo21 {
440         NTTIME last_logon;
441         NTTIME last_logoff;
442         NTTIME last_password_change;
443         NTTIME acct_expiry;
444         NTTIME allow_password_change;
445         NTTIME force_password_change;
446         struct lsa_String account_name;
447         struct lsa_String full_name;
448         struct lsa_String home_directory;
449         struct lsa_String home_drive;
450         struct lsa_String logon_script;
451         struct lsa_String profile_path;
452         struct lsa_String description;
453         struct lsa_String workstations;
454         struct lsa_String comment;
455         struct lsa_String parameters;
456         struct lsa_String unknown1;
457         struct lsa_String unknown2;
458         struct lsa_String unknown3;
459         uint32_t buf_count;
460         uint8_t *buffer;/* [unique,size_is(buf_count)] */
461         uint32_t rid;
462         uint32_t primary_gid;
463         uint32_t acct_flags;
464         uint32_t fields_present;
465         struct samr_LogonHours logon_hours;
466         uint16_t bad_password_count;
467         uint16_t logon_count;
468         uint16_t country_code;
469         uint16_t code_page;
470         uint8_t nt_password_set;
471         uint8_t lm_password_set;
472         uint8_t password_expired;
473         uint8_t unknown4;
474 };
475
476 struct samr_CryptPassword {
477         uint8_t data[516];
478 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
479
480 struct samr_UserInfo23 {
481         struct samr_UserInfo21 info;
482         struct samr_CryptPassword password;
483 };
484
485 struct samr_UserInfo24 {
486         struct samr_CryptPassword password;
487         uint8_t pw_len;
488 };
489
490 struct samr_CryptPasswordEx {
491         uint8_t data[532];
492 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
493
494 struct samr_UserInfo25 {
495         struct samr_UserInfo21 info;
496         struct samr_CryptPasswordEx password;
497 };
498
499 struct samr_UserInfo26 {
500         struct samr_CryptPasswordEx password;
501         uint8_t pw_len;
502 };
503
504 union samr_UserInfo {
505         struct samr_UserInfo1 info1;/* [case] */
506         struct samr_UserInfo2 info2;/* [case(2)] */
507         struct samr_UserInfo3 info3;/* [case(3)] */
508         struct samr_UserInfo4 info4;/* [case(4)] */
509         struct samr_UserInfo5 info5;/* [case(5)] */
510         struct samr_UserInfo6 info6;/* [case(6)] */
511         struct samr_UserInfo7 info7;/* [case(7)] */
512         struct samr_UserInfo8 info8;/* [case(8)] */
513         struct samr_UserInfo9 info9;/* [case(9)] */
514         struct samr_UserInfo10 info10;/* [case(10)] */
515         struct samr_UserInfo11 info11;/* [case(11)] */
516         struct samr_UserInfo12 info12;/* [case(12)] */
517         struct samr_UserInfo13 info13;/* [case(13)] */
518         struct samr_UserInfo14 info14;/* [case(14)] */
519         struct samr_UserInfo16 info16;/* [case(16)] */
520         struct samr_UserInfo17 info17;/* [case(17)] */
521         struct samr_UserInfo20 info20;/* [case(20)] */
522         struct samr_UserInfo21 info21;/* [case(21)] */
523         struct samr_UserInfo23 info23;/* [case(23)] */
524         struct samr_UserInfo24 info24;/* [case(24)] */
525         struct samr_UserInfo25 info25;/* [case(25)] */
526         struct samr_UserInfo26 info26;/* [case(26)] */
527 }/* [switch_type(uint16)] */;
528
529 struct samr_Password {
530         uint8_t hash[16];
531 }/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
532
533 struct samr_RidWithAttribute {
534         uint32_t rid;
535         uint32_t attributes;
536 }/* [public] */;
537
538 struct samr_RidWithAttributeArray {
539         uint32_t count;
540         struct samr_RidWithAttribute *rids;/* [unique,size_is(count)] */
541 }/* [public] */;
542
543 struct samr_DispEntryGeneral {
544         uint32_t idx;
545         uint32_t rid;
546         uint32_t acct_flags;
547         struct lsa_String account_name;
548         struct lsa_String description;
549         struct lsa_String full_name;
550 };
551
552 struct samr_DispInfoGeneral {
553         uint32_t count;
554         struct samr_DispEntryGeneral *entries;/* [unique,size_is(count)] */
555 };
556
557 struct samr_DispEntryFull {
558         uint32_t idx;
559         uint32_t rid;
560         uint32_t acct_flags;
561         struct lsa_String account_name;
562         struct lsa_String description;
563 };
564
565 struct samr_DispInfoFull {
566         uint32_t count;
567         struct samr_DispEntryFull *entries;/* [unique,size_is(count)] */
568 };
569
570 struct samr_DispEntryFullGroup {
571         uint32_t idx;
572         uint32_t rid;
573         uint32_t acct_flags;
574         struct lsa_String account_name;
575         struct lsa_String description;
576 };
577
578 struct samr_DispInfoFullGroups {
579         uint32_t count;
580         struct samr_DispEntryFullGroup *entries;/* [unique,size_is(count)] */
581 };
582
583 struct samr_DispEntryAscii {
584         uint32_t idx;
585         struct lsa_AsciiString account_name;
586 };
587
588 struct samr_DispInfoAscii {
589         uint32_t count;
590         struct samr_DispEntryAscii *entries;/* [unique,size_is(count)] */
591 };
592
593 union samr_DispInfo {
594         struct samr_DispInfoGeneral info1;/* [case] */
595         struct samr_DispInfoFull info2;/* [case(2)] */
596         struct samr_DispInfoFullGroups info3;/* [case(3)] */
597         struct samr_DispInfoAscii info4;/* [case(4)] */
598         struct samr_DispInfoAscii info5;/* [case(5)] */
599 }/* [switch_type(uint16)] */;
600
601 struct samr_PwInfo {
602         uint16_t min_password_length;
603         uint32_t password_properties;
604 };
605
606 enum samr_RejectReason;
607
608 struct samr_ChangeReject {
609         enum samr_RejectReason reason;
610         uint32_t unknown1;
611         uint32_t unknown2;
612 };
613
614 struct samr_ConnectInfo1 {
615         uint32_t unknown1;
616         uint32_t unknown2;
617 };
618
619 union samr_ConnectInfo {
620         struct samr_ConnectInfo1 info1;/* [case] */
621 };
622
623 /* bitmap samr_ValidateFieldsPresent */
624 #define SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET ( 0x00000001 )
625 #define SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME ( 0x00000002 )
626 #define SAMR_VALIDATE_FIELD_LOCKOUT_TIME ( 0x00000004 )
627 #define SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT ( 0x00000008 )
628 #define SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH ( 0x00000010 )
629 #define SAMR_VALIDATE_FIELD_PASSWORD_HISTORY ( 0x00000020 )
630
631 enum samr_ValidatePasswordLevel
632 #ifndef USE_UINT_ENUMS
633  {
634         NetValidateAuthentication=1,
635         NetValidatePasswordChange=2,
636         NetValidatePasswordReset=3
637 }
638 #else
639  { __donnot_use_enum_samr_ValidatePasswordLevel=0x7FFFFFFF}
640 #define NetValidateAuthentication ( 1 )
641 #define NetValidatePasswordChange ( 2 )
642 #define NetValidatePasswordReset ( 3 )
643 #endif
644 ;
645
646 enum samr_ValidationStatus
647 #ifndef USE_UINT_ENUMS
648  {
649         SAMR_VALIDATION_STATUS_SUCCESS=0,
650         SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE=1,
651         SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT=2,
652         SAMR_VALIDATION_STATUS_BAD_PASSWORD=4,
653         SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT=5,
654         SAMR_VALIDATION_STATUS_PWD_TOO_SHORT=6,
655         SAMR_VALIDATION_STATUS_PWD_TOO_LONG=7,
656         SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH=8,
657         SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT=9
658 }
659 #else
660  { __donnot_use_enum_samr_ValidationStatus=0x7FFFFFFF}
661 #define SAMR_VALIDATION_STATUS_SUCCESS ( 0 )
662 #define SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE ( 1 )
663 #define SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT ( 2 )
664 #define SAMR_VALIDATION_STATUS_BAD_PASSWORD ( 4 )
665 #define SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT ( 5 )
666 #define SAMR_VALIDATION_STATUS_PWD_TOO_SHORT ( 6 )
667 #define SAMR_VALIDATION_STATUS_PWD_TOO_LONG ( 7 )
668 #define SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH ( 8 )
669 #define SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT ( 9 )
670 #endif
671 ;
672
673 struct samr_ValidationBlob {
674         uint32_t length;
675         uint8_t *data;/* [unique,size_is(length)] */
676 };
677
678 struct samr_ValidatePasswordInfo {
679         uint32_t fields_present;
680         NTTIME last_password_change;
681         NTTIME bad_password_time;
682         NTTIME lockout_time;
683         uint32_t bad_pwd_count;
684         uint32_t pwd_history_len;
685         struct samr_ValidationBlob *pwd_history;/* [unique,size_is(pwd_history_len)] */
686 };
687
688 struct samr_ValidatePasswordRepCtr {
689         struct samr_ValidatePasswordInfo info;
690         enum samr_ValidationStatus status;
691 };
692
693 union samr_ValidatePasswordRep {
694         struct samr_ValidatePasswordRepCtr ctr1;/* [case] */
695         struct samr_ValidatePasswordRepCtr ctr2;/* [case(2)] */
696         struct samr_ValidatePasswordRepCtr ctr3;/* [case(3)] */
697 }/* [switch_type(uint16)] */;
698
699 struct samr_ValidatePasswordReq3 {
700         struct samr_ValidatePasswordInfo info;
701         struct lsa_StringLarge password;
702         struct lsa_StringLarge account;
703         struct samr_ValidationBlob hash;
704         uint8_t pwd_must_change_at_next_logon;
705         uint8_t clear_lockout;
706 };
707
708 struct samr_ValidatePasswordReq2 {
709         struct samr_ValidatePasswordInfo info;
710         struct lsa_StringLarge password;
711         struct lsa_StringLarge account;
712         struct samr_ValidationBlob hash;
713         uint8_t password_matched;
714 };
715
716 struct samr_ValidatePasswordReq1 {
717         struct samr_ValidatePasswordInfo info;
718         uint8_t password_matched;
719 };
720
721 union samr_ValidatePasswordReq {
722         struct samr_ValidatePasswordReq1 req1;/* [case] */
723         struct samr_ValidatePasswordReq2 req2;/* [case(2)] */
724         struct samr_ValidatePasswordReq3 req3;/* [case(3)] */
725 }/* [switch_type(uint16)] */;
726
727
728 struct samr_Connect {
729         struct {
730                 uint16_t *system_name;/* [unique] */
731                 uint32_t access_mask;
732         } in;
733
734         struct {
735                 struct policy_handle *connect_handle;/* [ref] */
736                 NTSTATUS result;
737         } out;
738
739 };
740
741
742 struct samr_Close {
743         struct {
744                 struct policy_handle *handle;/* [ref] */
745         } in;
746
747         struct {
748                 struct policy_handle *handle;/* [ref] */
749                 NTSTATUS result;
750         } out;
751
752 };
753
754
755 struct samr_SetSecurity {
756         struct {
757                 struct policy_handle *handle;/* [ref] */
758                 uint32_t sec_info;
759                 struct sec_desc_buf *sdbuf;/* [ref] */
760         } in;
761
762         struct {
763                 NTSTATUS result;
764         } out;
765
766 };
767
768
769 struct samr_QuerySecurity {
770         struct {
771                 struct policy_handle *handle;/* [ref] */
772                 uint32_t sec_info;
773         } in;
774
775         struct {
776                 struct sec_desc_buf *sdbuf;/* [ref] */
777                 NTSTATUS result;
778         } out;
779
780 };
781
782
783 struct samr_Shutdown {
784         struct {
785                 struct policy_handle *connect_handle;/* [ref] */
786         } in;
787
788         struct {
789                 NTSTATUS result;
790         } out;
791
792 };
793
794
795 struct samr_LookupDomain {
796         struct {
797                 struct policy_handle *connect_handle;/* [ref] */
798                 struct lsa_String *domain_name;/* [ref] */
799         } in;
800
801         struct {
802                 struct dom_sid2 *sid;/* [ref] */
803                 NTSTATUS result;
804         } out;
805
806 };
807
808
809 struct samr_EnumDomains {
810         struct {
811                 struct policy_handle *connect_handle;/* [ref] */
812                 uint32_t buf_size;
813                 uint32_t *resume_handle;/* [ref] */
814         } in;
815
816         struct {
817                 struct samr_SamArray *sam;/* [ref] */
818                 uint32_t *num_entries;/* [ref] */
819                 uint32_t *resume_handle;/* [ref] */
820                 NTSTATUS result;
821         } out;
822
823 };
824
825
826 struct samr_OpenDomain {
827         struct {
828                 struct policy_handle *connect_handle;/* [ref] */
829                 uint32_t access_mask;
830                 struct dom_sid2 *sid;/* [ref] */
831         } in;
832
833         struct {
834                 struct policy_handle *domain_handle;/* [ref] */
835                 NTSTATUS result;
836         } out;
837
838 };
839
840
841 struct samr_QueryDomainInfo {
842         struct {
843                 struct policy_handle *domain_handle;/* [ref] */
844                 uint16_t level;
845         } in;
846
847         struct {
848                 union samr_DomainInfo *info;/* [ref,switch_is(level)] */
849                 NTSTATUS result;
850         } out;
851
852 };
853
854
855 struct samr_SetDomainInfo {
856         struct {
857                 struct policy_handle *domain_handle;/* [ref] */
858                 uint16_t level;
859                 union samr_DomainInfo *info;/* [ref,switch_is(level)] */
860         } in;
861
862         struct {
863                 NTSTATUS result;
864         } out;
865
866 };
867
868
869 struct samr_CreateDomainGroup {
870         struct {
871                 struct policy_handle *domain_handle;/* [ref] */
872                 struct lsa_String *name;/* [ref] */
873                 uint32_t access_mask;
874         } in;
875
876         struct {
877                 struct policy_handle *group_handle;/* [ref] */
878                 uint32_t *rid;/* [ref] */
879                 NTSTATUS result;
880         } out;
881
882 };
883
884
885 struct samr_EnumDomainGroups {
886         struct {
887                 struct policy_handle *domain_handle;/* [ref] */
888                 uint32_t max_size;
889                 uint32_t *resume_handle;/* [ref] */
890         } in;
891
892         struct {
893                 struct samr_SamArray *sam;/* [ref] */
894                 uint32_t *num_entries;/* [ref] */
895                 uint32_t *resume_handle;/* [ref] */
896                 NTSTATUS result;
897         } out;
898
899 };
900
901
902 struct samr_CreateUser {
903         struct {
904                 struct policy_handle *domain_handle;/* [ref] */
905                 struct lsa_String *account_name;/* [ref] */
906                 uint32_t access_mask;
907         } in;
908
909         struct {
910                 struct policy_handle *user_handle;/* [ref] */
911                 uint32_t *rid;/* [ref] */
912                 NTSTATUS result;
913         } out;
914
915 };
916
917
918 struct samr_EnumDomainUsers {
919         struct {
920                 struct policy_handle *domain_handle;/* [ref] */
921                 uint32_t acct_flags;
922                 uint32_t max_size;
923                 uint32_t *resume_handle;/* [ref] */
924         } in;
925
926         struct {
927                 struct samr_SamArray *sam;/* [unique] */
928                 uint32_t *num_entries;/* [ref] */
929                 uint32_t *resume_handle;/* [ref] */
930                 NTSTATUS result;
931         } out;
932
933 };
934
935
936 struct samr_CreateDomAlias {
937         struct {
938                 struct policy_handle *domain_handle;/* [ref] */
939                 struct lsa_String *alias_name;/* [ref] */
940                 uint32_t access_mask;
941         } in;
942
943         struct {
944                 struct policy_handle *alias_handle;/* [ref] */
945                 uint32_t *rid;/* [ref] */
946                 NTSTATUS result;
947         } out;
948
949 };
950
951
952 struct samr_EnumDomainAliases {
953         struct {
954                 struct policy_handle *domain_handle;/* [ref] */
955                 uint32_t acct_flags;
956                 uint32_t *resume_handle;/* [ref] */
957         } in;
958
959         struct {
960                 struct samr_SamArray *sam;/* [ref] */
961                 uint32_t *num_entries;/* [ref] */
962                 uint32_t *resume_handle;/* [ref] */
963                 NTSTATUS result;
964         } out;
965
966 };
967
968
969 struct samr_GetAliasMembership {
970         struct {
971                 struct policy_handle *domain_handle;/* [ref] */
972                 struct lsa_SidArray *sids;/* [ref] */
973         } in;
974
975         struct {
976                 struct samr_Ids *rids;/* [ref] */
977                 NTSTATUS result;
978         } out;
979
980 };
981
982
983 struct samr_LookupNames {
984         struct {
985                 struct policy_handle *domain_handle;/* [ref] */
986                 uint32_t num_names;/* [range(0 1000)] */
987                 struct lsa_String *names;/* [length_is(num_names),size_is(1000)] */
988         } in;
989
990         struct {
991                 struct samr_Ids *rids;/* [ref] */
992                 struct samr_Ids *types;/* [ref] */
993                 NTSTATUS result;
994         } out;
995
996 };
997
998
999 struct samr_LookupRids {
1000         struct {
1001                 struct policy_handle *domain_handle;/* [ref] */
1002                 uint32_t num_rids;/* [range(0 1000)] */
1003                 uint32_t *rids;/* [length_is(num_rids),size_is(1000)] */
1004         } in;
1005
1006         struct {
1007                 struct lsa_Strings *names;/* [ref] */
1008                 struct samr_Ids *types;/* [ref] */
1009                 NTSTATUS result;
1010         } out;
1011
1012 };
1013
1014
1015 struct samr_OpenGroup {
1016         struct {
1017                 struct policy_handle *domain_handle;/* [ref] */
1018                 uint32_t access_mask;
1019                 uint32_t rid;
1020         } in;
1021
1022         struct {
1023                 struct policy_handle *group_handle;/* [ref] */
1024                 NTSTATUS result;
1025         } out;
1026
1027 };
1028
1029
1030 struct samr_QueryGroupInfo {
1031         struct {
1032                 struct policy_handle *group_handle;/* [ref] */
1033                 enum samr_GroupInfoEnum level;
1034         } in;
1035
1036         struct {
1037                 union samr_GroupInfo *info;/* [ref,switch_is(level)] */
1038                 NTSTATUS result;
1039         } out;
1040
1041 };
1042
1043
1044 struct samr_SetGroupInfo {
1045         struct {
1046                 struct policy_handle *group_handle;/* [ref] */
1047                 enum samr_GroupInfoEnum level;
1048                 union samr_GroupInfo *info;/* [ref,switch_is(level)] */
1049         } in;
1050
1051         struct {
1052                 NTSTATUS result;
1053         } out;
1054
1055 };
1056
1057
1058 struct samr_AddGroupMember {
1059         struct {
1060                 struct policy_handle *group_handle;/* [ref] */
1061                 uint32_t rid;
1062                 uint32_t flags;
1063         } in;
1064
1065         struct {
1066                 NTSTATUS result;
1067         } out;
1068
1069 };
1070
1071
1072 struct samr_DeleteDomainGroup {
1073         struct {
1074                 struct policy_handle *group_handle;/* [ref] */
1075         } in;
1076
1077         struct {
1078                 struct policy_handle *group_handle;/* [ref] */
1079                 NTSTATUS result;
1080         } out;
1081
1082 };
1083
1084
1085 struct samr_DeleteGroupMember {
1086         struct {
1087                 struct policy_handle *group_handle;/* [ref] */
1088                 uint32_t rid;
1089         } in;
1090
1091         struct {
1092                 NTSTATUS result;
1093         } out;
1094
1095 };
1096
1097
1098 struct samr_QueryGroupMember {
1099         struct {
1100                 struct policy_handle *group_handle;/* [ref] */
1101         } in;
1102
1103         struct {
1104                 struct samr_RidTypeArray *rids;/* [ref] */
1105                 NTSTATUS result;
1106         } out;
1107
1108 };
1109
1110
1111 struct samr_SetMemberAttributesOfGroup {
1112         struct {
1113                 struct policy_handle *group_handle;/* [ref] */
1114                 uint32_t unknown1;
1115                 uint32_t unknown2;
1116         } in;
1117
1118         struct {
1119                 NTSTATUS result;
1120         } out;
1121
1122 };
1123
1124
1125 struct samr_OpenAlias {
1126         struct {
1127                 struct policy_handle *domain_handle;/* [ref] */
1128                 uint32_t access_mask;
1129                 uint32_t rid;
1130         } in;
1131
1132         struct {
1133                 struct policy_handle *alias_handle;/* [ref] */
1134                 NTSTATUS result;
1135         } out;
1136
1137 };
1138
1139
1140 struct samr_QueryAliasInfo {
1141         struct {
1142                 struct policy_handle *alias_handle;/* [ref] */
1143                 enum samr_AliasInfoEnum level;
1144         } in;
1145
1146         struct {
1147                 union samr_AliasInfo *info;/* [ref,switch_is(level)] */
1148                 NTSTATUS result;
1149         } out;
1150
1151 };
1152
1153
1154 struct samr_SetAliasInfo {
1155         struct {
1156                 struct policy_handle *alias_handle;/* [ref] */
1157                 enum samr_AliasInfoEnum level;
1158                 union samr_AliasInfo *info;/* [ref,switch_is(level)] */
1159         } in;
1160
1161         struct {
1162                 NTSTATUS result;
1163         } out;
1164
1165 };
1166
1167
1168 struct samr_DeleteDomAlias {
1169         struct {
1170                 struct policy_handle *alias_handle;/* [ref] */
1171         } in;
1172
1173         struct {
1174                 struct policy_handle *alias_handle;/* [ref] */
1175                 NTSTATUS result;
1176         } out;
1177
1178 };
1179
1180
1181 struct samr_AddAliasMember {
1182         struct {
1183                 struct policy_handle *alias_handle;/* [ref] */
1184                 struct dom_sid2 *sid;/* [ref] */
1185         } in;
1186
1187         struct {
1188                 NTSTATUS result;
1189         } out;
1190
1191 };
1192
1193
1194 struct samr_DeleteAliasMember {
1195         struct {
1196                 struct policy_handle *alias_handle;/* [ref] */
1197                 struct dom_sid2 *sid;/* [ref] */
1198         } in;
1199
1200         struct {
1201                 NTSTATUS result;
1202         } out;
1203
1204 };
1205
1206
1207 struct samr_GetMembersInAlias {
1208         struct {
1209                 struct policy_handle *alias_handle;/* [ref] */
1210         } in;
1211
1212         struct {
1213                 struct lsa_SidArray *sids;/* [ref] */
1214                 NTSTATUS result;
1215         } out;
1216
1217 };
1218
1219
1220 struct samr_OpenUser {
1221         struct {
1222                 struct policy_handle *domain_handle;/* [ref] */
1223                 uint32_t access_mask;
1224                 uint32_t rid;
1225         } in;
1226
1227         struct {
1228                 struct policy_handle *user_handle;/* [ref] */
1229                 NTSTATUS result;
1230         } out;
1231
1232 };
1233
1234
1235 struct samr_DeleteUser {
1236         struct {
1237                 struct policy_handle *user_handle;/* [ref] */
1238         } in;
1239
1240         struct {
1241                 struct policy_handle *user_handle;/* [ref] */
1242                 NTSTATUS result;
1243         } out;
1244
1245 };
1246
1247
1248 struct samr_QueryUserInfo {
1249         struct {
1250                 struct policy_handle *user_handle;/* [ref] */
1251                 uint16_t level;
1252         } in;
1253
1254         struct {
1255                 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1256                 NTSTATUS result;
1257         } out;
1258
1259 };
1260
1261
1262 struct samr_SetUserInfo {
1263         struct {
1264                 struct policy_handle *user_handle;/* [ref] */
1265                 uint16_t level;
1266                 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1267         } in;
1268
1269         struct {
1270                 NTSTATUS result;
1271         } out;
1272
1273 };
1274
1275
1276 struct samr_ChangePasswordUser {
1277         struct {
1278                 struct policy_handle *user_handle;/* [ref] */
1279                 uint8_t lm_present;
1280                 struct samr_Password *old_lm_crypted;/* [unique] */
1281                 struct samr_Password *new_lm_crypted;/* [unique] */
1282                 uint8_t nt_present;
1283                 struct samr_Password *old_nt_crypted;/* [unique] */
1284                 struct samr_Password *new_nt_crypted;/* [unique] */
1285                 uint8_t cross1_present;
1286                 struct samr_Password *nt_cross;/* [unique] */
1287                 uint8_t cross2_present;
1288                 struct samr_Password *lm_cross;/* [unique] */
1289         } in;
1290
1291         struct {
1292                 NTSTATUS result;
1293         } out;
1294
1295 };
1296
1297
1298 struct samr_GetGroupsForUser {
1299         struct {
1300                 struct policy_handle *user_handle;/* [ref] */
1301         } in;
1302
1303         struct {
1304                 struct samr_RidWithAttributeArray *rids;/* [ref] */
1305                 NTSTATUS result;
1306         } out;
1307
1308 };
1309
1310
1311 struct samr_QueryDisplayInfo {
1312         struct {
1313                 struct policy_handle *domain_handle;/* [ref] */
1314                 uint16_t level;
1315                 uint32_t start_idx;
1316                 uint32_t max_entries;
1317                 uint32_t buf_size;
1318         } in;
1319
1320         struct {
1321                 uint32_t *total_size;/* [ref] */
1322                 uint32_t *returned_size;/* [ref] */
1323                 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1324                 NTSTATUS result;
1325         } out;
1326
1327 };
1328
1329
1330 struct samr_GetDisplayEnumerationIndex {
1331         struct {
1332                 struct policy_handle *domain_handle;/* [ref] */
1333                 uint16_t level;
1334                 struct lsa_String name;
1335         } in;
1336
1337         struct {
1338                 uint32_t *idx;/* [ref] */
1339                 NTSTATUS result;
1340         } out;
1341
1342 };
1343
1344
1345 struct samr_TestPrivateFunctionsDomain {
1346         struct {
1347                 struct policy_handle *domain_handle;/* [ref] */
1348         } in;
1349
1350         struct {
1351                 NTSTATUS result;
1352         } out;
1353
1354 };
1355
1356
1357 struct samr_TestPrivateFunctionsUser {
1358         struct {
1359                 struct policy_handle *user_handle;/* [ref] */
1360         } in;
1361
1362         struct {
1363                 NTSTATUS result;
1364         } out;
1365
1366 };
1367
1368
1369 struct samr_GetUserPwInfo {
1370         struct {
1371                 struct policy_handle *user_handle;/* [ref] */
1372         } in;
1373
1374         struct {
1375                 struct samr_PwInfo *info;/* [ref] */
1376                 NTSTATUS result;
1377         } out;
1378
1379 };
1380
1381
1382 struct samr_RemoveMemberFromForeignDomain {
1383         struct {
1384                 struct policy_handle *domain_handle;/* [ref] */
1385                 struct dom_sid2 *sid;/* [ref] */
1386         } in;
1387
1388         struct {
1389                 NTSTATUS result;
1390         } out;
1391
1392 };
1393
1394
1395 struct samr_QueryDomainInfo2 {
1396         struct {
1397                 struct policy_handle *domain_handle;/* [ref] */
1398                 uint16_t level;
1399         } in;
1400
1401         struct {
1402                 union samr_DomainInfo *info;/* [ref,switch_is(level)] */
1403                 NTSTATUS result;
1404         } out;
1405
1406 };
1407
1408
1409 struct samr_QueryUserInfo2 {
1410         struct {
1411                 struct policy_handle *user_handle;/* [ref] */
1412                 uint16_t level;
1413         } in;
1414
1415         struct {
1416                 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1417                 NTSTATUS result;
1418         } out;
1419
1420 };
1421
1422
1423 struct samr_QueryDisplayInfo2 {
1424         struct {
1425                 struct policy_handle *domain_handle;/* [ref] */
1426                 uint16_t level;
1427                 uint32_t start_idx;
1428                 uint32_t max_entries;
1429                 uint32_t buf_size;
1430         } in;
1431
1432         struct {
1433                 uint32_t *total_size;/* [ref] */
1434                 uint32_t *returned_size;/* [ref] */
1435                 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1436                 NTSTATUS result;
1437         } out;
1438
1439 };
1440
1441
1442 struct samr_GetDisplayEnumerationIndex2 {
1443         struct {
1444                 struct policy_handle *domain_handle;/* [ref] */
1445                 uint16_t level;
1446                 struct lsa_String name;
1447         } in;
1448
1449         struct {
1450                 uint32_t *idx;/* [ref] */
1451                 NTSTATUS result;
1452         } out;
1453
1454 };
1455
1456
1457 struct samr_CreateUser2 {
1458         struct {
1459                 struct policy_handle *domain_handle;/* [ref] */
1460                 struct lsa_String *account_name;/* [ref] */
1461                 uint32_t acct_flags;
1462                 uint32_t access_mask;
1463         } in;
1464
1465         struct {
1466                 struct policy_handle *user_handle;/* [ref] */
1467                 uint32_t *access_granted;/* [ref] */
1468                 uint32_t *rid;/* [ref] */
1469                 NTSTATUS result;
1470         } out;
1471
1472 };
1473
1474
1475 struct samr_QueryDisplayInfo3 {
1476         struct {
1477                 struct policy_handle *domain_handle;/* [ref] */
1478                 uint16_t level;
1479                 uint32_t start_idx;
1480                 uint32_t max_entries;
1481                 uint32_t buf_size;
1482         } in;
1483
1484         struct {
1485                 uint32_t *total_size;/* [ref] */
1486                 uint32_t *returned_size;/* [ref] */
1487                 union samr_DispInfo *info;/* [ref,switch_is(level)] */
1488                 NTSTATUS result;
1489         } out;
1490
1491 };
1492
1493
1494 struct samr_AddMultipleMembersToAlias {
1495         struct {
1496                 struct policy_handle *alias_handle;/* [ref] */
1497                 struct lsa_SidArray *sids;/* [ref] */
1498         } in;
1499
1500         struct {
1501                 NTSTATUS result;
1502         } out;
1503
1504 };
1505
1506
1507 struct samr_RemoveMultipleMembersFromAlias {
1508         struct {
1509                 struct policy_handle *alias_handle;/* [ref] */
1510                 struct lsa_SidArray *sids;/* [ref] */
1511         } in;
1512
1513         struct {
1514                 NTSTATUS result;
1515         } out;
1516
1517 };
1518
1519
1520 struct samr_OemChangePasswordUser2 {
1521         struct {
1522                 struct lsa_AsciiString *server;/* [unique] */
1523                 struct lsa_AsciiString *account;/* [ref] */
1524                 struct samr_CryptPassword *password;/* [unique] */
1525                 struct samr_Password *hash;/* [unique] */
1526         } in;
1527
1528         struct {
1529                 NTSTATUS result;
1530         } out;
1531
1532 };
1533
1534
1535 struct samr_ChangePasswordUser2 {
1536         struct {
1537                 struct lsa_String *server;/* [unique] */
1538                 struct lsa_String *account;/* [ref] */
1539                 struct samr_CryptPassword *nt_password;/* [unique] */
1540                 struct samr_Password *nt_verifier;/* [unique] */
1541                 uint8_t lm_change;
1542                 struct samr_CryptPassword *lm_password;/* [unique] */
1543                 struct samr_Password *lm_verifier;/* [unique] */
1544         } in;
1545
1546         struct {
1547                 NTSTATUS result;
1548         } out;
1549
1550 };
1551
1552
1553 struct samr_GetDomPwInfo {
1554         struct {
1555                 struct lsa_String *domain_name;/* [unique] */
1556         } in;
1557
1558         struct {
1559                 struct samr_PwInfo *info;/* [ref] */
1560                 NTSTATUS result;
1561         } out;
1562
1563 };
1564
1565
1566 struct samr_Connect2 {
1567         struct {
1568                 const char *system_name;/* [unique,charset(UTF16)] */
1569                 uint32_t access_mask;
1570         } in;
1571
1572         struct {
1573                 struct policy_handle *connect_handle;/* [ref] */
1574                 NTSTATUS result;
1575         } out;
1576
1577 };
1578
1579
1580 struct samr_SetUserInfo2 {
1581         struct {
1582                 struct policy_handle *user_handle;/* [ref] */
1583                 uint16_t level;
1584                 union samr_UserInfo *info;/* [ref,switch_is(level)] */
1585         } in;
1586
1587         struct {
1588                 NTSTATUS result;
1589         } out;
1590
1591 };
1592
1593
1594 struct samr_SetBootKeyInformation {
1595         struct {
1596                 struct policy_handle *connect_handle;/* [ref] */
1597                 uint32_t unknown1;
1598                 uint32_t unknown2;
1599                 uint32_t unknown3;
1600         } in;
1601
1602         struct {
1603                 NTSTATUS result;
1604         } out;
1605
1606 };
1607
1608
1609 struct samr_GetBootKeyInformation {
1610         struct {
1611                 struct policy_handle *domain_handle;/* [ref] */
1612         } in;
1613
1614         struct {
1615                 uint32_t *unknown;/* [ref] */
1616                 NTSTATUS result;
1617         } out;
1618
1619 };
1620
1621
1622 struct samr_Connect3 {
1623         struct {
1624                 const char *system_name;/* [unique,charset(UTF16)] */
1625                 uint32_t unknown;
1626                 uint32_t access_mask;
1627         } in;
1628
1629         struct {
1630                 struct policy_handle *connect_handle;/* [ref] */
1631                 NTSTATUS result;
1632         } out;
1633
1634 };
1635
1636
1637 struct samr_Connect4 {
1638         struct {
1639                 const char *system_name;/* [unique,charset(UTF16)] */
1640                 uint32_t unknown;
1641                 uint32_t access_mask;
1642         } in;
1643
1644         struct {
1645                 struct policy_handle *connect_handle;/* [ref] */
1646                 NTSTATUS result;
1647         } out;
1648
1649 };
1650
1651
1652 struct samr_ChangePasswordUser3 {
1653         struct {
1654                 struct lsa_String *server;/* [unique] */
1655                 struct lsa_String *account;/* [ref] */
1656                 struct samr_CryptPassword *nt_password;/* [unique] */
1657                 struct samr_Password *nt_verifier;/* [unique] */
1658                 uint8_t lm_change;
1659                 struct samr_CryptPassword *lm_password;/* [unique] */
1660                 struct samr_Password *lm_verifier;/* [unique] */
1661                 struct samr_CryptPassword *password3;/* [unique] */
1662         } in;
1663
1664         struct {
1665                 struct samr_DomInfo1 *dominfo;/* [ref] */
1666                 struct samr_ChangeReject *reject;/* [ref] */
1667                 NTSTATUS result;
1668         } out;
1669
1670 };
1671
1672
1673 struct samr_Connect5 {
1674         struct {
1675                 const char *system_name;/* [unique,charset(UTF16)] */
1676                 uint32_t access_mask;
1677                 uint32_t level_in;
1678                 union samr_ConnectInfo *info_in;/* [ref,switch_is(level_in)] */
1679         } in;
1680
1681         struct {
1682                 uint32_t *level_out;/* [ref] */
1683                 union samr_ConnectInfo *info_out;/* [ref,switch_is(*level_out)] */
1684                 struct policy_handle *connect_handle;/* [ref] */
1685                 NTSTATUS result;
1686         } out;
1687
1688 };
1689
1690
1691 struct samr_RidToSid {
1692         struct {
1693                 struct policy_handle *domain_handle;/* [ref] */
1694                 uint32_t rid;
1695         } in;
1696
1697         struct {
1698                 struct dom_sid2 *sid;/* [ref] */
1699                 NTSTATUS result;
1700         } out;
1701
1702 };
1703
1704
1705 struct samr_SetDsrmPassword {
1706         struct {
1707                 struct lsa_String *name;/* [unique] */
1708                 uint32_t unknown;
1709                 struct samr_Password *hash;/* [unique] */
1710         } in;
1711
1712         struct {
1713                 NTSTATUS result;
1714         } out;
1715
1716 };
1717
1718
1719 struct samr_ValidatePassword {
1720         struct {
1721                 enum samr_ValidatePasswordLevel level;
1722                 union samr_ValidatePasswordReq req;/* [switch_is(level)] */
1723         } in;
1724
1725         struct {
1726                 union samr_ValidatePasswordRep *rep;/* [ref,switch_is(level)] */
1727                 NTSTATUS result;
1728         } out;
1729
1730 };
1731
1732 #endif /* _HEADER_samr */