~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to librpc/gen_ndr/samr.h

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

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