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