Fix broken pipe handling
[Samba/gebeck_regimport.git] / librpc / gen_ndr / lsa.h
bloba6da7a6cef98e18b4c91266f209b85a18dd212d1
1 /* header auto-generated by pidl */
3 #include <stdint.h>
5 #include "libcli/util/ntstatus.h"
7 #include "librpc/gen_ndr/misc.h"
8 #include "librpc/gen_ndr/security.h"
9 #ifndef _HEADER_lsarpc
10 #define _HEADER_lsarpc
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] */;
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] */;
34 struct lsa_Strings {
35 uint32_t count;
36 struct lsa_String *names;/* [unique,size_is(count)] */
37 }/* [public] */;
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] */;
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] */;
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] */;
57 struct lsa_LUID {
58 uint32_t low;
59 uint32_t high;
62 struct lsa_PrivEntry {
63 struct lsa_StringLarge name;
64 struct lsa_LUID luid;
67 struct lsa_PrivArray {
68 uint32_t count;
69 struct lsa_PrivEntry *privs;/* [unique,size_is(count)] */
72 struct lsa_QosInfo {
73 uint32_t len;
74 uint16_t impersonation_level;
75 uint8_t context_mode;
76 uint8_t effective_only;
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] */
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 )
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;
111 enum lsa_PolicyAuditPolicy
112 #ifndef USE_UINT_ENUMS
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
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
130 enum lsa_PolicyAuditEventType
131 #ifndef USE_UINT_ENUMS
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
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
157 struct lsa_AuditEventsInfo {
158 uint32_t auditing_mode;
159 enum lsa_PolicyAuditPolicy *settings;/* [unique,size_is(count)] */
160 uint32_t count;
163 struct lsa_DomainInfo {
164 struct lsa_StringLarge name;
165 struct dom_sid2 *sid;/* [unique] */
168 struct lsa_PDAccountInfo {
169 struct lsa_String name;
172 enum lsa_Role
173 #ifndef USE_UINT_ENUMS
175 LSA_ROLE_BACKUP=2,
176 LSA_ROLE_PRIMARY=3
178 #else
179 { __donnot_use_enum_lsa_Role=0x7FFFFFFF}
180 #define LSA_ROLE_BACKUP ( 2 )
181 #define LSA_ROLE_PRIMARY ( 3 )
182 #endif
185 struct lsa_ServerRole {
186 enum lsa_Role role;
189 struct lsa_ReplicaSourceInfo {
190 struct lsa_String source;
191 struct lsa_String account;
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;
203 struct lsa_ModificationInfo {
204 uint64_t modified_id;
205 NTTIME db_create_time;
208 struct lsa_AuditFullSetInfo {
209 uint8_t shutdown_on_full;
212 struct lsa_AuditFullQueryInfo {
213 uint8_t shutdown_on_full;
214 uint8_t log_is_full;
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] */
225 enum lsa_PolicyInfo
226 #ifndef USE_UINT_ENUMS
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
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
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)] */;
278 struct lsa_SidPtr {
279 struct dom_sid2 *sid;/* [unique] */
282 struct lsa_SidArray {
283 uint32_t num_sids;/* [range(0,1000)] */
284 struct lsa_SidPtr *sids;/* [unique,size_is(num_sids)] */
285 }/* [public] */;
287 struct lsa_DomainList {
288 uint32_t count;
289 struct lsa_DomainInfo *domains;/* [unique,size_is(count)] */
292 enum lsa_SidType
293 #ifndef USE_UINT_ENUMS
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
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
321 struct lsa_TranslatedSid {
322 enum lsa_SidType sid_type;
323 uint32_t rid;
324 uint32_t sid_index;
327 struct lsa_TransSidArray {
328 uint32_t count;/* [range(0,1000)] */
329 struct lsa_TranslatedSid *sids;/* [unique,size_is(count)] */
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;
338 enum lsa_LookupNamesLevel
339 #ifndef USE_UINT_ENUMS
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
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
361 struct lsa_TranslatedName {
362 enum lsa_SidType sid_type;
363 struct lsa_String name;
364 uint32_t sid_index;
367 struct lsa_TransNameArray {
368 uint32_t count;/* [range(0,1000)] */
369 struct lsa_TranslatedName *names;/* [unique,size_is(count)] */
372 struct lsa_LUIDAttribute {
373 struct lsa_LUID luid;
374 uint32_t attribute;
377 struct lsa_PrivilegeSet {
378 uint32_t count;/* [range(0,1000)] */
379 uint32_t unknown;
380 struct lsa_LUIDAttribute *set;/* [size_is(count)] */
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 )
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)] */;
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)] */;
409 enum lsa_TrustDomInfoEnum
410 #ifndef USE_UINT_ENUMS
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
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
444 /* bitmap lsa_TrustDirection */
445 #define LSA_TRUST_DIRECTION_INBOUND ( 0x00000001 )
446 #define LSA_TRUST_DIRECTION_OUTBOUND ( 0x00000002 )
448 enum lsa_TrustType
449 #ifndef USE_UINT_ENUMS
451 LSA_TRUST_TYPE_DOWNLEVEL=0x00000001,
452 LSA_TRUST_TYPE_UPLEVEL=0x00000002,
453 LSA_TRUST_TYPE_MIT=0x00000003
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
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 )
473 struct lsa_TrustDomainInfoName {
474 struct lsa_StringLarge netbios_name;
477 struct lsa_TrustDomainInfoControllers {
478 uint32_t entries;
479 struct lsa_StringLarge *netbios_names;/* [unique,size_is(entries)] */
482 struct lsa_TrustDomainInfoPosixOffset {
483 uint32_t posix_offset;
486 struct lsa_TrustDomainInfoPassword {
487 struct lsa_DATA_BUF *password;/* [unique] */
488 struct lsa_DATA_BUF *old_password;/* [unique] */
491 struct lsa_TrustDomainInfoBasic {
492 struct lsa_String netbios_name;
493 struct dom_sid2 *sid;/* [unique] */
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;
505 enum lsa_TrustAuthType
506 #ifndef USE_UINT_ENUMS
508 TRUST_AUTH_TYPE_NONE=0,
509 TRUST_AUTH_TYPE_NT4OWF=1,
510 TRUST_AUTH_TYPE_CLEAR=2,
511 TRUST_AUTH_TYPE_VERSION=3
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
522 struct lsa_TrustDomainInfoBuffer {
523 NTTIME last_update_time;
524 enum lsa_TrustAuthType AuthType;
525 struct lsa_DATA_BUF2 data;
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] */
537 struct lsa_TrustDomainInfoFullInfo {
538 struct lsa_TrustDomainInfoInfoEx info_ex;
539 struct lsa_TrustDomainInfoPosixOffset posix_offset;
540 struct lsa_TrustDomainInfoAuthInfo auth_info;
543 struct lsa_TrustDomainInfoAuthInfoInternal {
544 struct lsa_DATA_BUF2 auth_blob;
547 struct lsa_TrustDomainInfoFullInfoInternal {
548 struct lsa_TrustDomainInfoInfoEx info_ex;
549 struct lsa_TrustDomainInfoPosixOffset posix_offset;
550 struct lsa_TrustDomainInfoAuthInfoInternal auth_info;
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)] */
559 struct lsa_TrustDomainInfoFullInfo2Internal {
560 struct lsa_TrustDomainInfoInfoEx2Internal info;
561 struct lsa_TrustDomainInfoPosixOffset posix_offset;
562 struct lsa_TrustDomainInfoAuthInfo auth_info;
565 struct lsa_TrustDomainInfoSupportedEncTypes {
566 uint32_t enc_types;
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)] */;
585 struct lsa_DATA_BUF_PTR {
586 struct lsa_DATA_BUF *buf;/* [unique] */
589 struct lsa_RightAttribute {
590 const char *name;/* [unique,charset(UTF16)] */
593 struct lsa_RightSet {
594 uint32_t count;/* [range(0,256)] */
595 struct lsa_StringLarge *names;/* [unique,size_is(count)] */
598 struct lsa_DomainListEx {
599 uint32_t count;
600 struct lsa_TrustDomainInfoInfoEx *domains;/* [unique,size_is(count)] */
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;
612 struct lsa_DomainInfoEfs {
613 uint32_t blob_size;
614 uint8_t *efs_blob;/* [unique,size_is(blob_size)] */
617 enum lsa_DomainInfoEnum
618 #ifndef USE_UINT_ENUMS
620 LSA_DOMAIN_INFO_POLICY_EFS=2,
621 LSA_DOMAIN_INFO_POLICY_KERBEROS=3
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
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)] */;
635 struct lsa_TranslatedName2 {
636 enum lsa_SidType sid_type;
637 struct lsa_String name;
638 uint32_t sid_index;
639 uint32_t unknown;
642 struct lsa_TransNameArray2 {
643 uint32_t count;/* [range(0,1000)] */
644 struct lsa_TranslatedName2 *names;/* [unique,size_is(count)] */
647 struct lsa_TranslatedSid2 {
648 enum lsa_SidType sid_type;
649 uint32_t rid;
650 uint32_t sid_index;
651 uint32_t unknown;
654 struct lsa_TransSidArray2 {
655 uint32_t count;/* [range(0,1000)] */
656 struct lsa_TranslatedSid2 *sids;/* [unique,size_is(count)] */
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;
666 struct lsa_TransSidArray3 {
667 uint32_t count;/* [range(0,1000)] */
668 struct lsa_TranslatedSid3 *sids;/* [unique,size_is(count)] */
671 struct lsa_ForestTrustBinaryData {
672 uint32_t length;/* [range(0,131072)] */
673 uint8_t *data;/* [unique,size_is(length)] */
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;
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)] */;
689 enum lsa_ForestTrustRecordType
690 #ifndef USE_UINT_ENUMS
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
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
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)] */
713 struct lsa_ForestTrustInformation {
714 uint32_t count;/* [range(0,4000)] */
715 struct lsa_ForestTrustRecord **entries;/* [unique,size_is(count)] */
716 }/* [public] */;
719 struct lsa_Close {
720 struct {
721 struct policy_handle *handle;/* [ref] */
722 } in;
724 struct {
725 struct policy_handle *handle;/* [ref] */
726 NTSTATUS result;
727 } out;
732 struct lsa_Delete {
733 struct {
734 struct policy_handle *handle;/* [ref] */
735 } in;
737 struct {
738 NTSTATUS result;
739 } out;
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;
751 struct {
752 struct lsa_PrivArray *privs;/* [ref] */
753 uint32_t *resume_handle;/* [ref] */
754 NTSTATUS result;
755 } out;
760 struct lsa_QuerySecurity {
761 struct {
762 struct policy_handle *handle;/* [ref] */
763 uint32_t sec_info;
764 } in;
766 struct {
767 struct sec_desc_buf **sdbuf;/* [ref] */
768 NTSTATUS result;
769 } out;
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;
781 struct {
782 NTSTATUS result;
783 } out;
788 struct lsa_ChangePassword {
789 struct {
790 NTSTATUS result;
791 } out;
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;
803 struct {
804 struct policy_handle *handle;/* [ref] */
805 NTSTATUS result;
806 } out;
811 struct lsa_QueryInfoPolicy {
812 struct {
813 struct policy_handle *handle;/* [ref] */
814 enum lsa_PolicyInfo level;
815 } in;
817 struct {
818 union lsa_PolicyInformation **info;/* [ref,switch_is(level)] */
819 NTSTATUS result;
820 } out;
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;
832 struct {
833 NTSTATUS result;
834 } out;
839 struct lsa_ClearAuditLog {
840 struct {
841 NTSTATUS result;
842 } out;
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;
854 struct {
855 struct policy_handle *acct_handle;/* [ref] */
856 NTSTATUS result;
857 } out;
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;
869 struct {
870 struct lsa_SidArray *sids;/* [ref] */
871 uint32_t *resume_handle;/* [ref] */
872 NTSTATUS result;
873 } out;
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;
885 struct {
886 struct policy_handle *trustdom_handle;/* [ref] */
887 NTSTATUS result;
888 } out;
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;
900 struct {
901 struct lsa_DomainList *domains;/* [ref] */
902 uint32_t *resume_handle;/* [ref] */
903 NTSTATUS result;
904 } out;
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;
919 struct {
920 struct lsa_RefDomainList **domains;/* [ref] */
921 struct lsa_TransSidArray *sids;/* [ref] */
922 uint32_t *count;/* [ref] */
923 NTSTATUS result;
924 } out;
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;
938 struct {
939 struct lsa_RefDomainList **domains;/* [ref] */
940 struct lsa_TransNameArray *names;/* [ref] */
941 uint32_t *count;/* [ref] */
942 NTSTATUS result;
943 } out;
948 struct lsa_CreateSecret {
949 struct {
950 struct policy_handle *handle;/* [ref] */
951 struct lsa_String name;
952 uint32_t access_mask;
953 } in;
955 struct {
956 struct policy_handle *sec_handle;/* [ref] */
957 NTSTATUS result;
958 } out;
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;
970 struct {
971 struct policy_handle *acct_handle;/* [ref] */
972 NTSTATUS result;
973 } out;
978 struct lsa_EnumPrivsAccount {
979 struct {
980 struct policy_handle *handle;/* [ref] */
981 } in;
983 struct {
984 struct lsa_PrivilegeSet **privs;/* [ref] */
985 NTSTATUS result;
986 } out;
991 struct lsa_AddPrivilegesToAccount {
992 struct {
993 struct policy_handle *handle;/* [ref] */
994 struct lsa_PrivilegeSet *privs;/* [ref] */
995 } in;
997 struct {
998 NTSTATUS result;
999 } out;
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;
1011 struct {
1012 NTSTATUS result;
1013 } out;
1018 struct lsa_GetQuotasForAccount {
1019 struct {
1020 NTSTATUS result;
1021 } out;
1026 struct lsa_SetQuotasForAccount {
1027 struct {
1028 NTSTATUS result;
1029 } out;
1034 struct lsa_GetSystemAccessAccount {
1035 struct {
1036 struct policy_handle *handle;/* [ref] */
1037 } in;
1039 struct {
1040 uint32_t *access_mask;/* [ref] */
1041 NTSTATUS result;
1042 } out;
1047 struct lsa_SetSystemAccessAccount {
1048 struct {
1049 struct policy_handle *handle;/* [ref] */
1050 uint32_t access_mask;
1051 } in;
1053 struct {
1054 NTSTATUS result;
1055 } out;
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;
1067 struct {
1068 struct policy_handle *trustdom_handle;/* [ref] */
1069 NTSTATUS result;
1070 } out;
1075 struct lsa_QueryTrustedDomainInfo {
1076 struct {
1077 struct policy_handle *trustdom_handle;/* [ref] */
1078 enum lsa_TrustDomInfoEnum level;
1079 } in;
1081 struct {
1082 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1083 NTSTATUS result;
1084 } out;
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;
1096 struct {
1097 NTSTATUS result;
1098 } out;
1103 struct lsa_OpenSecret {
1104 struct {
1105 struct policy_handle *handle;/* [ref] */
1106 struct lsa_String name;
1107 uint32_t access_mask;
1108 } in;
1110 struct {
1111 struct policy_handle *sec_handle;/* [ref] */
1112 NTSTATUS result;
1113 } out;
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;
1125 struct {
1126 NTSTATUS result;
1127 } out;
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;
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;
1152 struct lsa_LookupPrivValue {
1153 struct {
1154 struct policy_handle *handle;/* [ref] */
1155 struct lsa_String *name;/* [ref] */
1156 } in;
1158 struct {
1159 struct lsa_LUID *luid;/* [ref] */
1160 NTSTATUS result;
1161 } out;
1166 struct lsa_LookupPrivName {
1167 struct {
1168 struct policy_handle *handle;/* [ref] */
1169 struct lsa_LUID *luid;/* [ref] */
1170 } in;
1172 struct {
1173 struct lsa_StringLarge **name;/* [ref] */
1174 NTSTATUS result;
1175 } out;
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;
1188 struct {
1189 struct lsa_StringLarge **disp_name;/* [ref] */
1190 uint16_t *returned_language_id;/* [ref] */
1191 NTSTATUS result;
1192 } out;
1197 struct lsa_DeleteObject {
1198 struct {
1199 struct policy_handle *handle;/* [ref] */
1200 } in;
1202 struct {
1203 struct policy_handle *handle;/* [ref] */
1204 NTSTATUS result;
1205 } out;
1210 struct lsa_EnumAccountsWithUserRight {
1211 struct {
1212 struct policy_handle *handle;/* [ref] */
1213 struct lsa_String *name;/* [unique] */
1214 } in;
1216 struct {
1217 struct lsa_SidArray *sids;/* [ref] */
1218 NTSTATUS result;
1219 } out;
1224 struct lsa_EnumAccountRights {
1225 struct {
1226 struct policy_handle *handle;/* [ref] */
1227 struct dom_sid2 *sid;/* [ref] */
1228 } in;
1230 struct {
1231 struct lsa_RightSet *rights;/* [ref] */
1232 NTSTATUS result;
1233 } out;
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;
1245 struct {
1246 NTSTATUS result;
1247 } out;
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;
1260 struct {
1261 NTSTATUS result;
1262 } out;
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;
1274 struct {
1275 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1276 NTSTATUS result;
1277 } out;
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;
1290 struct {
1291 NTSTATUS result;
1292 } out;
1297 struct lsa_DeleteTrustedDomain {
1298 struct {
1299 struct policy_handle *handle;/* [ref] */
1300 struct dom_sid2 *dom_sid;/* [ref] */
1301 } in;
1303 struct {
1304 NTSTATUS result;
1305 } out;
1310 struct lsa_StorePrivateData {
1311 struct {
1312 NTSTATUS result;
1313 } out;
1318 struct lsa_RetrievePrivateData {
1319 struct {
1320 NTSTATUS result;
1321 } out;
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;
1333 struct {
1334 struct policy_handle *handle;/* [ref] */
1335 NTSTATUS result;
1336 } out;
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;
1348 struct {
1349 struct lsa_String **account_name;/* [ref] */
1350 struct lsa_String **authority_name;/* [unique] */
1351 NTSTATUS result;
1352 } out;
1357 struct lsa_QueryInfoPolicy2 {
1358 struct {
1359 struct policy_handle *handle;/* [ref] */
1360 enum lsa_PolicyInfo level;
1361 } in;
1363 struct {
1364 union lsa_PolicyInformation **info;/* [ref,switch_is(level)] */
1365 NTSTATUS result;
1366 } out;
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;
1378 struct {
1379 NTSTATUS result;
1380 } out;
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;
1392 struct {
1393 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1394 NTSTATUS result;
1395 } out;
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;
1408 struct {
1409 NTSTATUS result;
1410 } out;
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;
1422 struct {
1423 struct lsa_DomainListEx *domains;/* [ref] */
1424 uint32_t *resume_handle;/* [ref] */
1425 NTSTATUS result;
1426 } out;
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;
1439 struct {
1440 struct policy_handle *trustdom_handle;/* [ref] */
1441 NTSTATUS result;
1442 } out;
1447 struct lsa_CloseTrustedDomainEx {
1448 struct {
1449 struct policy_handle *handle;/* [ref] */
1450 } in;
1452 struct {
1453 struct policy_handle *handle;/* [ref] */
1454 NTSTATUS result;
1455 } out;
1460 struct lsa_QueryDomainInformationPolicy {
1461 struct {
1462 struct policy_handle *handle;/* [ref] */
1463 uint16_t level;
1464 } in;
1466 struct {
1467 union lsa_DomainInformationPolicy **info;/* [ref,switch_is(level)] */
1468 NTSTATUS result;
1469 } out;
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;
1481 struct {
1482 NTSTATUS result;
1483 } out;
1488 struct lsa_OpenTrustedDomainByName {
1489 struct {
1490 struct policy_handle *handle;/* [ref] */
1491 struct lsa_String name;
1492 uint32_t access_mask;
1493 } in;
1495 struct {
1496 struct policy_handle *trustdom_handle;/* [ref] */
1497 NTSTATUS result;
1498 } out;
1503 struct lsa_TestCall {
1504 struct {
1505 NTSTATUS result;
1506 } out;
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;
1522 struct {
1523 struct lsa_RefDomainList **domains;/* [ref] */
1524 struct lsa_TransNameArray2 *names;/* [ref] */
1525 uint32_t *count;/* [ref] */
1526 NTSTATUS result;
1527 } out;
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;
1544 struct {
1545 struct lsa_RefDomainList **domains;/* [ref] */
1546 struct lsa_TransSidArray2 *sids;/* [ref] */
1547 uint32_t *count;/* [ref] */
1548 NTSTATUS result;
1549 } out;
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;
1562 struct {
1563 struct policy_handle *trustdom_handle;/* [ref] */
1564 NTSTATUS result;
1565 } out;
1570 struct lsa_CREDRWRITE {
1571 struct {
1572 NTSTATUS result;
1573 } out;
1578 struct lsa_CREDRREAD {
1579 struct {
1580 NTSTATUS result;
1581 } out;
1586 struct lsa_CREDRENUMERATE {
1587 struct {
1588 NTSTATUS result;
1589 } out;
1594 struct lsa_CREDRWRITEDOMAINCREDENTIALS {
1595 struct {
1596 NTSTATUS result;
1597 } out;
1602 struct lsa_CREDRREADDOMAINCREDENTIALS {
1603 struct {
1604 NTSTATUS result;
1605 } out;
1610 struct lsa_CREDRDELETE {
1611 struct {
1612 NTSTATUS result;
1613 } out;
1618 struct lsa_CREDRGETTARGETINFO {
1619 struct {
1620 NTSTATUS result;
1621 } out;
1626 struct lsa_CREDRPROFILELOADED {
1627 struct {
1628 NTSTATUS result;
1629 } out;
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;
1646 struct {
1647 struct lsa_RefDomainList **domains;/* [ref] */
1648 struct lsa_TransSidArray3 *sids;/* [ref] */
1649 uint32_t *count;/* [ref] */
1650 NTSTATUS result;
1651 } out;
1656 struct lsa_CREDRGETSESSIONTYPES {
1657 struct {
1658 NTSTATUS result;
1659 } out;
1664 struct lsa_LSARREGISTERAUDITEVENT {
1665 struct {
1666 NTSTATUS result;
1667 } out;
1672 struct lsa_LSARGENAUDITEVENT {
1673 struct {
1674 NTSTATUS result;
1675 } out;
1680 struct lsa_LSARUNREGISTERAUDITEVENT {
1681 struct {
1682 NTSTATUS result;
1683 } out;
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;
1695 struct {
1696 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1697 NTSTATUS result;
1698 } out;
1703 struct lsa_LSARSETFORESTTRUSTINFORMATION {
1704 struct {
1705 NTSTATUS result;
1706 } out;
1711 struct lsa_CREDRRENAME {
1712 struct {
1713 NTSTATUS result;
1714 } out;
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;
1729 struct {
1730 struct lsa_RefDomainList **domains;/* [ref] */
1731 struct lsa_TransNameArray2 *names;/* [ref] */
1732 uint32_t *count;/* [ref] */
1733 NTSTATUS result;
1734 } out;
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;
1750 struct {
1751 struct lsa_RefDomainList **domains;/* [ref] */
1752 struct lsa_TransSidArray3 *sids;/* [ref] */
1753 uint32_t *count;/* [ref] */
1754 NTSTATUS result;
1755 } out;
1760 struct lsa_LSAROPENPOLICYSCE {
1761 struct {
1762 NTSTATUS result;
1763 } out;
1768 struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE {
1769 struct {
1770 NTSTATUS result;
1771 } out;
1776 struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE {
1777 struct {
1778 NTSTATUS result;
1779 } out;
1784 struct lsa_LSARADTREPORTSECURITYEVENT {
1785 struct {
1786 NTSTATUS result;
1787 } out;
1791 #endif /* _HEADER_lsarpc */