lsa: fill in lsa_StorePrivateData and lsa_RetrievePrivateData and rerun make samba3...
[ira/wip.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=0,
139         LSA_AUDIT_POLICY_SUCCESS=1,
140         LSA_AUDIT_POLICY_FAILURE=2,
141         LSA_AUDIT_POLICY_ALL=(LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE),
142         LSA_AUDIT_POLICY_CLEAR=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=0,
158         LSA_AUDIT_CATEGORY_LOGON=1,
159         LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS=2,
160         LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS=3,
161         LSA_AUDIT_CATEGORY_PROCCESS_TRACKING=4,
162         LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES=5,
163         LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT=6,
164         LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS=7,
165         LSA_AUDIT_CATEGORY_ACCOUNT_LOGON=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=2,
200         LSA_ROLE_PRIMARY=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=1,
253         LSA_POLICY_INFO_AUDIT_EVENTS=2,
254         LSA_POLICY_INFO_DOMAIN=3,
255         LSA_POLICY_INFO_PD=4,
256         LSA_POLICY_INFO_ACCOUNT_DOMAIN=5,
257         LSA_POLICY_INFO_ROLE=6,
258         LSA_POLICY_INFO_REPLICA=7,
259         LSA_POLICY_INFO_QUOTA=8,
260         LSA_POLICY_INFO_MOD=9,
261         LSA_POLICY_INFO_AUDIT_FULL_SET=10,
262         LSA_POLICY_INFO_AUDIT_FULL_QUERY=11,
263         LSA_POLICY_INFO_DNS=12,
264         LSA_POLICY_INFO_DNS_INT=13,
265         LSA_POLICY_INFO_L_ACCOUNT_DOMAIN=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=0,
320         SID_NAME_USER=1,
321         SID_NAME_DOM_GRP=2,
322         SID_NAME_DOMAIN=3,
323         SID_NAME_ALIAS=4,
324         SID_NAME_WKN_GRP=5,
325         SID_NAME_DELETED=6,
326         SID_NAME_INVALID=7,
327         SID_NAME_UNKNOWN=8,
328         SID_NAME_COMPUTER=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=1,
366         LSA_LOOKUP_NAMES_DOMAINS_ONLY=2,
367         LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY=3,
368         LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY=4,
369         LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY=5,
370         LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2=6,
371         LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC=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=1,
437         LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS=2,
438         LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET=3,
439         LSA_TRUSTED_DOMAIN_INFO_PASSWORD=4,
440         LSA_TRUSTED_DOMAIN_INFO_BASIC=5,
441         LSA_TRUSTED_DOMAIN_INFO_INFO_EX=6,
442         LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO=7,
443         LSA_TRUSTED_DOMAIN_INFO_FULL_INFO=8,
444         LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL=9,
445         LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL=10,
446         LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL=11,
447         LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL=12,
448         LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES=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=0x00000001,
476         LSA_TRUST_TYPE_UPLEVEL=0x00000002,
477         LSA_TRUST_TYPE_MIT=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=0,
533         TRUST_AUTH_TYPE_NT4OWF=1,
534         TRUST_AUTH_TYPE_CLEAR=2,
535         TRUST_AUTH_TYPE_VERSION=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=2,
645         LSA_DOMAIN_INFO_POLICY_KERBEROS=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 struct lsa_TranslatedSid2 {
672         enum lsa_SidType sid_type;
673         uint32_t rid;
674         uint32_t sid_index;
675         uint32_t unknown;
676 };
677
678 struct lsa_TransSidArray2 {
679         uint32_t count;/* [range(0,1000)] */
680         struct lsa_TranslatedSid2 *sids;/* [unique,size_is(count)] */
681 };
682
683 struct lsa_TranslatedSid3 {
684         enum lsa_SidType sid_type;
685         struct dom_sid2 *sid;/* [unique] */
686         uint32_t sid_index;
687         uint32_t flags;
688 };
689
690 struct lsa_TransSidArray3 {
691         uint32_t count;/* [range(0,1000)] */
692         struct lsa_TranslatedSid3 *sids;/* [unique,size_is(count)] */
693 };
694
695 struct lsa_ForestTrustBinaryData {
696         uint32_t length;/* [range(0,131072)] */
697         uint8_t *data;/* [unique,size_is(length)] */
698 };
699
700 struct lsa_ForestTrustDomainInfo {
701         struct dom_sid2 *domain_sid;/* [unique] */
702         struct lsa_StringLarge dns_domain_name;
703         struct lsa_StringLarge netbios_domain_name;
704 };
705
706 union lsa_ForestTrustData {
707         struct lsa_String top_level_name;/* [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME)] */
708         struct lsa_StringLarge top_level_name_ex;/* [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX)] */
709         struct lsa_ForestTrustDomainInfo domain_info;/* [case(LSA_FOREST_TRUST_DOMAIN_INFO)] */
710         struct lsa_ForestTrustBinaryData data;/* [default] */
711 }/* [switch_type(uint32)] */;
712
713 enum lsa_ForestTrustRecordType
714 #ifndef USE_UINT_ENUMS
715  {
716         LSA_FOREST_TRUST_TOP_LEVEL_NAME=0,
717         LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX=1,
718         LSA_FOREST_TRUST_DOMAIN_INFO=2,
719         LSA_FOREST_TRUST_RECORD_TYPE_LAST=3
720 }
721 #else
722  { __donnot_use_enum_lsa_ForestTrustRecordType=0x7FFFFFFF}
723 #define LSA_FOREST_TRUST_TOP_LEVEL_NAME ( 0 )
724 #define LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX ( 1 )
725 #define LSA_FOREST_TRUST_DOMAIN_INFO ( 2 )
726 #define LSA_FOREST_TRUST_RECORD_TYPE_LAST ( 3 )
727 #endif
728 ;
729
730 struct lsa_ForestTrustRecord {
731         uint32_t flags;
732         enum lsa_ForestTrustRecordType level;
733         uint64_t unknown;
734         union lsa_ForestTrustData forest_trust_data;/* [switch_is(level)] */
735 };
736
737 struct lsa_ForestTrustInformation {
738         uint32_t count;/* [range(0,4000)] */
739         struct lsa_ForestTrustRecord **entries;/* [unique,size_is(count)] */
740 }/* [public] */;
741
742
743 struct lsa_Close {
744         struct {
745                 struct policy_handle *handle;/* [ref] */
746         } in;
747
748         struct {
749                 struct policy_handle *handle;/* [ref] */
750                 NTSTATUS result;
751         } out;
752
753 };
754
755
756 struct lsa_Delete {
757         struct {
758                 struct policy_handle *handle;/* [ref] */
759         } in;
760
761         struct {
762                 NTSTATUS result;
763         } out;
764
765 };
766
767
768 struct lsa_EnumPrivs {
769         struct {
770                 struct policy_handle *handle;/* [ref] */
771                 uint32_t max_count;
772                 uint32_t *resume_handle;/* [ref] */
773         } in;
774
775         struct {
776                 struct lsa_PrivArray *privs;/* [ref] */
777                 uint32_t *resume_handle;/* [ref] */
778                 NTSTATUS result;
779         } out;
780
781 };
782
783
784 struct lsa_QuerySecurity {
785         struct {
786                 struct policy_handle *handle;/* [ref] */
787                 uint32_t sec_info;
788         } in;
789
790         struct {
791                 struct sec_desc_buf **sdbuf;/* [ref] */
792                 NTSTATUS result;
793         } out;
794
795 };
796
797
798 struct lsa_SetSecObj {
799         struct {
800                 struct policy_handle *handle;/* [ref] */
801                 uint32_t sec_info;
802                 struct sec_desc_buf *sdbuf;/* [ref] */
803         } in;
804
805         struct {
806                 NTSTATUS result;
807         } out;
808
809 };
810
811
812 struct lsa_ChangePassword {
813         struct {
814                 NTSTATUS result;
815         } out;
816
817 };
818
819
820 struct lsa_OpenPolicy {
821         struct {
822                 uint16_t *system_name;/* [unique] */
823                 struct lsa_ObjectAttribute *attr;/* [ref] */
824                 uint32_t access_mask;
825         } in;
826
827         struct {
828                 struct policy_handle *handle;/* [ref] */
829                 NTSTATUS result;
830         } out;
831
832 };
833
834
835 struct lsa_QueryInfoPolicy {
836         struct {
837                 struct policy_handle *handle;/* [ref] */
838                 enum lsa_PolicyInfo level;
839         } in;
840
841         struct {
842                 union lsa_PolicyInformation **info;/* [ref,switch_is(level)] */
843                 NTSTATUS result;
844         } out;
845
846 };
847
848
849 struct lsa_SetInfoPolicy {
850         struct {
851                 struct policy_handle *handle;/* [ref] */
852                 enum lsa_PolicyInfo level;
853                 union lsa_PolicyInformation *info;/* [ref,switch_is(level)] */
854         } in;
855
856         struct {
857                 NTSTATUS result;
858         } out;
859
860 };
861
862
863 struct lsa_ClearAuditLog {
864         struct {
865                 NTSTATUS result;
866         } out;
867
868 };
869
870
871 struct lsa_CreateAccount {
872         struct {
873                 struct policy_handle *handle;/* [ref] */
874                 struct dom_sid2 *sid;/* [ref] */
875                 uint32_t access_mask;
876         } in;
877
878         struct {
879                 struct policy_handle *acct_handle;/* [ref] */
880                 NTSTATUS result;
881         } out;
882
883 };
884
885
886 struct lsa_EnumAccounts {
887         struct {
888                 struct policy_handle *handle;/* [ref] */
889                 uint32_t num_entries;/* [range(0,8192)] */
890                 uint32_t *resume_handle;/* [ref] */
891         } in;
892
893         struct {
894                 struct lsa_SidArray *sids;/* [ref] */
895                 uint32_t *resume_handle;/* [ref] */
896                 NTSTATUS result;
897         } out;
898
899 };
900
901
902 struct lsa_CreateTrustedDomain {
903         struct {
904                 struct policy_handle *policy_handle;/* [ref] */
905                 struct lsa_DomainInfo *info;/* [ref] */
906                 uint32_t access_mask;
907         } in;
908
909         struct {
910                 struct policy_handle *trustdom_handle;/* [ref] */
911                 NTSTATUS result;
912         } out;
913
914 };
915
916
917 struct lsa_EnumTrustDom {
918         struct {
919                 struct policy_handle *handle;/* [ref] */
920                 uint32_t max_size;
921                 uint32_t *resume_handle;/* [ref] */
922         } in;
923
924         struct {
925                 struct lsa_DomainList *domains;/* [ref] */
926                 uint32_t *resume_handle;/* [ref] */
927                 NTSTATUS result;
928         } out;
929
930 };
931
932
933 struct lsa_LookupNames {
934         struct {
935                 struct policy_handle *handle;/* [ref] */
936                 uint32_t num_names;/* [range(0,1000)] */
937                 struct lsa_String *names;/* [size_is(num_names)] */
938                 enum lsa_LookupNamesLevel level;
939                 struct lsa_TransSidArray *sids;/* [ref] */
940                 uint32_t *count;/* [ref] */
941         } in;
942
943         struct {
944                 struct lsa_RefDomainList **domains;/* [ref] */
945                 struct lsa_TransSidArray *sids;/* [ref] */
946                 uint32_t *count;/* [ref] */
947                 NTSTATUS result;
948         } out;
949
950 };
951
952
953 struct lsa_LookupSids {
954         struct {
955                 struct policy_handle *handle;/* [ref] */
956                 struct lsa_SidArray *sids;/* [ref] */
957                 uint16_t level;
958                 struct lsa_TransNameArray *names;/* [ref] */
959                 uint32_t *count;/* [ref] */
960         } in;
961
962         struct {
963                 struct lsa_RefDomainList **domains;/* [ref] */
964                 struct lsa_TransNameArray *names;/* [ref] */
965                 uint32_t *count;/* [ref] */
966                 NTSTATUS result;
967         } out;
968
969 };
970
971
972 struct lsa_CreateSecret {
973         struct {
974                 struct policy_handle *handle;/* [ref] */
975                 struct lsa_String name;
976                 uint32_t access_mask;
977         } in;
978
979         struct {
980                 struct policy_handle *sec_handle;/* [ref] */
981                 NTSTATUS result;
982         } out;
983
984 };
985
986
987 struct lsa_OpenAccount {
988         struct {
989                 struct policy_handle *handle;/* [ref] */
990                 struct dom_sid2 *sid;/* [ref] */
991                 uint32_t access_mask;
992         } in;
993
994         struct {
995                 struct policy_handle *acct_handle;/* [ref] */
996                 NTSTATUS result;
997         } out;
998
999 };
1000
1001
1002 struct lsa_EnumPrivsAccount {
1003         struct {
1004                 struct policy_handle *handle;/* [ref] */
1005         } in;
1006
1007         struct {
1008                 struct lsa_PrivilegeSet **privs;/* [ref] */
1009                 NTSTATUS result;
1010         } out;
1011
1012 };
1013
1014
1015 struct lsa_AddPrivilegesToAccount {
1016         struct {
1017                 struct policy_handle *handle;/* [ref] */
1018                 struct lsa_PrivilegeSet *privs;/* [ref] */
1019         } in;
1020
1021         struct {
1022                 NTSTATUS result;
1023         } out;
1024
1025 };
1026
1027
1028 struct lsa_RemovePrivilegesFromAccount {
1029         struct {
1030                 struct policy_handle *handle;/* [ref] */
1031                 uint8_t remove_all;
1032                 struct lsa_PrivilegeSet *privs;/* [unique] */
1033         } in;
1034
1035         struct {
1036                 NTSTATUS result;
1037         } out;
1038
1039 };
1040
1041
1042 struct lsa_GetQuotasForAccount {
1043         struct {
1044                 NTSTATUS result;
1045         } out;
1046
1047 };
1048
1049
1050 struct lsa_SetQuotasForAccount {
1051         struct {
1052                 NTSTATUS result;
1053         } out;
1054
1055 };
1056
1057
1058 struct lsa_GetSystemAccessAccount {
1059         struct {
1060                 struct policy_handle *handle;/* [ref] */
1061         } in;
1062
1063         struct {
1064                 uint32_t *access_mask;/* [ref] */
1065                 NTSTATUS result;
1066         } out;
1067
1068 };
1069
1070
1071 struct lsa_SetSystemAccessAccount {
1072         struct {
1073                 struct policy_handle *handle;/* [ref] */
1074                 uint32_t access_mask;
1075         } in;
1076
1077         struct {
1078                 NTSTATUS result;
1079         } out;
1080
1081 };
1082
1083
1084 struct lsa_OpenTrustedDomain {
1085         struct {
1086                 struct policy_handle *handle;/* [ref] */
1087                 struct dom_sid2 *sid;/* [ref] */
1088                 uint32_t access_mask;
1089         } in;
1090
1091         struct {
1092                 struct policy_handle *trustdom_handle;/* [ref] */
1093                 NTSTATUS result;
1094         } out;
1095
1096 };
1097
1098
1099 struct lsa_QueryTrustedDomainInfo {
1100         struct {
1101                 struct policy_handle *trustdom_handle;/* [ref] */
1102                 enum lsa_TrustDomInfoEnum level;
1103         } in;
1104
1105         struct {
1106                 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1107                 NTSTATUS result;
1108         } out;
1109
1110 };
1111
1112
1113 struct lsa_SetInformationTrustedDomain {
1114         struct {
1115                 struct policy_handle *trustdom_handle;/* [ref] */
1116                 enum lsa_TrustDomInfoEnum level;
1117                 union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
1118         } in;
1119
1120         struct {
1121                 NTSTATUS result;
1122         } out;
1123
1124 };
1125
1126
1127 struct lsa_OpenSecret {
1128         struct {
1129                 struct policy_handle *handle;/* [ref] */
1130                 struct lsa_String name;
1131                 uint32_t access_mask;
1132         } in;
1133
1134         struct {
1135                 struct policy_handle *sec_handle;/* [ref] */
1136                 NTSTATUS result;
1137         } out;
1138
1139 };
1140
1141
1142 struct lsa_SetSecret {
1143         struct {
1144                 struct policy_handle *sec_handle;/* [ref] */
1145                 struct lsa_DATA_BUF *new_val;/* [unique] */
1146                 struct lsa_DATA_BUF *old_val;/* [unique] */
1147         } in;
1148
1149         struct {
1150                 NTSTATUS result;
1151         } out;
1152
1153 };
1154
1155
1156 struct lsa_QuerySecret {
1157         struct {
1158                 struct policy_handle *sec_handle;/* [ref] */
1159                 struct lsa_DATA_BUF_PTR *new_val;/* [unique] */
1160                 NTTIME *new_mtime;/* [unique] */
1161                 struct lsa_DATA_BUF_PTR *old_val;/* [unique] */
1162                 NTTIME *old_mtime;/* [unique] */
1163         } in;
1164
1165         struct {
1166                 struct lsa_DATA_BUF_PTR *new_val;/* [unique] */
1167                 NTTIME *new_mtime;/* [unique] */
1168                 struct lsa_DATA_BUF_PTR *old_val;/* [unique] */
1169                 NTTIME *old_mtime;/* [unique] */
1170                 NTSTATUS result;
1171         } out;
1172
1173 };
1174
1175
1176 struct lsa_LookupPrivValue {
1177         struct {
1178                 struct policy_handle *handle;/* [ref] */
1179                 struct lsa_String *name;/* [ref] */
1180         } in;
1181
1182         struct {
1183                 struct lsa_LUID *luid;/* [ref] */
1184                 NTSTATUS result;
1185         } out;
1186
1187 };
1188
1189
1190 struct lsa_LookupPrivName {
1191         struct {
1192                 struct policy_handle *handle;/* [ref] */
1193                 struct lsa_LUID *luid;/* [ref] */
1194         } in;
1195
1196         struct {
1197                 struct lsa_StringLarge **name;/* [ref] */
1198                 NTSTATUS result;
1199         } out;
1200
1201 };
1202
1203
1204 struct lsa_LookupPrivDisplayName {
1205         struct {
1206                 struct policy_handle *handle;/* [ref] */
1207                 struct lsa_String *name;/* [ref] */
1208                 uint16_t language_id;
1209                 uint16_t language_id_sys;
1210         } in;
1211
1212         struct {
1213                 struct lsa_StringLarge **disp_name;/* [ref] */
1214                 uint16_t *returned_language_id;/* [ref] */
1215                 NTSTATUS result;
1216         } out;
1217
1218 };
1219
1220
1221 struct lsa_DeleteObject {
1222         struct {
1223                 struct policy_handle *handle;/* [ref] */
1224         } in;
1225
1226         struct {
1227                 struct policy_handle *handle;/* [ref] */
1228                 NTSTATUS result;
1229         } out;
1230
1231 };
1232
1233
1234 struct lsa_EnumAccountsWithUserRight {
1235         struct {
1236                 struct policy_handle *handle;/* [ref] */
1237                 struct lsa_String *name;/* [unique] */
1238         } in;
1239
1240         struct {
1241                 struct lsa_SidArray *sids;/* [ref] */
1242                 NTSTATUS result;
1243         } out;
1244
1245 };
1246
1247
1248 struct lsa_EnumAccountRights {
1249         struct {
1250                 struct policy_handle *handle;/* [ref] */
1251                 struct dom_sid2 *sid;/* [ref] */
1252         } in;
1253
1254         struct {
1255                 struct lsa_RightSet *rights;/* [ref] */
1256                 NTSTATUS result;
1257         } out;
1258
1259 };
1260
1261
1262 struct lsa_AddAccountRights {
1263         struct {
1264                 struct policy_handle *handle;/* [ref] */
1265                 struct dom_sid2 *sid;/* [ref] */
1266                 struct lsa_RightSet *rights;/* [ref] */
1267         } in;
1268
1269         struct {
1270                 NTSTATUS result;
1271         } out;
1272
1273 };
1274
1275
1276 struct lsa_RemoveAccountRights {
1277         struct {
1278                 struct policy_handle *handle;/* [ref] */
1279                 struct dom_sid2 *sid;/* [ref] */
1280                 uint8_t remove_all;
1281                 struct lsa_RightSet *rights;/* [ref] */
1282         } in;
1283
1284         struct {
1285                 NTSTATUS result;
1286         } out;
1287
1288 };
1289
1290
1291 struct lsa_QueryTrustedDomainInfoBySid {
1292         struct {
1293                 struct policy_handle *handle;/* [ref] */
1294                 struct dom_sid2 *dom_sid;/* [ref] */
1295                 enum lsa_TrustDomInfoEnum level;
1296         } in;
1297
1298         struct {
1299                 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1300                 NTSTATUS result;
1301         } out;
1302
1303 };
1304
1305
1306 struct lsa_SetTrustedDomainInfo {
1307         struct {
1308                 struct policy_handle *handle;/* [ref] */
1309                 struct dom_sid2 *dom_sid;/* [ref] */
1310                 enum lsa_TrustDomInfoEnum level;
1311                 union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
1312         } in;
1313
1314         struct {
1315                 NTSTATUS result;
1316         } out;
1317
1318 };
1319
1320
1321 struct lsa_DeleteTrustedDomain {
1322         struct {
1323                 struct policy_handle *handle;/* [ref] */
1324                 struct dom_sid2 *dom_sid;/* [ref] */
1325         } in;
1326
1327         struct {
1328                 NTSTATUS result;
1329         } out;
1330
1331 };
1332
1333
1334 struct lsa_StorePrivateData {
1335         struct {
1336                 struct policy_handle *handle;/* [ref] */
1337                 struct lsa_String *name;/* [ref] */
1338                 struct lsa_DATA_BUF *val;/* [unique] */
1339         } in;
1340
1341         struct {
1342                 NTSTATUS result;
1343         } out;
1344
1345 };
1346
1347
1348 struct lsa_RetrievePrivateData {
1349         struct {
1350                 struct policy_handle *handle;/* [ref] */
1351                 struct lsa_String *name;/* [ref] */
1352                 struct lsa_DATA_BUF **val;/* [ref] */
1353         } in;
1354
1355         struct {
1356                 struct lsa_DATA_BUF **val;/* [ref] */
1357                 NTSTATUS result;
1358         } out;
1359
1360 };
1361
1362
1363 struct lsa_OpenPolicy2 {
1364         struct {
1365                 const char *system_name;/* [unique,charset(UTF16)] */
1366                 struct lsa_ObjectAttribute *attr;/* [ref] */
1367                 uint32_t access_mask;
1368         } in;
1369
1370         struct {
1371                 struct policy_handle *handle;/* [ref] */
1372                 NTSTATUS result;
1373         } out;
1374
1375 };
1376
1377
1378 struct lsa_GetUserName {
1379         struct {
1380                 const char *system_name;/* [unique,charset(UTF16)] */
1381                 struct lsa_String **account_name;/* [ref] */
1382                 struct lsa_String **authority_name;/* [unique] */
1383         } in;
1384
1385         struct {
1386                 struct lsa_String **account_name;/* [ref] */
1387                 struct lsa_String **authority_name;/* [unique] */
1388                 NTSTATUS result;
1389         } out;
1390
1391 };
1392
1393
1394 struct lsa_QueryInfoPolicy2 {
1395         struct {
1396                 struct policy_handle *handle;/* [ref] */
1397                 enum lsa_PolicyInfo level;
1398         } in;
1399
1400         struct {
1401                 union lsa_PolicyInformation **info;/* [ref,switch_is(level)] */
1402                 NTSTATUS result;
1403         } out;
1404
1405 };
1406
1407
1408 struct lsa_SetInfoPolicy2 {
1409         struct {
1410                 struct policy_handle *handle;/* [ref] */
1411                 enum lsa_PolicyInfo level;
1412                 union lsa_PolicyInformation *info;/* [ref,switch_is(level)] */
1413         } in;
1414
1415         struct {
1416                 NTSTATUS result;
1417         } out;
1418
1419 };
1420
1421
1422 struct lsa_QueryTrustedDomainInfoByName {
1423         struct {
1424                 struct policy_handle *handle;/* [ref] */
1425                 struct lsa_String *trusted_domain;/* [ref] */
1426                 enum lsa_TrustDomInfoEnum level;
1427         } in;
1428
1429         struct {
1430                 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1431                 NTSTATUS result;
1432         } out;
1433
1434 };
1435
1436
1437 struct lsa_SetTrustedDomainInfoByName {
1438         struct {
1439                 struct policy_handle *handle;/* [ref] */
1440                 struct lsa_String trusted_domain;
1441                 enum lsa_TrustDomInfoEnum level;
1442                 union lsa_TrustedDomainInfo *info;/* [unique,switch_is(level)] */
1443         } in;
1444
1445         struct {
1446                 NTSTATUS result;
1447         } out;
1448
1449 };
1450
1451
1452 struct lsa_EnumTrustedDomainsEx {
1453         struct {
1454                 struct policy_handle *handle;/* [ref] */
1455                 uint32_t max_size;
1456                 uint32_t *resume_handle;/* [ref] */
1457         } in;
1458
1459         struct {
1460                 struct lsa_DomainListEx *domains;/* [ref] */
1461                 uint32_t *resume_handle;/* [ref] */
1462                 NTSTATUS result;
1463         } out;
1464
1465 };
1466
1467
1468 struct lsa_CreateTrustedDomainEx {
1469         struct {
1470                 struct policy_handle *policy_handle;/* [ref] */
1471                 struct lsa_TrustDomainInfoInfoEx *info;/* [ref] */
1472                 struct lsa_TrustDomainInfoAuthInfoInternal *auth_info;/* [ref] */
1473                 uint32_t access_mask;
1474         } in;
1475
1476         struct {
1477                 struct policy_handle *trustdom_handle;/* [ref] */
1478                 NTSTATUS result;
1479         } out;
1480
1481 };
1482
1483
1484 struct lsa_CloseTrustedDomainEx {
1485         struct {
1486                 struct policy_handle *handle;/* [ref] */
1487         } in;
1488
1489         struct {
1490                 struct policy_handle *handle;/* [ref] */
1491                 NTSTATUS result;
1492         } out;
1493
1494 };
1495
1496
1497 struct lsa_QueryDomainInformationPolicy {
1498         struct {
1499                 struct policy_handle *handle;/* [ref] */
1500                 uint16_t level;
1501         } in;
1502
1503         struct {
1504                 union lsa_DomainInformationPolicy **info;/* [ref,switch_is(level)] */
1505                 NTSTATUS result;
1506         } out;
1507
1508 };
1509
1510
1511 struct lsa_SetDomainInformationPolicy {
1512         struct {
1513                 struct policy_handle *handle;/* [ref] */
1514                 uint16_t level;
1515                 union lsa_DomainInformationPolicy *info;/* [unique,switch_is(level)] */
1516         } in;
1517
1518         struct {
1519                 NTSTATUS result;
1520         } out;
1521
1522 };
1523
1524
1525 struct lsa_OpenTrustedDomainByName {
1526         struct {
1527                 struct policy_handle *handle;/* [ref] */
1528                 struct lsa_String name;
1529                 uint32_t access_mask;
1530         } in;
1531
1532         struct {
1533                 struct policy_handle *trustdom_handle;/* [ref] */
1534                 NTSTATUS result;
1535         } out;
1536
1537 };
1538
1539
1540 struct lsa_TestCall {
1541         struct {
1542                 NTSTATUS result;
1543         } out;
1544
1545 };
1546
1547
1548 struct lsa_LookupSids2 {
1549         struct {
1550                 struct policy_handle *handle;/* [ref] */
1551                 struct lsa_SidArray *sids;/* [ref] */
1552                 uint16_t level;
1553                 uint32_t unknown1;
1554                 uint32_t unknown2;
1555                 struct lsa_TransNameArray2 *names;/* [ref] */
1556                 uint32_t *count;/* [ref] */
1557         } in;
1558
1559         struct {
1560                 struct lsa_RefDomainList **domains;/* [ref] */
1561                 struct lsa_TransNameArray2 *names;/* [ref] */
1562                 uint32_t *count;/* [ref] */
1563                 NTSTATUS result;
1564         } out;
1565
1566 };
1567
1568
1569 struct lsa_LookupNames2 {
1570         struct {
1571                 struct policy_handle *handle;/* [ref] */
1572                 uint32_t num_names;/* [range(0,1000)] */
1573                 struct lsa_String *names;/* [size_is(num_names)] */
1574                 enum lsa_LookupNamesLevel level;
1575                 uint32_t lookup_options;
1576                 uint32_t client_revision;
1577                 struct lsa_TransSidArray2 *sids;/* [ref] */
1578                 uint32_t *count;/* [ref] */
1579         } in;
1580
1581         struct {
1582                 struct lsa_RefDomainList **domains;/* [ref] */
1583                 struct lsa_TransSidArray2 *sids;/* [ref] */
1584                 uint32_t *count;/* [ref] */
1585                 NTSTATUS result;
1586         } out;
1587
1588 };
1589
1590
1591 struct lsa_CreateTrustedDomainEx2 {
1592         struct {
1593                 struct policy_handle *policy_handle;/* [ref] */
1594                 struct lsa_TrustDomainInfoInfoEx *info;/* [ref] */
1595                 struct lsa_TrustDomainInfoAuthInfoInternal *auth_info;/* [ref] */
1596                 uint32_t access_mask;
1597         } in;
1598
1599         struct {
1600                 struct policy_handle *trustdom_handle;/* [ref] */
1601                 NTSTATUS result;
1602         } out;
1603
1604 };
1605
1606
1607 struct lsa_CREDRWRITE {
1608         struct {
1609                 NTSTATUS result;
1610         } out;
1611
1612 };
1613
1614
1615 struct lsa_CREDRREAD {
1616         struct {
1617                 NTSTATUS result;
1618         } out;
1619
1620 };
1621
1622
1623 struct lsa_CREDRENUMERATE {
1624         struct {
1625                 NTSTATUS result;
1626         } out;
1627
1628 };
1629
1630
1631 struct lsa_CREDRWRITEDOMAINCREDENTIALS {
1632         struct {
1633                 NTSTATUS result;
1634         } out;
1635
1636 };
1637
1638
1639 struct lsa_CREDRREADDOMAINCREDENTIALS {
1640         struct {
1641                 NTSTATUS result;
1642         } out;
1643
1644 };
1645
1646
1647 struct lsa_CREDRDELETE {
1648         struct {
1649                 NTSTATUS result;
1650         } out;
1651
1652 };
1653
1654
1655 struct lsa_CREDRGETTARGETINFO {
1656         struct {
1657                 NTSTATUS result;
1658         } out;
1659
1660 };
1661
1662
1663 struct lsa_CREDRPROFILELOADED {
1664         struct {
1665                 NTSTATUS result;
1666         } out;
1667
1668 };
1669
1670
1671 struct lsa_LookupNames3 {
1672         struct {
1673                 struct policy_handle *handle;/* [ref] */
1674                 uint32_t num_names;/* [range(0,1000)] */
1675                 struct lsa_String *names;/* [size_is(num_names)] */
1676                 enum lsa_LookupNamesLevel level;
1677                 uint32_t lookup_options;
1678                 uint32_t client_revision;
1679                 struct lsa_TransSidArray3 *sids;/* [ref] */
1680                 uint32_t *count;/* [ref] */
1681         } in;
1682
1683         struct {
1684                 struct lsa_RefDomainList **domains;/* [ref] */
1685                 struct lsa_TransSidArray3 *sids;/* [ref] */
1686                 uint32_t *count;/* [ref] */
1687                 NTSTATUS result;
1688         } out;
1689
1690 };
1691
1692
1693 struct lsa_CREDRGETSESSIONTYPES {
1694         struct {
1695                 NTSTATUS result;
1696         } out;
1697
1698 };
1699
1700
1701 struct lsa_LSARREGISTERAUDITEVENT {
1702         struct {
1703                 NTSTATUS result;
1704         } out;
1705
1706 };
1707
1708
1709 struct lsa_LSARGENAUDITEVENT {
1710         struct {
1711                 NTSTATUS result;
1712         } out;
1713
1714 };
1715
1716
1717 struct lsa_LSARUNREGISTERAUDITEVENT {
1718         struct {
1719                 NTSTATUS result;
1720         } out;
1721
1722 };
1723
1724
1725 struct lsa_lsaRQueryForestTrustInformation {
1726         struct {
1727                 struct policy_handle *handle;/* [ref] */
1728                 struct lsa_String *trusted_domain_name;/* [ref] */
1729                 uint16_t unknown;
1730         } in;
1731
1732         struct {
1733                 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1734                 NTSTATUS result;
1735         } out;
1736
1737 };
1738
1739
1740 struct lsa_LSARSETFORESTTRUSTINFORMATION {
1741         struct {
1742                 NTSTATUS result;
1743         } out;
1744
1745 };
1746
1747
1748 struct lsa_CREDRRENAME {
1749         struct {
1750                 NTSTATUS result;
1751         } out;
1752
1753 };
1754
1755
1756 struct lsa_LookupSids3 {
1757         struct {
1758                 struct lsa_SidArray *sids;/* [ref] */
1759                 uint16_t level;
1760                 uint32_t unknown1;
1761                 uint32_t unknown2;
1762                 struct lsa_TransNameArray2 *names;/* [ref] */
1763                 uint32_t *count;/* [ref] */
1764         } in;
1765
1766         struct {
1767                 struct lsa_RefDomainList **domains;/* [ref] */
1768                 struct lsa_TransNameArray2 *names;/* [ref] */
1769                 uint32_t *count;/* [ref] */
1770                 NTSTATUS result;
1771         } out;
1772
1773 };
1774
1775
1776 struct lsa_LookupNames4 {
1777         struct {
1778                 uint32_t num_names;/* [range(0,1000)] */
1779                 struct lsa_String *names;/* [size_is(num_names)] */
1780                 enum lsa_LookupNamesLevel level;
1781                 uint32_t lookup_options;
1782                 uint32_t client_revision;
1783                 struct lsa_TransSidArray3 *sids;/* [ref] */
1784                 uint32_t *count;/* [ref] */
1785         } in;
1786
1787         struct {
1788                 struct lsa_RefDomainList **domains;/* [ref] */
1789                 struct lsa_TransSidArray3 *sids;/* [ref] */
1790                 uint32_t *count;/* [ref] */
1791                 NTSTATUS result;
1792         } out;
1793
1794 };
1795
1796
1797 struct lsa_LSAROPENPOLICYSCE {
1798         struct {
1799                 NTSTATUS result;
1800         } out;
1801
1802 };
1803
1804
1805 struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE {
1806         struct {
1807                 NTSTATUS result;
1808         } out;
1809
1810 };
1811
1812
1813 struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE {
1814         struct {
1815                 NTSTATUS result;
1816         } out;
1817
1818 };
1819
1820
1821 struct lsa_LSARADTREPORTSECURITYEVENT {
1822         struct {
1823                 NTSTATUS result;
1824         } out;
1825
1826 };
1827
1828 #endif /* _HEADER_lsarpc */