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

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

Samba 3.5.0: Initial import

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