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