s3-lsa: move remaining lsa policy access_mask defines to idl.
[amitay/samba.git] / librpc / gen_ndr / lsa.h
1 /* header auto-generated by pidl */
2
3 #include <stdint.h>
4
5 #include "librpc/gen_ndr/misc.h"
6 #include "librpc/gen_ndr/security.h"
7 #ifndef _HEADER_lsarpc
8 #define _HEADER_lsarpc
9
10 #define LSA_POLICY_ALL_ACCESS   ( (STANDARD_RIGHTS_REQUIRED_ACCESS|LSA_POLICY_VIEW_LOCAL_INFORMATION|LSA_POLICY_VIEW_AUDIT_INFORMATION|LSA_POLICY_GET_PRIVATE_INFORMATION|LSA_POLICY_TRUST_ADMIN|LSA_POLICY_CREATE_ACCOUNT|LSA_POLICY_CREATE_SECRET|LSA_POLICY_CREATE_PRIVILEGE|LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS|LSA_POLICY_SET_AUDIT_REQUIREMENTS|LSA_POLICY_AUDIT_LOG_ADMIN|LSA_POLICY_SERVER_ADMIN|LSA_POLICY_LOOKUP_NAMES) )
11 #define LSA_POLICY_READ ( (STANDARD_RIGHTS_READ_ACCESS|LSA_POLICY_VIEW_LOCAL_INFORMATION|LSA_POLICY_VIEW_AUDIT_INFORMATION|LSA_POLICY_GET_PRIVATE_INFORMATION) )
12 #define LSA_POLICY_WRITE        ( (STD_RIGHT_READ_CONTROL_ACCESS|LSA_POLICY_TRUST_ADMIN|LSA_POLICY_CREATE_ACCOUNT|LSA_POLICY_CREATE_SECRET|LSA_POLICY_CREATE_PRIVILEGE|LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS|LSA_POLICY_SET_AUDIT_REQUIREMENTS|LSA_POLICY_AUDIT_LOG_ADMIN|LSA_POLICY_SERVER_ADMIN) )
13 #define LSA_POLICY_EXECUTE      ( (STANDARD_RIGHTS_EXECUTE_ACCESS|LSA_POLICY_VIEW_LOCAL_INFORMATION|LSA_POLICY_LOOKUP_NAMES) )
14 #define LSA_ENUM_TRUST_DOMAIN_MULTIPLIER        ( 60 )
15 #define LSA_REF_DOMAIN_LIST_MULTIPLIER  ( 32 )
16 #define LSA_ENUM_TRUST_DOMAIN_EX_MULTIPLIER     ( 82 )
17 #define LSA_CLIENT_REVISION_NO_DNS      ( 0x00000001 )
18 #define LSA_CLIENT_REVISION_DNS ( 0x00000002 )
19 #define LSA_LOOKUP_OPTIONS_NO_ISOLATED  ( 0x80000000 )
20 struct lsa_String {
21         uint16_t length;/* [value(2*strlen_m(string))] */
22         uint16_t size;/* [value(2*strlen_m(string))] */
23         const char *string;/* [unique,charset(UTF16),length_is(length/2),size_is(size/2)] */
24 }/* [public] */;
25
26 struct lsa_StringLarge {
27         uint16_t length;/* [value(2*strlen_m(string))] */
28         uint16_t size;/* [value(2*strlen_m_term(string))] */
29         const char *string;/* [unique,charset(UTF16),length_is(length/2),size_is(size/2)] */
30 }/* [public] */;
31
32 struct lsa_Strings {
33         uint32_t count;
34         struct lsa_String *names;/* [unique,size_is(count)] */
35 }/* [public] */;
36
37 struct lsa_AsciiString {
38         uint16_t length;/* [value(strlen_m(string))] */
39         uint16_t size;/* [value(strlen_m(string))] */
40         const char *string;/* [unique,charset(DOS),length_is(length),size_is(size)] */
41 }/* [public] */;
42
43 struct lsa_AsciiStringLarge {
44         uint16_t length;/* [value(strlen_m(string))] */
45         uint16_t size;/* [value(strlen_m_term(string))] */
46         const char *string;/* [unique,charset(DOS),length_is(length),size_is(size)] */
47 }/* [public] */;
48
49 struct lsa_BinaryString {
50         uint16_t length;
51         uint16_t size;
52         uint16_t *array;/* [unique,length_is(length/2),size_is(size/2)] */
53 }/* [public] */;
54
55 struct lsa_LUID {
56         uint32_t low;
57         uint32_t high;
58 };
59
60 struct lsa_PrivEntry {
61         struct lsa_StringLarge name;
62         struct lsa_LUID luid;
63 };
64
65 struct lsa_PrivArray {
66         uint32_t count;
67         struct lsa_PrivEntry *privs;/* [unique,size_is(count)] */
68 };
69
70 struct lsa_QosInfo {
71         uint32_t len;
72         uint16_t impersonation_level;
73         uint8_t context_mode;
74         uint8_t effective_only;
75 };
76
77 struct lsa_ObjectAttribute {
78         uint32_t len;
79         uint8_t *root_dir;/* [unique] */
80         const char *object_name;/* [unique,charset(UTF16)] */
81         uint32_t attributes;
82         struct security_descriptor *sec_desc;/* [unique] */
83         struct lsa_QosInfo *sec_qos;/* [unique] */
84 };
85
86 /* bitmap lsa_PolicyAccessMask */
87 #define LSA_POLICY_VIEW_LOCAL_INFORMATION ( 0x00000001 )
88 #define LSA_POLICY_VIEW_AUDIT_INFORMATION ( 0x00000002 )
89 #define LSA_POLICY_GET_PRIVATE_INFORMATION ( 0x00000004 )
90 #define LSA_POLICY_TRUST_ADMIN ( 0x00000008 )
91 #define LSA_POLICY_CREATE_ACCOUNT ( 0x00000010 )
92 #define LSA_POLICY_CREATE_SECRET ( 0x00000020 )
93 #define LSA_POLICY_CREATE_PRIVILEGE ( 0x00000040 )
94 #define LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS ( 0x00000080 )
95 #define LSA_POLICY_SET_AUDIT_REQUIREMENTS ( 0x00000100 )
96 #define LSA_POLICY_AUDIT_LOG_ADMIN ( 0x00000200 )
97 #define LSA_POLICY_SERVER_ADMIN ( 0x00000400 )
98 #define LSA_POLICY_LOOKUP_NAMES ( 0x00000800 )
99
100 struct lsa_AuditLogInfo {
101         uint32_t percent_full;
102         uint32_t maximum_log_size;
103         uint64_t retention_time;
104         uint8_t shutdown_in_progress;
105         uint64_t time_to_shutdown;
106         uint32_t next_audit_record;
107 };
108
109 enum lsa_PolicyAuditPolicy
110 #ifndef USE_UINT_ENUMS
111  {
112         LSA_AUDIT_POLICY_NONE=0,
113         LSA_AUDIT_POLICY_SUCCESS=1,
114         LSA_AUDIT_POLICY_FAILURE=2,
115         LSA_AUDIT_POLICY_ALL=(LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE),
116         LSA_AUDIT_POLICY_CLEAR=4
117 }
118 #else
119  { __donnot_use_enum_lsa_PolicyAuditPolicy=0x7FFFFFFF}
120 #define LSA_AUDIT_POLICY_NONE ( 0 )
121 #define LSA_AUDIT_POLICY_SUCCESS ( 1 )
122 #define LSA_AUDIT_POLICY_FAILURE ( 2 )
123 #define LSA_AUDIT_POLICY_ALL ( (LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE) )
124 #define LSA_AUDIT_POLICY_CLEAR ( 4 )
125 #endif
126 ;
127
128 enum lsa_PolicyAuditEventType
129 #ifndef USE_UINT_ENUMS
130  {
131         LSA_AUDIT_CATEGORY_SYSTEM=0,
132         LSA_AUDIT_CATEGORY_LOGON=1,
133         LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS=2,
134         LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS=3,
135         LSA_AUDIT_CATEGORY_PROCCESS_TRACKING=4,
136         LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES=5,
137         LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT=6,
138         LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS=7,
139         LSA_AUDIT_CATEGORY_ACCOUNT_LOGON=8
140 }
141 #else
142  { __donnot_use_enum_lsa_PolicyAuditEventType=0x7FFFFFFF}
143 #define LSA_AUDIT_CATEGORY_SYSTEM ( 0 )
144 #define LSA_AUDIT_CATEGORY_LOGON ( 1 )
145 #define LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS ( 2 )
146 #define LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS ( 3 )
147 #define LSA_AUDIT_CATEGORY_PROCCESS_TRACKING ( 4 )
148 #define LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES ( 5 )
149 #define LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT ( 6 )
150 #define LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS ( 7 )
151 #define LSA_AUDIT_CATEGORY_ACCOUNT_LOGON ( 8 )
152 #endif
153 ;
154
155 struct lsa_AuditEventsInfo {
156         uint32_t auditing_mode;
157         enum lsa_PolicyAuditPolicy *settings;/* [unique,size_is(count)] */
158         uint32_t count;
159 };
160
161 struct lsa_DomainInfo {
162         struct lsa_StringLarge name;
163         struct dom_sid2 *sid;/* [unique] */
164 };
165
166 struct lsa_PDAccountInfo {
167         struct lsa_String name;
168 };
169
170 enum lsa_Role
171 #ifndef USE_UINT_ENUMS
172  {
173         LSA_ROLE_BACKUP=2,
174         LSA_ROLE_PRIMARY=3
175 }
176 #else
177  { __donnot_use_enum_lsa_Role=0x7FFFFFFF}
178 #define LSA_ROLE_BACKUP ( 2 )
179 #define LSA_ROLE_PRIMARY ( 3 )
180 #endif
181 ;
182
183 struct lsa_ServerRole {
184         enum lsa_Role role;
185 };
186
187 struct lsa_ReplicaSourceInfo {
188         struct lsa_String source;
189         struct lsa_String account;
190 };
191
192 struct lsa_DefaultQuotaInfo {
193         uint32_t paged_pool;
194         uint32_t non_paged_pool;
195         uint32_t min_wss;
196         uint32_t max_wss;
197         uint32_t pagefile;
198         uint64_t unknown;
199 };
200
201 struct lsa_ModificationInfo {
202         uint64_t modified_id;
203         NTTIME db_create_time;
204 };
205
206 struct lsa_AuditFullSetInfo {
207         uint8_t shutdown_on_full;
208 };
209
210 struct lsa_AuditFullQueryInfo {
211         uint8_t shutdown_on_full;
212         uint8_t log_is_full;
213 };
214
215 struct lsa_DnsDomainInfo {
216         struct lsa_StringLarge name;
217         struct lsa_StringLarge dns_domain;
218         struct lsa_StringLarge dns_forest;
219         struct GUID domain_guid;
220         struct dom_sid2 *sid;/* [unique] */
221 };
222
223 enum lsa_PolicyInfo
224 #ifndef USE_UINT_ENUMS
225  {
226         LSA_POLICY_INFO_AUDIT_LOG=1,
227         LSA_POLICY_INFO_AUDIT_EVENTS=2,
228         LSA_POLICY_INFO_DOMAIN=3,
229         LSA_POLICY_INFO_PD=4,
230         LSA_POLICY_INFO_ACCOUNT_DOMAIN=5,
231         LSA_POLICY_INFO_ROLE=6,
232         LSA_POLICY_INFO_REPLICA=7,
233         LSA_POLICY_INFO_QUOTA=8,
234         LSA_POLICY_INFO_MOD=9,
235         LSA_POLICY_INFO_AUDIT_FULL_SET=10,
236         LSA_POLICY_INFO_AUDIT_FULL_QUERY=11,
237         LSA_POLICY_INFO_DNS=12,
238         LSA_POLICY_INFO_DNS_INT=13,
239         LSA_POLICY_INFO_L_ACCOUNT_DOMAIN=14
240 }
241 #else
242  { __donnot_use_enum_lsa_PolicyInfo=0x7FFFFFFF}
243 #define LSA_POLICY_INFO_AUDIT_LOG ( 1 )
244 #define LSA_POLICY_INFO_AUDIT_EVENTS ( 2 )
245 #define LSA_POLICY_INFO_DOMAIN ( 3 )
246 #define LSA_POLICY_INFO_PD ( 4 )
247 #define LSA_POLICY_INFO_ACCOUNT_DOMAIN ( 5 )
248 #define LSA_POLICY_INFO_ROLE ( 6 )
249 #define LSA_POLICY_INFO_REPLICA ( 7 )
250 #define LSA_POLICY_INFO_QUOTA ( 8 )
251 #define LSA_POLICY_INFO_MOD ( 9 )
252 #define LSA_POLICY_INFO_AUDIT_FULL_SET ( 10 )
253 #define LSA_POLICY_INFO_AUDIT_FULL_QUERY ( 11 )
254 #define LSA_POLICY_INFO_DNS ( 12 )
255 #define LSA_POLICY_INFO_DNS_INT ( 13 )
256 #define LSA_POLICY_INFO_L_ACCOUNT_DOMAIN ( 14 )
257 #endif
258 ;
259
260 union lsa_PolicyInformation {
261         struct lsa_AuditLogInfo audit_log;/* [case(LSA_POLICY_INFO_AUDIT_LOG)] */
262         struct lsa_AuditEventsInfo audit_events;/* [case(LSA_POLICY_INFO_AUDIT_EVENTS)] */
263         struct lsa_DomainInfo domain;/* [case(LSA_POLICY_INFO_DOMAIN)] */
264         struct lsa_PDAccountInfo pd;/* [case(LSA_POLICY_INFO_PD)] */
265         struct lsa_DomainInfo account_domain;/* [case(LSA_POLICY_INFO_ACCOUNT_DOMAIN)] */
266         struct lsa_ServerRole role;/* [case(LSA_POLICY_INFO_ROLE)] */
267         struct lsa_ReplicaSourceInfo replica;/* [case(LSA_POLICY_INFO_REPLICA)] */
268         struct lsa_DefaultQuotaInfo quota;/* [case(LSA_POLICY_INFO_QUOTA)] */
269         struct lsa_ModificationInfo mod;/* [case(LSA_POLICY_INFO_MOD)] */
270         struct lsa_AuditFullSetInfo auditfullset;/* [case(LSA_POLICY_INFO_AUDIT_FULL_SET)] */
271         struct lsa_AuditFullQueryInfo auditfullquery;/* [case(LSA_POLICY_INFO_AUDIT_FULL_QUERY)] */
272         struct lsa_DnsDomainInfo dns;/* [case(LSA_POLICY_INFO_DNS)] */
273         struct lsa_DomainInfo l_account_domain;/* [case(LSA_POLICY_INFO_L_ACCOUNT_DOMAIN)] */
274 }/* [switch_type(uint16)] */;
275
276 struct lsa_SidPtr {
277         struct dom_sid2 *sid;/* [unique] */
278 };
279
280 struct lsa_SidArray {
281         uint32_t num_sids;/* [range(0,1000)] */
282         struct lsa_SidPtr *sids;/* [unique,size_is(num_sids)] */
283 }/* [public] */;
284
285 struct lsa_DomainList {
286         uint32_t count;
287         struct lsa_DomainInfo *domains;/* [unique,size_is(count)] */
288 };
289
290 enum lsa_SidType
291 #ifndef USE_UINT_ENUMS
292  {
293         SID_NAME_USE_NONE=0,
294         SID_NAME_USER=1,
295         SID_NAME_DOM_GRP=2,
296         SID_NAME_DOMAIN=3,
297         SID_NAME_ALIAS=4,
298         SID_NAME_WKN_GRP=5,
299         SID_NAME_DELETED=6,
300         SID_NAME_INVALID=7,
301         SID_NAME_UNKNOWN=8,
302         SID_NAME_COMPUTER=9
303 }
304 #else
305  { __donnot_use_enum_lsa_SidType=0x7FFFFFFF}
306 #define SID_NAME_USE_NONE ( 0 )
307 #define SID_NAME_USER ( 1 )
308 #define SID_NAME_DOM_GRP ( 2 )
309 #define SID_NAME_DOMAIN ( 3 )
310 #define SID_NAME_ALIAS ( 4 )
311 #define SID_NAME_WKN_GRP ( 5 )
312 #define SID_NAME_DELETED ( 6 )
313 #define SID_NAME_INVALID ( 7 )
314 #define SID_NAME_UNKNOWN ( 8 )
315 #define SID_NAME_COMPUTER ( 9 )
316 #endif
317 ;
318
319 struct lsa_TranslatedSid {
320         enum lsa_SidType sid_type;
321         uint32_t rid;
322         uint32_t sid_index;
323 };
324
325 struct lsa_TransSidArray {
326         uint32_t count;/* [range(0,1000)] */
327         struct lsa_TranslatedSid *sids;/* [unique,size_is(count)] */
328 };
329
330 struct lsa_RefDomainList {
331         uint32_t count;/* [range(0,1000)] */
332         struct lsa_DomainInfo *domains;/* [unique,size_is(count)] */
333         uint32_t max_size;
334 };
335
336 enum lsa_LookupNamesLevel
337 #ifndef USE_UINT_ENUMS
338  {
339         LSA_LOOKUP_NAMES_ALL=1,
340         LSA_LOOKUP_NAMES_DOMAINS_ONLY=2,
341         LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY=3,
342         LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY=4,
343         LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY=5,
344         LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2=6,
345         LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC=7
346 }
347 #else
348  { __donnot_use_enum_lsa_LookupNamesLevel=0x7FFFFFFF}
349 #define LSA_LOOKUP_NAMES_ALL ( 1 )
350 #define LSA_LOOKUP_NAMES_DOMAINS_ONLY ( 2 )
351 #define LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY ( 3 )
352 #define LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY ( 4 )
353 #define LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY ( 5 )
354 #define LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2 ( 6 )
355 #define LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC ( 7 )
356 #endif
357 ;
358
359 struct lsa_TranslatedName {
360         enum lsa_SidType sid_type;
361         struct lsa_String name;
362         uint32_t sid_index;
363 };
364
365 struct lsa_TransNameArray {
366         uint32_t count;/* [range(0,1000)] */
367         struct lsa_TranslatedName *names;/* [unique,size_is(count)] */
368 };
369
370 struct lsa_LUIDAttribute {
371         struct lsa_LUID luid;
372         uint32_t attribute;
373 };
374
375 struct lsa_PrivilegeSet {
376         uint32_t count;/* [range(0,1000)] */
377         uint32_t unknown;
378         struct lsa_LUIDAttribute *set;/* [size_is(count)] */
379 };
380
381 /* bitmap lsa_SystemAccessModeFlags */
382 #define LSA_POLICY_MODE_INTERACTIVE ( 0x00000001 )
383 #define LSA_POLICY_MODE_NETWORK ( 0x00000002 )
384 #define LSA_POLICY_MODE_BATCH ( 0x00000004 )
385 #define LSA_POLICY_MODE_SERVICE ( 0x00000010 )
386 #define LSA_POLICY_MODE_PROXY ( 0x00000020 )
387 #define LSA_POLICY_MODE_DENY_INTERACTIVE ( 0x00000040 )
388 #define LSA_POLICY_MODE_DENY_NETWORK ( 0x00000080 )
389 #define LSA_POLICY_MODE_DENY_BATCH ( 0x00000100 )
390 #define LSA_POLICY_MODE_DENY_SERVICE ( 0x00000200 )
391 #define LSA_POLICY_MODE_REMOTE_INTERACTIVE ( 0x00000400 )
392 #define LSA_POLICY_MODE_DENY_REMOTE_INTERACTIVE ( 0x00000800 )
393 #define LSA_POLICY_MODE_ALL ( 0x00000FF7 )
394 #define LSA_POLICY_MODE_ALL_NT4 ( 0x00000037 )
395
396 struct lsa_DATA_BUF {
397         uint32_t length;
398         uint32_t size;
399         uint8_t *data;/* [unique,length_is(length),size_is(size)] */
400 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
401
402 struct lsa_DATA_BUF2 {
403         uint32_t size;/* [range(0,65536)] */
404         uint8_t *data;/* [unique,size_is(size)] */
405 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
406
407 enum lsa_TrustDomInfoEnum
408 #ifndef USE_UINT_ENUMS
409  {
410         LSA_TRUSTED_DOMAIN_INFO_NAME=1,
411         LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS=2,
412         LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET=3,
413         LSA_TRUSTED_DOMAIN_INFO_PASSWORD=4,
414         LSA_TRUSTED_DOMAIN_INFO_BASIC=5,
415         LSA_TRUSTED_DOMAIN_INFO_INFO_EX=6,
416         LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO=7,
417         LSA_TRUSTED_DOMAIN_INFO_FULL_INFO=8,
418         LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL=9,
419         LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL=10,
420         LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL=11,
421         LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL=12,
422         LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES=13
423 }
424 #else
425  { __donnot_use_enum_lsa_TrustDomInfoEnum=0x7FFFFFFF}
426 #define LSA_TRUSTED_DOMAIN_INFO_NAME ( 1 )
427 #define LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS ( 2 )
428 #define LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET ( 3 )
429 #define LSA_TRUSTED_DOMAIN_INFO_PASSWORD ( 4 )
430 #define LSA_TRUSTED_DOMAIN_INFO_BASIC ( 5 )
431 #define LSA_TRUSTED_DOMAIN_INFO_INFO_EX ( 6 )
432 #define LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO ( 7 )
433 #define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO ( 8 )
434 #define LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL ( 9 )
435 #define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL ( 10 )
436 #define LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL ( 11 )
437 #define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL ( 12 )
438 #define LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES ( 13 )
439 #endif
440 ;
441
442 /* bitmap lsa_TrustDirection */
443 #define LSA_TRUST_DIRECTION_INBOUND ( 0x00000001 )
444 #define LSA_TRUST_DIRECTION_OUTBOUND ( 0x00000002 )
445
446 enum lsa_TrustType
447 #ifndef USE_UINT_ENUMS
448  {
449         LSA_TRUST_TYPE_DOWNLEVEL=0x00000001,
450         LSA_TRUST_TYPE_UPLEVEL=0x00000002,
451         LSA_TRUST_TYPE_MIT=0x00000003
452 }
453 #else
454  { __donnot_use_enum_lsa_TrustType=0x7FFFFFFF}
455 #define LSA_TRUST_TYPE_DOWNLEVEL ( 0x00000001 )
456 #define LSA_TRUST_TYPE_UPLEVEL ( 0x00000002 )
457 #define LSA_TRUST_TYPE_MIT ( 0x00000003 )
458 #endif
459 ;
460
461 /* bitmap lsa_TrustAttributes */
462 #define LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 )
463 #define LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 )
464 #define LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 )
465 #define LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 )
466 #define LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 )
467 #define LSA_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 )
468 #define LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 )
469 #define LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION ( 0x00000080 )
470
471 struct lsa_TrustDomainInfoName {
472         struct lsa_StringLarge netbios_name;
473 };
474
475 struct lsa_TrustDomainInfoControllers {
476         uint32_t entries;
477         struct lsa_StringLarge *netbios_names;/* [unique,size_is(entries)] */
478 };
479
480 struct lsa_TrustDomainInfoPosixOffset {
481         uint32_t posix_offset;
482 };
483
484 struct lsa_TrustDomainInfoPassword {
485         struct lsa_DATA_BUF *password;/* [unique] */
486         struct lsa_DATA_BUF *old_password;/* [unique] */
487 };
488
489 struct lsa_TrustDomainInfoBasic {
490         struct lsa_String netbios_name;
491         struct dom_sid2 *sid;/* [unique] */
492 };
493
494 struct lsa_TrustDomainInfoInfoEx {
495         struct lsa_StringLarge domain_name;
496         struct lsa_StringLarge netbios_name;
497         struct dom_sid2 *sid;/* [unique] */
498         uint32_t trust_direction;
499         enum lsa_TrustType trust_type;
500         uint32_t trust_attributes;
501 };
502
503 enum lsa_TrustAuthType
504 #ifndef USE_UINT_ENUMS
505  {
506         TRUST_AUTH_TYPE_NONE=0,
507         TRUST_AUTH_TYPE_NT4OWF=1,
508         TRUST_AUTH_TYPE_CLEAR=2,
509         TRUST_AUTH_TYPE_VERSION=3
510 }
511 #else
512  { __donnot_use_enum_lsa_TrustAuthType=0x7FFFFFFF}
513 #define TRUST_AUTH_TYPE_NONE ( 0 )
514 #define TRUST_AUTH_TYPE_NT4OWF ( 1 )
515 #define TRUST_AUTH_TYPE_CLEAR ( 2 )
516 #define TRUST_AUTH_TYPE_VERSION ( 3 )
517 #endif
518 ;
519
520 struct lsa_TrustDomainInfoBuffer {
521         NTTIME last_update_time;
522         enum lsa_TrustAuthType AuthType;
523         struct lsa_DATA_BUF2 data;
524 };
525
526 struct lsa_TrustDomainInfoAuthInfo {
527         uint32_t incoming_count;
528         struct lsa_TrustDomainInfoBuffer *incoming_current_auth_info;/* [unique] */
529         struct lsa_TrustDomainInfoBuffer *incoming_previous_auth_info;/* [unique] */
530         uint32_t outgoing_count;
531         struct lsa_TrustDomainInfoBuffer *outgoing_current_auth_info;/* [unique] */
532         struct lsa_TrustDomainInfoBuffer *outgoing_previous_auth_info;/* [unique] */
533 };
534
535 struct lsa_TrustDomainInfoFullInfo {
536         struct lsa_TrustDomainInfoInfoEx info_ex;
537         struct lsa_TrustDomainInfoPosixOffset posix_offset;
538         struct lsa_TrustDomainInfoAuthInfo auth_info;
539 };
540
541 struct lsa_TrustDomainInfoAuthInfoInternal {
542         struct lsa_DATA_BUF2 auth_blob;
543 };
544
545 struct lsa_TrustDomainInfoFullInfoInternal {
546         struct lsa_TrustDomainInfoInfoEx info_ex;
547         struct lsa_TrustDomainInfoPosixOffset posix_offset;
548         struct lsa_TrustDomainInfoAuthInfoInternal auth_info;
549 };
550
551 struct lsa_TrustDomainInfoInfoEx2Internal {
552         struct lsa_TrustDomainInfoInfoEx info_ex;
553         uint32_t forest_trust_length;
554         uint8_t *forest_trust_data;/* [unique,size_is(forest_trust_length)] */
555 };
556
557 struct lsa_TrustDomainInfoFullInfo2Internal {
558         struct lsa_TrustDomainInfoInfoEx2Internal info;
559         struct lsa_TrustDomainInfoPosixOffset posix_offset;
560         struct lsa_TrustDomainInfoAuthInfo auth_info;
561 };
562
563 struct lsa_TrustDomainInfoSupportedEncTypes {
564         uint32_t enc_types;
565 };
566
567 union lsa_TrustedDomainInfo {
568         struct lsa_TrustDomainInfoName name;/* [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] */
569         struct lsa_TrustDomainInfoControllers controllers;/* [case(LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS)] */
570         struct lsa_TrustDomainInfoPosixOffset posix_offset;/* [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] */
571         struct lsa_TrustDomainInfoPassword password;/* [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] */
572         struct lsa_TrustDomainInfoBasic info_basic;/* [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)] */
573         struct lsa_TrustDomainInfoInfoEx info_ex;/* [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)] */
574         struct lsa_TrustDomainInfoAuthInfo auth_info;/* [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)] */
575         struct lsa_TrustDomainInfoFullInfo full_info;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)] */
576         struct lsa_TrustDomainInfoAuthInfoInternal auth_info_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL)] */
577         struct lsa_TrustDomainInfoFullInfoInternal full_info_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL)] */
578         struct lsa_TrustDomainInfoInfoEx2Internal info_ex2_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL)] */
579         struct lsa_TrustDomainInfoFullInfo2Internal full_info2_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL)] */
580         struct lsa_TrustDomainInfoSupportedEncTypes enc_types;/* [case(LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRTYPION_TYPES)] */
581 }/* [switch_type(lsa_TrustDomInfoEnum)] */;
582
583 struct lsa_DATA_BUF_PTR {
584         struct lsa_DATA_BUF *buf;/* [unique] */
585 };
586
587 struct lsa_RightAttribute {
588         const char *name;/* [unique,charset(UTF16)] */
589 };
590
591 struct lsa_RightSet {
592         uint32_t count;/* [range(0,256)] */
593         struct lsa_StringLarge *names;/* [unique,size_is(count)] */
594 };
595
596 struct lsa_DomainListEx {
597         uint32_t count;
598         struct lsa_TrustDomainInfoInfoEx *domains;/* [unique,size_is(count)] */
599 };
600
601 struct lsa_DomainInfoKerberos {
602         uint32_t enforce_restrictions;
603         uint64_t service_tkt_lifetime;
604         uint64_t user_tkt_lifetime;
605         uint64_t user_tkt_renewaltime;
606         uint64_t clock_skew;
607         uint64_t unknown6;
608 };
609
610 struct lsa_DomainInfoEfs {
611         uint32_t blob_size;
612         uint8_t *efs_blob;/* [unique,size_is(blob_size)] */
613 };
614
615 enum lsa_DomainInfoEnum
616 #ifndef USE_UINT_ENUMS
617  {
618         LSA_DOMAIN_INFO_POLICY_EFS=2,
619         LSA_DOMAIN_INFO_POLICY_KERBEROS=3
620 }
621 #else
622  { __donnot_use_enum_lsa_DomainInfoEnum=0x7FFFFFFF}
623 #define LSA_DOMAIN_INFO_POLICY_EFS ( 2 )
624 #define LSA_DOMAIN_INFO_POLICY_KERBEROS ( 3 )
625 #endif
626 ;
627
628 union lsa_DomainInformationPolicy {
629         struct lsa_DomainInfoEfs efs_info;/* [case(LSA_DOMAIN_INFO_POLICY_EFS)] */
630         struct lsa_DomainInfoKerberos kerberos_info;/* [case(LSA_DOMAIN_INFO_POLICY_KERBEROS)] */
631 }/* [switch_type(uint16)] */;
632
633 struct lsa_TranslatedName2 {
634         enum lsa_SidType sid_type;
635         struct lsa_String name;
636         uint32_t sid_index;
637         uint32_t unknown;
638 };
639
640 struct lsa_TransNameArray2 {
641         uint32_t count;/* [range(0,1000)] */
642         struct lsa_TranslatedName2 *names;/* [unique,size_is(count)] */
643 };
644
645 struct lsa_TranslatedSid2 {
646         enum lsa_SidType sid_type;
647         uint32_t rid;
648         uint32_t sid_index;
649         uint32_t unknown;
650 };
651
652 struct lsa_TransSidArray2 {
653         uint32_t count;/* [range(0,1000)] */
654         struct lsa_TranslatedSid2 *sids;/* [unique,size_is(count)] */
655 };
656
657 struct lsa_TranslatedSid3 {
658         enum lsa_SidType sid_type;
659         struct dom_sid2 *sid;/* [unique] */
660         uint32_t sid_index;
661         uint32_t flags;
662 };
663
664 struct lsa_TransSidArray3 {
665         uint32_t count;/* [range(0,1000)] */
666         struct lsa_TranslatedSid3 *sids;/* [unique,size_is(count)] */
667 };
668
669 struct lsa_ForestTrustBinaryData {
670         uint32_t length;/* [range(0,131072)] */
671         uint8_t *data;/* [unique,size_is(length)] */
672 };
673
674 struct lsa_ForestTrustDomainInfo {
675         struct dom_sid2 *domain_sid;/* [unique] */
676         struct lsa_StringLarge dns_domain_name;
677         struct lsa_StringLarge netbios_domain_name;
678 };
679
680 union lsa_ForestTrustData {
681         struct lsa_String top_level_name;/* [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME)] */
682         struct lsa_StringLarge top_level_name_ex;/* [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX)] */
683         struct lsa_ForestTrustDomainInfo domain_info;/* [case(LSA_FOREST_TRUST_DOMAIN_INFO)] */
684         struct lsa_ForestTrustBinaryData data;/* [default] */
685 }/* [switch_type(uint32)] */;
686
687 enum lsa_ForestTrustRecordType
688 #ifndef USE_UINT_ENUMS
689  {
690         LSA_FOREST_TRUST_TOP_LEVEL_NAME=0,
691         LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX=1,
692         LSA_FOREST_TRUST_DOMAIN_INFO=2,
693         LSA_FOREST_TRUST_RECORD_TYPE_LAST=3
694 }
695 #else
696  { __donnot_use_enum_lsa_ForestTrustRecordType=0x7FFFFFFF}
697 #define LSA_FOREST_TRUST_TOP_LEVEL_NAME ( 0 )
698 #define LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX ( 1 )
699 #define LSA_FOREST_TRUST_DOMAIN_INFO ( 2 )
700 #define LSA_FOREST_TRUST_RECORD_TYPE_LAST ( 3 )
701 #endif
702 ;
703
704 struct lsa_ForestTrustRecord {
705         uint32_t flags;
706         enum lsa_ForestTrustRecordType level;
707         uint64_t unknown;
708         union lsa_ForestTrustData forest_trust_data;/* [switch_is(level)] */
709 };
710
711 struct lsa_ForestTrustInformation {
712         uint32_t count;/* [range(0,4000)] */
713         struct lsa_ForestTrustRecord **entries;/* [unique,size_is(count)] */
714 }/* [public] */;
715
716
717 struct lsa_Close {
718         struct {
719                 struct policy_handle *handle;/* [ref] */
720         } in;
721
722         struct {
723                 struct policy_handle *handle;/* [ref] */
724                 NTSTATUS result;
725         } out;
726
727 };
728
729
730 struct lsa_Delete {
731         struct {
732                 struct policy_handle *handle;/* [ref] */
733         } in;
734
735         struct {
736                 NTSTATUS result;
737         } out;
738
739 };
740
741
742 struct lsa_EnumPrivs {
743         struct {
744                 struct policy_handle *handle;/* [ref] */
745                 uint32_t max_count;
746                 uint32_t *resume_handle;/* [ref] */
747         } in;
748
749         struct {
750                 struct lsa_PrivArray *privs;/* [ref] */
751                 uint32_t *resume_handle;/* [ref] */
752                 NTSTATUS result;
753         } out;
754
755 };
756
757
758 struct lsa_QuerySecurity {
759         struct {
760                 struct policy_handle *handle;/* [ref] */
761                 uint32_t sec_info;
762         } in;
763
764         struct {
765                 struct sec_desc_buf **sdbuf;/* [ref] */
766                 NTSTATUS result;
767         } out;
768
769 };
770
771
772 struct lsa_SetSecObj {
773         struct {
774                 struct policy_handle *handle;/* [ref] */
775                 uint32_t sec_info;
776                 struct sec_desc_buf *sdbuf;/* [ref] */
777         } in;
778
779         struct {
780                 NTSTATUS result;
781         } out;
782
783 };
784
785
786 struct lsa_ChangePassword {
787         struct {
788                 NTSTATUS result;
789         } out;
790
791 };
792
793
794 struct lsa_OpenPolicy {
795         struct {
796                 uint16_t *system_name;/* [unique] */
797                 struct lsa_ObjectAttribute *attr;/* [ref] */
798                 uint32_t access_mask;
799         } in;
800
801         struct {
802                 struct policy_handle *handle;/* [ref] */
803                 NTSTATUS result;
804         } out;
805
806 };
807
808
809 struct lsa_QueryInfoPolicy {
810         struct {
811                 struct policy_handle *handle;/* [ref] */
812                 enum lsa_PolicyInfo level;
813         } in;
814
815         struct {
816                 union lsa_PolicyInformation **info;/* [ref,switch_is(level)] */
817                 NTSTATUS result;
818         } out;
819
820 };
821
822
823 struct lsa_SetInfoPolicy {
824         struct {
825                 struct policy_handle *handle;/* [ref] */
826                 enum lsa_PolicyInfo level;
827                 union lsa_PolicyInformation *info;/* [ref,switch_is(level)] */
828         } in;
829
830         struct {
831                 NTSTATUS result;
832         } out;
833
834 };
835
836
837 struct lsa_ClearAuditLog {
838         struct {
839                 NTSTATUS result;
840         } out;
841
842 };
843
844
845 struct lsa_CreateAccount {
846         struct {
847                 struct policy_handle *handle;/* [ref] */
848                 struct dom_sid2 *sid;/* [ref] */
849                 uint32_t access_mask;
850         } in;
851
852         struct {
853                 struct policy_handle *acct_handle;/* [ref] */
854                 NTSTATUS result;
855         } out;
856
857 };
858
859
860 struct lsa_EnumAccounts {
861         struct {
862                 struct policy_handle *handle;/* [ref] */
863                 uint32_t num_entries;/* [range(0,8192)] */
864                 uint32_t *resume_handle;/* [ref] */
865         } in;
866
867         struct {
868                 struct lsa_SidArray *sids;/* [ref] */
869                 uint32_t *resume_handle;/* [ref] */
870                 NTSTATUS result;
871         } out;
872
873 };
874
875
876 struct lsa_CreateTrustedDomain {
877         struct {
878                 struct policy_handle *policy_handle;/* [ref] */
879                 struct lsa_DomainInfo *info;/* [ref] */
880                 uint32_t access_mask;
881         } in;
882
883         struct {
884                 struct policy_handle *trustdom_handle;/* [ref] */
885                 NTSTATUS result;
886         } out;
887
888 };
889
890
891 struct lsa_EnumTrustDom {
892         struct {
893                 struct policy_handle *handle;/* [ref] */
894                 uint32_t max_size;
895                 uint32_t *resume_handle;/* [ref] */
896         } in;
897
898         struct {
899                 struct lsa_DomainList *domains;/* [ref] */
900                 uint32_t *resume_handle;/* [ref] */
901                 NTSTATUS result;
902         } out;
903
904 };
905
906
907 struct lsa_LookupNames {
908         struct {
909                 struct policy_handle *handle;/* [ref] */
910                 uint32_t num_names;/* [range(0,1000)] */
911                 struct lsa_String *names;/* [size_is(num_names)] */
912                 enum lsa_LookupNamesLevel level;
913                 struct lsa_TransSidArray *sids;/* [ref] */
914                 uint32_t *count;/* [ref] */
915         } in;
916
917         struct {
918                 struct lsa_RefDomainList **domains;/* [ref] */
919                 struct lsa_TransSidArray *sids;/* [ref] */
920                 uint32_t *count;/* [ref] */
921                 NTSTATUS result;
922         } out;
923
924 };
925
926
927 struct lsa_LookupSids {
928         struct {
929                 struct policy_handle *handle;/* [ref] */
930                 struct lsa_SidArray *sids;/* [ref] */
931                 uint16_t level;
932                 struct lsa_TransNameArray *names;/* [ref] */
933                 uint32_t *count;/* [ref] */
934         } in;
935
936         struct {
937                 struct lsa_RefDomainList **domains;/* [ref] */
938                 struct lsa_TransNameArray *names;/* [ref] */
939                 uint32_t *count;/* [ref] */
940                 NTSTATUS result;
941         } out;
942
943 };
944
945
946 struct lsa_CreateSecret {
947         struct {
948                 struct policy_handle *handle;/* [ref] */
949                 struct lsa_String name;
950                 uint32_t access_mask;
951         } in;
952
953         struct {
954                 struct policy_handle *sec_handle;/* [ref] */
955                 NTSTATUS result;
956         } out;
957
958 };
959
960
961 struct lsa_OpenAccount {
962         struct {
963                 struct policy_handle *handle;/* [ref] */
964                 struct dom_sid2 *sid;/* [ref] */
965                 uint32_t access_mask;
966         } in;
967
968         struct {
969                 struct policy_handle *acct_handle;/* [ref] */
970                 NTSTATUS result;
971         } out;
972
973 };
974
975
976 struct lsa_EnumPrivsAccount {
977         struct {
978                 struct policy_handle *handle;/* [ref] */
979         } in;
980
981         struct {
982                 struct lsa_PrivilegeSet **privs;/* [ref] */
983                 NTSTATUS result;
984         } out;
985
986 };
987
988
989 struct lsa_AddPrivilegesToAccount {
990         struct {
991                 struct policy_handle *handle;/* [ref] */
992                 struct lsa_PrivilegeSet *privs;/* [ref] */
993         } in;
994
995         struct {
996                 NTSTATUS result;
997         } out;
998
999 };
1000
1001
1002 struct lsa_RemovePrivilegesFromAccount {
1003         struct {
1004                 struct policy_handle *handle;/* [ref] */
1005                 uint8_t remove_all;
1006                 struct lsa_PrivilegeSet *privs;/* [unique] */
1007         } in;
1008
1009         struct {
1010                 NTSTATUS result;
1011         } out;
1012
1013 };
1014
1015
1016 struct lsa_GetQuotasForAccount {
1017         struct {
1018                 NTSTATUS result;
1019         } out;
1020
1021 };
1022
1023
1024 struct lsa_SetQuotasForAccount {
1025         struct {
1026                 NTSTATUS result;
1027         } out;
1028
1029 };
1030
1031
1032 struct lsa_GetSystemAccessAccount {
1033         struct {
1034                 struct policy_handle *handle;/* [ref] */
1035         } in;
1036
1037         struct {
1038                 uint32_t *access_mask;/* [ref] */
1039                 NTSTATUS result;
1040         } out;
1041
1042 };
1043
1044
1045 struct lsa_SetSystemAccessAccount {
1046         struct {
1047                 struct policy_handle *handle;/* [ref] */
1048                 uint32_t access_mask;
1049         } in;
1050
1051         struct {
1052                 NTSTATUS result;
1053         } out;
1054
1055 };
1056
1057
1058 struct lsa_OpenTrustedDomain {
1059         struct {
1060                 struct policy_handle *handle;/* [ref] */
1061                 struct dom_sid2 *sid;/* [ref] */
1062                 uint32_t access_mask;
1063         } in;
1064
1065         struct {
1066                 struct policy_handle *trustdom_handle;/* [ref] */
1067                 NTSTATUS result;
1068         } out;
1069
1070 };
1071
1072
1073 struct lsa_QueryTrustedDomainInfo {
1074         struct {
1075                 struct policy_handle *trustdom_handle;/* [ref] */
1076                 enum lsa_TrustDomInfoEnum level;
1077         } in;
1078
1079         struct {
1080                 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1081                 NTSTATUS result;
1082         } out;
1083
1084 };
1085
1086
1087 struct lsa_SetInformationTrustedDomain {
1088         struct {
1089                 struct policy_handle *trustdom_handle;/* [ref] */
1090                 enum lsa_TrustDomInfoEnum level;
1091                 union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
1092         } in;
1093
1094         struct {
1095                 NTSTATUS result;
1096         } out;
1097
1098 };
1099
1100
1101 struct lsa_OpenSecret {
1102         struct {
1103                 struct policy_handle *handle;/* [ref] */
1104                 struct lsa_String name;
1105                 uint32_t access_mask;
1106         } in;
1107
1108         struct {
1109                 struct policy_handle *sec_handle;/* [ref] */
1110                 NTSTATUS result;
1111         } out;
1112
1113 };
1114
1115
1116 struct lsa_SetSecret {
1117         struct {
1118                 struct policy_handle *sec_handle;/* [ref] */
1119                 struct lsa_DATA_BUF *new_val;/* [unique] */
1120                 struct lsa_DATA_BUF *old_val;/* [unique] */
1121         } in;
1122
1123         struct {
1124                 NTSTATUS result;
1125         } out;
1126
1127 };
1128
1129
1130 struct lsa_QuerySecret {
1131         struct {
1132                 struct policy_handle *sec_handle;/* [ref] */
1133                 struct lsa_DATA_BUF_PTR *new_val;/* [unique] */
1134                 NTTIME *new_mtime;/* [unique] */
1135                 struct lsa_DATA_BUF_PTR *old_val;/* [unique] */
1136                 NTTIME *old_mtime;/* [unique] */
1137         } in;
1138
1139         struct {
1140                 struct lsa_DATA_BUF_PTR *new_val;/* [unique] */
1141                 NTTIME *new_mtime;/* [unique] */
1142                 struct lsa_DATA_BUF_PTR *old_val;/* [unique] */
1143                 NTTIME *old_mtime;/* [unique] */
1144                 NTSTATUS result;
1145         } out;
1146
1147 };
1148
1149
1150 struct lsa_LookupPrivValue {
1151         struct {
1152                 struct policy_handle *handle;/* [ref] */
1153                 struct lsa_String *name;/* [ref] */
1154         } in;
1155
1156         struct {
1157                 struct lsa_LUID *luid;/* [ref] */
1158                 NTSTATUS result;
1159         } out;
1160
1161 };
1162
1163
1164 struct lsa_LookupPrivName {
1165         struct {
1166                 struct policy_handle *handle;/* [ref] */
1167                 struct lsa_LUID *luid;/* [ref] */
1168         } in;
1169
1170         struct {
1171                 struct lsa_StringLarge **name;/* [ref] */
1172                 NTSTATUS result;
1173         } out;
1174
1175 };
1176
1177
1178 struct lsa_LookupPrivDisplayName {
1179         struct {
1180                 struct policy_handle *handle;/* [ref] */
1181                 struct lsa_String *name;/* [ref] */
1182                 uint16_t language_id;
1183                 uint16_t language_id_sys;
1184         } in;
1185
1186         struct {
1187                 struct lsa_StringLarge **disp_name;/* [ref] */
1188                 uint16_t *returned_language_id;/* [ref] */
1189                 NTSTATUS result;
1190         } out;
1191
1192 };
1193
1194
1195 struct lsa_DeleteObject {
1196         struct {
1197                 struct policy_handle *handle;/* [ref] */
1198         } in;
1199
1200         struct {
1201                 struct policy_handle *handle;/* [ref] */
1202                 NTSTATUS result;
1203         } out;
1204
1205 };
1206
1207
1208 struct lsa_EnumAccountsWithUserRight {
1209         struct {
1210                 struct policy_handle *handle;/* [ref] */
1211                 struct lsa_String *name;/* [unique] */
1212         } in;
1213
1214         struct {
1215                 struct lsa_SidArray *sids;/* [ref] */
1216                 NTSTATUS result;
1217         } out;
1218
1219 };
1220
1221
1222 struct lsa_EnumAccountRights {
1223         struct {
1224                 struct policy_handle *handle;/* [ref] */
1225                 struct dom_sid2 *sid;/* [ref] */
1226         } in;
1227
1228         struct {
1229                 struct lsa_RightSet *rights;/* [ref] */
1230                 NTSTATUS result;
1231         } out;
1232
1233 };
1234
1235
1236 struct lsa_AddAccountRights {
1237         struct {
1238                 struct policy_handle *handle;/* [ref] */
1239                 struct dom_sid2 *sid;/* [ref] */
1240                 struct lsa_RightSet *rights;/* [ref] */
1241         } in;
1242
1243         struct {
1244                 NTSTATUS result;
1245         } out;
1246
1247 };
1248
1249
1250 struct lsa_RemoveAccountRights {
1251         struct {
1252                 struct policy_handle *handle;/* [ref] */
1253                 struct dom_sid2 *sid;/* [ref] */
1254                 uint8_t remove_all;
1255                 struct lsa_RightSet *rights;/* [ref] */
1256         } in;
1257
1258         struct {
1259                 NTSTATUS result;
1260         } out;
1261
1262 };
1263
1264
1265 struct lsa_QueryTrustedDomainInfoBySid {
1266         struct {
1267                 struct policy_handle *handle;/* [ref] */
1268                 struct dom_sid2 *dom_sid;/* [ref] */
1269                 enum lsa_TrustDomInfoEnum level;
1270         } in;
1271
1272         struct {
1273                 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1274                 NTSTATUS result;
1275         } out;
1276
1277 };
1278
1279
1280 struct lsa_SetTrustedDomainInfo {
1281         struct {
1282                 struct policy_handle *handle;/* [ref] */
1283                 struct dom_sid2 *dom_sid;/* [ref] */
1284                 enum lsa_TrustDomInfoEnum level;
1285                 union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
1286         } in;
1287
1288         struct {
1289                 NTSTATUS result;
1290         } out;
1291
1292 };
1293
1294
1295 struct lsa_DeleteTrustedDomain {
1296         struct {
1297                 struct policy_handle *handle;/* [ref] */
1298                 struct dom_sid2 *dom_sid;/* [ref] */
1299         } in;
1300
1301         struct {
1302                 NTSTATUS result;
1303         } out;
1304
1305 };
1306
1307
1308 struct lsa_StorePrivateData {
1309         struct {
1310                 NTSTATUS result;
1311         } out;
1312
1313 };
1314
1315
1316 struct lsa_RetrievePrivateData {
1317         struct {
1318                 NTSTATUS result;
1319         } out;
1320
1321 };
1322
1323
1324 struct lsa_OpenPolicy2 {
1325         struct {
1326                 const char *system_name;/* [unique,charset(UTF16)] */
1327                 struct lsa_ObjectAttribute *attr;/* [ref] */
1328                 uint32_t access_mask;
1329         } in;
1330
1331         struct {
1332                 struct policy_handle *handle;/* [ref] */
1333                 NTSTATUS result;
1334         } out;
1335
1336 };
1337
1338
1339 struct lsa_GetUserName {
1340         struct {
1341                 const char *system_name;/* [unique,charset(UTF16)] */
1342                 struct lsa_String **account_name;/* [ref] */
1343                 struct lsa_String **authority_name;/* [unique] */
1344         } in;
1345
1346         struct {
1347                 struct lsa_String **account_name;/* [ref] */
1348                 struct lsa_String **authority_name;/* [unique] */
1349                 NTSTATUS result;
1350         } out;
1351
1352 };
1353
1354
1355 struct lsa_QueryInfoPolicy2 {
1356         struct {
1357                 struct policy_handle *handle;/* [ref] */
1358                 enum lsa_PolicyInfo level;
1359         } in;
1360
1361         struct {
1362                 union lsa_PolicyInformation **info;/* [ref,switch_is(level)] */
1363                 NTSTATUS result;
1364         } out;
1365
1366 };
1367
1368
1369 struct lsa_SetInfoPolicy2 {
1370         struct {
1371                 struct policy_handle *handle;/* [ref] */
1372                 enum lsa_PolicyInfo level;
1373                 union lsa_PolicyInformation *info;/* [ref,switch_is(level)] */
1374         } in;
1375
1376         struct {
1377                 NTSTATUS result;
1378         } out;
1379
1380 };
1381
1382
1383 struct lsa_QueryTrustedDomainInfoByName {
1384         struct {
1385                 struct policy_handle *handle;/* [ref] */
1386                 struct lsa_String *trusted_domain;/* [ref] */
1387                 enum lsa_TrustDomInfoEnum level;
1388         } in;
1389
1390         struct {
1391                 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1392                 NTSTATUS result;
1393         } out;
1394
1395 };
1396
1397
1398 struct lsa_SetTrustedDomainInfoByName {
1399         struct {
1400                 struct policy_handle *handle;/* [ref] */
1401                 struct lsa_String trusted_domain;
1402                 enum lsa_TrustDomInfoEnum level;
1403                 union lsa_TrustedDomainInfo *info;/* [unique,switch_is(level)] */
1404         } in;
1405
1406         struct {
1407                 NTSTATUS result;
1408         } out;
1409
1410 };
1411
1412
1413 struct lsa_EnumTrustedDomainsEx {
1414         struct {
1415                 struct policy_handle *handle;/* [ref] */
1416                 uint32_t max_size;
1417                 uint32_t *resume_handle;/* [ref] */
1418         } in;
1419
1420         struct {
1421                 struct lsa_DomainListEx *domains;/* [ref] */
1422                 uint32_t *resume_handle;/* [ref] */
1423                 NTSTATUS result;
1424         } out;
1425
1426 };
1427
1428
1429 struct lsa_CreateTrustedDomainEx {
1430         struct {
1431                 struct policy_handle *policy_handle;/* [ref] */
1432                 struct lsa_TrustDomainInfoInfoEx *info;/* [ref] */
1433                 struct lsa_TrustDomainInfoAuthInfoInternal *auth_info;/* [ref] */
1434                 uint32_t access_mask;
1435         } in;
1436
1437         struct {
1438                 struct policy_handle *trustdom_handle;/* [ref] */
1439                 NTSTATUS result;
1440         } out;
1441
1442 };
1443
1444
1445 struct lsa_CloseTrustedDomainEx {
1446         struct {
1447                 struct policy_handle *handle;/* [ref] */
1448         } in;
1449
1450         struct {
1451                 struct policy_handle *handle;/* [ref] */
1452                 NTSTATUS result;
1453         } out;
1454
1455 };
1456
1457
1458 struct lsa_QueryDomainInformationPolicy {
1459         struct {
1460                 struct policy_handle *handle;/* [ref] */
1461                 uint16_t level;
1462         } in;
1463
1464         struct {
1465                 union lsa_DomainInformationPolicy **info;/* [ref,switch_is(level)] */
1466                 NTSTATUS result;
1467         } out;
1468
1469 };
1470
1471
1472 struct lsa_SetDomainInformationPolicy {
1473         struct {
1474                 struct policy_handle *handle;/* [ref] */
1475                 uint16_t level;
1476                 union lsa_DomainInformationPolicy *info;/* [unique,switch_is(level)] */
1477         } in;
1478
1479         struct {
1480                 NTSTATUS result;
1481         } out;
1482
1483 };
1484
1485
1486 struct lsa_OpenTrustedDomainByName {
1487         struct {
1488                 struct policy_handle *handle;/* [ref] */
1489                 struct lsa_String name;
1490                 uint32_t access_mask;
1491         } in;
1492
1493         struct {
1494                 struct policy_handle *trustdom_handle;/* [ref] */
1495                 NTSTATUS result;
1496         } out;
1497
1498 };
1499
1500
1501 struct lsa_TestCall {
1502         struct {
1503                 NTSTATUS result;
1504         } out;
1505
1506 };
1507
1508
1509 struct lsa_LookupSids2 {
1510         struct {
1511                 struct policy_handle *handle;/* [ref] */
1512                 struct lsa_SidArray *sids;/* [ref] */
1513                 uint16_t level;
1514                 uint32_t unknown1;
1515                 uint32_t unknown2;
1516                 struct lsa_TransNameArray2 *names;/* [ref] */
1517                 uint32_t *count;/* [ref] */
1518         } in;
1519
1520         struct {
1521                 struct lsa_RefDomainList **domains;/* [ref] */
1522                 struct lsa_TransNameArray2 *names;/* [ref] */
1523                 uint32_t *count;/* [ref] */
1524                 NTSTATUS result;
1525         } out;
1526
1527 };
1528
1529
1530 struct lsa_LookupNames2 {
1531         struct {
1532                 struct policy_handle *handle;/* [ref] */
1533                 uint32_t num_names;/* [range(0,1000)] */
1534                 struct lsa_String *names;/* [size_is(num_names)] */
1535                 enum lsa_LookupNamesLevel level;
1536                 uint32_t lookup_options;
1537                 uint32_t client_revision;
1538                 struct lsa_TransSidArray2 *sids;/* [ref] */
1539                 uint32_t *count;/* [ref] */
1540         } in;
1541
1542         struct {
1543                 struct lsa_RefDomainList **domains;/* [ref] */
1544                 struct lsa_TransSidArray2 *sids;/* [ref] */
1545                 uint32_t *count;/* [ref] */
1546                 NTSTATUS result;
1547         } out;
1548
1549 };
1550
1551
1552 struct lsa_CreateTrustedDomainEx2 {
1553         struct {
1554                 struct policy_handle *policy_handle;/* [ref] */
1555                 struct lsa_TrustDomainInfoInfoEx *info;/* [ref] */
1556                 struct lsa_TrustDomainInfoAuthInfoInternal *auth_info;/* [ref] */
1557                 uint32_t access_mask;
1558         } in;
1559
1560         struct {
1561                 struct policy_handle *trustdom_handle;/* [ref] */
1562                 NTSTATUS result;
1563         } out;
1564
1565 };
1566
1567
1568 struct lsa_CREDRWRITE {
1569         struct {
1570                 NTSTATUS result;
1571         } out;
1572
1573 };
1574
1575
1576 struct lsa_CREDRREAD {
1577         struct {
1578                 NTSTATUS result;
1579         } out;
1580
1581 };
1582
1583
1584 struct lsa_CREDRENUMERATE {
1585         struct {
1586                 NTSTATUS result;
1587         } out;
1588
1589 };
1590
1591
1592 struct lsa_CREDRWRITEDOMAINCREDENTIALS {
1593         struct {
1594                 NTSTATUS result;
1595         } out;
1596
1597 };
1598
1599
1600 struct lsa_CREDRREADDOMAINCREDENTIALS {
1601         struct {
1602                 NTSTATUS result;
1603         } out;
1604
1605 };
1606
1607
1608 struct lsa_CREDRDELETE {
1609         struct {
1610                 NTSTATUS result;
1611         } out;
1612
1613 };
1614
1615
1616 struct lsa_CREDRGETTARGETINFO {
1617         struct {
1618                 NTSTATUS result;
1619         } out;
1620
1621 };
1622
1623
1624 struct lsa_CREDRPROFILELOADED {
1625         struct {
1626                 NTSTATUS result;
1627         } out;
1628
1629 };
1630
1631
1632 struct lsa_LookupNames3 {
1633         struct {
1634                 struct policy_handle *handle;/* [ref] */
1635                 uint32_t num_names;/* [range(0,1000)] */
1636                 struct lsa_String *names;/* [size_is(num_names)] */
1637                 enum lsa_LookupNamesLevel level;
1638                 uint32_t lookup_options;
1639                 uint32_t client_revision;
1640                 struct lsa_TransSidArray3 *sids;/* [ref] */
1641                 uint32_t *count;/* [ref] */
1642         } in;
1643
1644         struct {
1645                 struct lsa_RefDomainList **domains;/* [ref] */
1646                 struct lsa_TransSidArray3 *sids;/* [ref] */
1647                 uint32_t *count;/* [ref] */
1648                 NTSTATUS result;
1649         } out;
1650
1651 };
1652
1653
1654 struct lsa_CREDRGETSESSIONTYPES {
1655         struct {
1656                 NTSTATUS result;
1657         } out;
1658
1659 };
1660
1661
1662 struct lsa_LSARREGISTERAUDITEVENT {
1663         struct {
1664                 NTSTATUS result;
1665         } out;
1666
1667 };
1668
1669
1670 struct lsa_LSARGENAUDITEVENT {
1671         struct {
1672                 NTSTATUS result;
1673         } out;
1674
1675 };
1676
1677
1678 struct lsa_LSARUNREGISTERAUDITEVENT {
1679         struct {
1680                 NTSTATUS result;
1681         } out;
1682
1683 };
1684
1685
1686 struct lsa_lsaRQueryForestTrustInformation {
1687         struct {
1688                 struct policy_handle *handle;/* [ref] */
1689                 struct lsa_String *trusted_domain_name;/* [ref] */
1690                 uint16_t unknown;
1691         } in;
1692
1693         struct {
1694                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1695                 NTSTATUS result;
1696         } out;
1697
1698 };
1699
1700
1701 struct lsa_LSARSETFORESTTRUSTINFORMATION {
1702         struct {
1703                 NTSTATUS result;
1704         } out;
1705
1706 };
1707
1708
1709 struct lsa_CREDRRENAME {
1710         struct {
1711                 NTSTATUS result;
1712         } out;
1713
1714 };
1715
1716
1717 struct lsa_LookupSids3 {
1718         struct {
1719                 struct lsa_SidArray *sids;/* [ref] */
1720                 uint16_t level;
1721                 uint32_t unknown1;
1722                 uint32_t unknown2;
1723                 struct lsa_TransNameArray2 *names;/* [ref] */
1724                 uint32_t *count;/* [ref] */
1725         } in;
1726
1727         struct {
1728                 struct lsa_RefDomainList **domains;/* [ref] */
1729                 struct lsa_TransNameArray2 *names;/* [ref] */
1730                 uint32_t *count;/* [ref] */
1731                 NTSTATUS result;
1732         } out;
1733
1734 };
1735
1736
1737 struct lsa_LookupNames4 {
1738         struct {
1739                 uint32_t num_names;/* [range(0,1000)] */
1740                 struct lsa_String *names;/* [size_is(num_names)] */
1741                 enum lsa_LookupNamesLevel level;
1742                 uint32_t lookup_options;
1743                 uint32_t client_revision;
1744                 struct lsa_TransSidArray3 *sids;/* [ref] */
1745                 uint32_t *count;/* [ref] */
1746         } in;
1747
1748         struct {
1749                 struct lsa_RefDomainList **domains;/* [ref] */
1750                 struct lsa_TransSidArray3 *sids;/* [ref] */
1751                 uint32_t *count;/* [ref] */
1752                 NTSTATUS result;
1753         } out;
1754
1755 };
1756
1757
1758 struct lsa_LSAROPENPOLICYSCE {
1759         struct {
1760                 NTSTATUS result;
1761         } out;
1762
1763 };
1764
1765
1766 struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE {
1767         struct {
1768                 NTSTATUS result;
1769         } out;
1770
1771 };
1772
1773
1774 struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE {
1775         struct {
1776                 NTSTATUS result;
1777         } out;
1778
1779 };
1780
1781
1782 struct lsa_LSARADTREPORTSECURITYEVENT {
1783         struct {
1784                 NTSTATUS result;
1785         } out;
1786
1787 };
1788
1789 #endif /* _HEADER_lsarpc */