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