~lefteris-nikoltsios/+junk/samba-lp1016895

« back to all changes in this revision

Viewing changes to librpc/gen_ndr/samr.h

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2011-12-21 13:18:04 UTC
  • mfrom: (0.39.21 sid)
  • Revision ID: package-import@ubuntu.com-20111221131804-xtlr39wx6njehxxr
Tags: 2:3.6.1-3ubuntu1
* Merge from Debian testing.  Remaining changes:
  + debian/patches/VERSION.patch:
    - set SAMBA_VERSION_SUFFIX to Ubuntu.
  + debian/patches/error-trans.fix-276472:
    - Add the translation of Unix Error code -ENOTSUP to NT Error Code
    - NT_STATUS_NOT_SUPPORTED to prevent the Permission denied error.
  + debian/smb.conf:
    - add "(Samba, Ubuntu)" to server string.
    - comment out the default [homes] share, and add a comment about
      "valid users = %S" to show users how to restrict access to
      \\server\username to only username.
    - Set 'usershare allow guests', so that usershare admins are 
      allowed to create public shares in addition to authenticated
      ones.
    - add map to guest = Bad user, maps bad username to guest access.
  + debian/samba-common.config:
    - Do not change priority to high if dhclient3 is installed.
    - Use priority medium instead of high for the workgroup question.
  + debian/control:
    - Don't build against or suggest ctdb.
    - Add dependency on samba-common-bin to samba.
  + Add ufw integration:
    - Created debian/samba.ufw.profile
    - debian/rules, debian/samba.dirs, debian/samba.files: install
      profile
    - debian/control: have samba suggest ufw
  + Add apport hook:
    - Created debian/source_samba.py.
    - debian/rules, debian/samba.dirs, debian/samba-common-bin.files: install
  + Switch to upstart:
    - Add debian/samba.{nmbd,smbd}.upstart.
  + debian/samba.logrotate, debian/samba-common.dhcp, debian/samba.if-up:
    - Make them upstart compatible
  + debian/samba.postinst: 
    - Avoid scary pdbedit warnings on first import.
  + debian/samba-common.postinst: Add more informative error message for
    the case where smb.conf was manually deleted
  + debian/patches/fix-debuglevel-name-conflict.patch: don't use 'debug_level'
    as a global variable name in an NSS module 
  + Dropped:
    - debian/patches/error-trans.fix-276472
    - debian/patches/fix-debuglevel-name-conflict.patch

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=(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
 
 
56
 
enum 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
 
 
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_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
 
 
187
 
enum 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
 
 
212
 
enum 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
 
 
225
 
struct 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
 
 
233
 
struct 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
 
 
247
 
struct samr_DomInfo3 {
248
 
        NTTIME force_logoff_time;
249
 
};
250
 
 
251
 
struct samr_DomOEMInformation {
252
 
        struct lsa_String oem_information;
253
 
};
254
 
 
255
 
struct samr_DomInfo5 {
256
 
        struct lsa_String domain_name;
257
 
};
258
 
 
259
 
struct samr_DomInfo6 {
260
 
        struct lsa_String primary;
261
 
};
262
 
 
263
 
struct samr_DomInfo7 {
264
 
        enum samr_Role role;
265
 
};
266
 
 
267
 
struct samr_DomInfo8 {
268
 
        uint64_t sequence_num;
269
 
        NTTIME domain_create_time;
270
 
};
271
 
 
272
 
struct samr_DomInfo9 {
273
 
        enum samr_DomainServerState domain_server_state;
274
 
};
275
 
 
276
 
struct samr_DomGeneralInformation2 {
277
 
        struct samr_DomGeneralInformation general;
278
 
        uint64_t lockout_duration;
279
 
        uint64_t lockout_window;
280
 
        uint16_t lockout_threshold;
281
 
};
282
 
 
283
 
struct samr_DomInfo12 {
284
 
        uint64_t lockout_duration;
285
 
        uint64_t lockout_window;
286
 
        uint16_t lockout_threshold;
287
 
};
288
 
 
289
 
struct samr_DomInfo13 {
290
 
        uint64_t sequence_num;
291
 
        NTTIME domain_create_time;
292
 
        uint64_t modified_count_at_last_promotion;
293
 
};
294
 
 
295
 
union 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
 
 
310
 
struct 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
 
 
324
 
struct samr_GroupInfoAll {
325
 
        struct lsa_String name;
326
 
        uint32_t attributes;
327
 
        uint32_t num_members;
328
 
        struct lsa_String description;
329
 
};
330
 
 
331
 
struct samr_GroupInfoAttributes {
332
 
        uint32_t attributes;
333
 
};
334
 
 
335
 
struct samr_GroupInfoDescription {
336
 
        struct lsa_String description;
337
 
};
338
 
 
339
 
enum 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
 
 
358
 
union 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
 
 
366
 
struct samr_RidTypeArray {
367
 
        uint32_t count;
368
 
        uint32_t *rids;/* [unique,size_is(count)] */
369
 
        uint32_t *types;/* [unique,size_is(count)] */
370
 
};
371
 
 
372
 
struct samr_AliasInfoAll {
373
 
        struct lsa_String name;
374
 
        uint32_t num_members;
375
 
        struct lsa_String description;
376
 
};
377
 
 
378
 
enum 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
 
 
393
 
union 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
 
 
399
 
enum 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
 
 
454
 
struct 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
 
 
462
 
struct samr_UserInfo2 {
463
 
        struct lsa_String comment;
464
 
        struct lsa_String unknown;
465
 
        uint16_t country_code;
466
 
        uint16_t code_page;
467
 
};
468
 
 
469
 
struct 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
 
 
474
 
struct 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
 
 
495
 
struct samr_UserInfo4 {
496
 
        struct samr_LogonHours logon_hours;
497
 
};
498
 
 
499
 
struct 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
 
 
520
 
struct samr_UserInfo6 {
521
 
        struct lsa_String account_name;
522
 
        struct lsa_String full_name;
523
 
};
524
 
 
525
 
struct samr_UserInfo7 {
526
 
        struct lsa_String account_name;
527
 
};
528
 
 
529
 
struct samr_UserInfo8 {
530
 
        struct lsa_String full_name;
531
 
};
532
 
 
533
 
struct samr_UserInfo9 {
534
 
        uint32_t primary_gid;
535
 
};
536
 
 
537
 
struct samr_UserInfo10 {
538
 
        struct lsa_String home_directory;
539
 
        struct lsa_String home_drive;
540
 
};
541
 
 
542
 
struct samr_UserInfo11 {
543
 
        struct lsa_String logon_script;
544
 
};
545
 
 
546
 
struct samr_UserInfo12 {
547
 
        struct lsa_String profile_path;
548
 
};
549
 
 
550
 
struct samr_UserInfo13 {
551
 
        struct lsa_String description;
552
 
};
553
 
 
554
 
struct samr_UserInfo14 {
555
 
        struct lsa_String workstations;
556
 
};
557
 
 
558
 
struct samr_UserInfo16 {
559
 
        uint32_t acct_flags;
560
 
};
561
 
 
562
 
struct samr_UserInfo17 {
563
 
        NTTIME acct_expiry;
564
 
};
565
 
 
566
 
struct samr_Password {
567
 
        uint8_t hash[16];
568
 
}/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
569
 
 
570
 
struct 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
 
 
578
 
struct 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
 
 
614
 
struct 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
 
 
651
 
struct samr_CryptPassword {
652
 
        uint8_t data[516];
653
 
}/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
654
 
 
655
 
struct samr_UserInfo23 {
656
 
        struct samr_UserInfo21 info;
657
 
        struct samr_CryptPassword password;
658
 
};
659
 
 
660
 
struct samr_UserInfo24 {
661
 
        struct samr_CryptPassword password;
662
 
        uint8_t password_expired;
663
 
};
664
 
 
665
 
struct samr_CryptPasswordEx {
666
 
        uint8_t data[532];
667
 
}/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
668
 
 
669
 
struct samr_UserInfo25 {
670
 
        struct samr_UserInfo21 info;
671
 
        struct samr_CryptPasswordEx password;
672
 
};
673
 
 
674
 
struct samr_UserInfo26 {
675
 
        struct samr_CryptPasswordEx password;
676
 
        uint8_t password_expired;
677
 
};
678
 
 
679
 
union 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
 
 
705
 
struct samr_RidWithAttribute {
706
 
        uint32_t rid;
707
 
        uint32_t attributes;
708
 
}/* [public] */;
709
 
 
710
 
struct samr_RidWithAttributeArray {
711
 
        uint32_t count;
712
 
        struct samr_RidWithAttribute *rids;/* [unique,size_is(count)] */
713
 
}/* [public] */;
714
 
 
715
 
struct 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
 
 
724
 
struct samr_DispInfoGeneral {
725
 
        uint32_t count;
726
 
        struct samr_DispEntryGeneral *entries;/* [unique,size_is(count)] */
727
 
};
728
 
 
729
 
struct 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
 
 
737
 
struct samr_DispInfoFull {
738
 
        uint32_t count;
739
 
        struct samr_DispEntryFull *entries;/* [unique,size_is(count)] */
740
 
};
741
 
 
742
 
struct 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
 
 
750
 
struct samr_DispInfoFullGroups {
751
 
        uint32_t count;
752
 
        struct samr_DispEntryFullGroup *entries;/* [unique,size_is(count)] */
753
 
};
754
 
 
755
 
struct samr_DispEntryAscii {
756
 
        uint32_t idx;
757
 
        struct lsa_AsciiStringLarge account_name;
758
 
};
759
 
 
760
 
struct samr_DispInfoAscii {
761
 
        uint32_t count;
762
 
        struct samr_DispEntryAscii *entries;/* [unique,size_is(count)] */
763
 
};
764
 
 
765
 
union 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
 
 
773
 
struct samr_PwInfo {
774
 
        uint16_t min_password_length;
775
 
        uint32_t password_properties;
776
 
};
777
 
 
778
 
enum 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
 
 
793
 
struct samr_ChangeReject {
794
 
        enum samr_RejectReason reason;
795
 
        uint32_t unknown1;
796
 
        uint32_t unknown2;
797
 
};
798
 
 
799
 
struct samr_ConnectInfo1 {
800
 
        enum samr_ConnectVersion client_version;
801
 
        uint32_t unknown2;
802
 
};
803
 
 
804
 
union 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
 
 
816
 
enum 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
 
 
831
 
enum 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
 
 
862
 
struct samr_ValidationBlob {
863
 
        uint32_t length;
864
 
        uint8_t *data;/* [unique,size_is(length)] */
865
 
};
866
 
 
867
 
struct 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
 
 
877
 
struct samr_ValidatePasswordRepCtr {
878
 
        struct samr_ValidatePasswordInfo info;
879
 
        enum samr_ValidationStatus status;
880
 
};
881
 
 
882
 
union 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
 
 
888
 
struct 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
 
 
897
 
struct 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
 
 
905
 
struct samr_ValidatePasswordReq1 {
906
 
        struct samr_ValidatePasswordInfo info;
907
 
        uint8_t password_matched;
908
 
};
909
 
 
910
 
union 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
 
 
917
 
struct 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
 
 
931
 
struct 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
 
 
944
 
struct 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
 
 
958
 
struct 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
 
 
972
 
struct 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
 
 
984
 
struct 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
 
 
998
 
struct 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
 
 
1015
 
struct 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
 
 
1030
 
struct 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
 
 
1044
 
struct 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
 
 
1058
 
struct 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
 
 
1074
 
struct 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
 
 
1091
 
struct 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
 
 
1107
 
struct 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
 
 
1125
 
struct 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
 
 
1141
 
struct 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
 
 
1158
 
struct 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
 
 
1172
 
struct 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
 
 
1188
 
struct 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
 
 
1204
 
struct 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
 
 
1219
 
struct 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
 
 
1233
 
struct 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
 
 
1247
 
struct 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
 
 
1261
 
struct 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
 
 
1274
 
struct 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
 
 
1287
 
struct 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
 
 
1300
 
struct 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
 
 
1314
 
struct 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
 
 
1329
 
struct 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
 
 
1343
 
struct 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
 
 
1357
 
struct 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
 
 
1370
 
struct 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
 
 
1383
 
struct 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
 
 
1396
 
struct 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
 
 
1409
 
struct 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
 
 
1424
 
struct 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
 
 
1437
 
struct 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
 
 
1451
 
struct 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
 
 
1465
 
struct 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
 
 
1487
 
struct 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
 
 
1500
 
struct 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
 
 
1519
 
struct 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
 
 
1534
 
struct 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
 
 
1546
 
struct 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
 
 
1558
 
struct 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
 
 
1571
 
struct 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
 
 
1584
 
struct 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
 
 
1598
 
struct 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
 
 
1612
 
struct 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
 
 
1631
 
struct 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
 
 
1646
 
struct 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
 
 
1664
 
struct 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
 
 
1683
 
struct 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
 
 
1696
 
struct 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
 
 
1709
 
struct 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
 
 
1724
 
struct 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
 
 
1742
 
struct 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
 
 
1755
 
struct 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
 
 
1769
 
struct 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
 
 
1783
 
struct 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
 
 
1798
 
struct 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
 
 
1811
 
struct 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
 
 
1826
 
struct 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
 
 
1841
 
struct 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
 
 
1862
 
struct 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
 
 
1880
 
struct 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
 
 
1894
 
struct 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
 
 
1908
 
struct 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 */