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