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