source: branches/samba-3.3.x/source/librpc/gen_ndr/samr.h

Last change on this file was 224, checked in by Herwig Bauernfeind, 16 years ago

Update Samba 3.3 branch to 3.3.4

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