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