s4-drs: lock down key DRS calls
[Samba/aatanasov.git] / librpc / gen_ndr / lsa.h
bloba47259145b9094c0c2e75dde7581623003165f82
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_ACCOUNT_ALL_ACCESS ( (STANDARD_RIGHTS_REQUIRED_ACCESS|LSA_ACCOUNT_VIEW|LSA_ACCOUNT_ADJUST_PRIVILEGES|LSA_ACCOUNT_ADJUST_QUOTAS|LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS) )
17 #define LSA_ACCOUNT_READ ( (STANDARD_RIGHTS_READ_ACCESS|LSA_ACCOUNT_VIEW) )
18 #define LSA_ACCOUNT_WRITE ( (STANDARD_RIGHTS_READ_ACCESS|LSA_ACCOUNT_ADJUST_PRIVILEGES|LSA_ACCOUNT_ADJUST_QUOTAS|LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS) )
19 #define LSA_ACCOUNT_EXECUTE ( (STANDARD_RIGHTS_EXECUTE_ACCESS) )
20 #define LSA_ENUM_TRUST_DOMAIN_MULTIPLIER ( 60 )
21 #define LSA_REF_DOMAIN_LIST_MULTIPLIER ( 32 )
22 #define LSA_ENUM_TRUST_DOMAIN_EX_MULTIPLIER ( 82 )
23 #define LSA_CLIENT_REVISION_NO_DNS ( 0x00000001 )
24 #define LSA_CLIENT_REVISION_DNS ( 0x00000002 )
25 #define LSA_LOOKUP_OPTIONS_NO_ISOLATED ( 0x80000000 )
26 struct lsa_String {
27 uint16_t length;/* [value(2*strlen_m(string))] */
28 uint16_t size;/* [value(2*strlen_m(string))] */
29 const char *string;/* [unique,charset(UTF16),length_is(length/2),size_is(size/2)] */
30 }/* [public] */;
32 struct lsa_StringLarge {
33 uint16_t length;/* [value(2*strlen_m(string))] */
34 uint16_t size;/* [value(2*strlen_m_term(string))] */
35 const char *string;/* [unique,charset(UTF16),length_is(length/2),size_is(size/2)] */
36 }/* [public] */;
38 struct lsa_Strings {
39 uint32_t count;
40 struct lsa_String *names;/* [unique,size_is(count)] */
41 }/* [public] */;
43 struct lsa_AsciiString {
44 uint16_t length;/* [value(strlen_m(string))] */
45 uint16_t size;/* [value(strlen_m(string))] */
46 const char *string;/* [unique,charset(DOS),length_is(length),size_is(size)] */
47 }/* [public] */;
49 struct lsa_AsciiStringLarge {
50 uint16_t length;/* [value(strlen_m(string))] */
51 uint16_t size;/* [value(strlen_m_term(string))] */
52 const char *string;/* [unique,charset(DOS),length_is(length),size_is(size)] */
53 }/* [public] */;
55 struct lsa_BinaryString {
56 uint16_t length;
57 uint16_t size;
58 uint16_t *array;/* [unique,length_is(length/2),size_is(size/2)] */
59 }/* [public] */;
61 struct lsa_LUID {
62 uint32_t low;
63 uint32_t high;
66 struct lsa_PrivEntry {
67 struct lsa_StringLarge name;
68 struct lsa_LUID luid;
71 struct lsa_PrivArray {
72 uint32_t count;
73 struct lsa_PrivEntry *privs;/* [unique,size_is(count)] */
76 struct lsa_QosInfo {
77 uint32_t len;
78 uint16_t impersonation_level;
79 uint8_t context_mode;
80 uint8_t effective_only;
83 struct lsa_ObjectAttribute {
84 uint32_t len;
85 uint8_t *root_dir;/* [unique] */
86 const char *object_name;/* [unique,charset(UTF16)] */
87 uint32_t attributes;
88 struct security_descriptor *sec_desc;/* [unique] */
89 struct lsa_QosInfo *sec_qos;/* [unique] */
92 /* bitmap lsa_PolicyAccessMask */
93 #define LSA_POLICY_VIEW_LOCAL_INFORMATION ( 0x00000001 )
94 #define LSA_POLICY_VIEW_AUDIT_INFORMATION ( 0x00000002 )
95 #define LSA_POLICY_GET_PRIVATE_INFORMATION ( 0x00000004 )
96 #define LSA_POLICY_TRUST_ADMIN ( 0x00000008 )
97 #define LSA_POLICY_CREATE_ACCOUNT ( 0x00000010 )
98 #define LSA_POLICY_CREATE_SECRET ( 0x00000020 )
99 #define LSA_POLICY_CREATE_PRIVILEGE ( 0x00000040 )
100 #define LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS ( 0x00000080 )
101 #define LSA_POLICY_SET_AUDIT_REQUIREMENTS ( 0x00000100 )
102 #define LSA_POLICY_AUDIT_LOG_ADMIN ( 0x00000200 )
103 #define LSA_POLICY_SERVER_ADMIN ( 0x00000400 )
104 #define LSA_POLICY_LOOKUP_NAMES ( 0x00000800 )
105 #define LSA_POLICY_NOTIFICATION ( 0x00001000 )
107 /* bitmap lsa_AccountAccessMask */
108 #define LSA_ACCOUNT_VIEW ( 0x00000001 )
109 #define LSA_ACCOUNT_ADJUST_PRIVILEGES ( 0x00000002 )
110 #define LSA_ACCOUNT_ADJUST_QUOTAS ( 0x00000004 )
111 #define LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS ( 0x00000008 )
113 /* bitmap lsa_SecretAccessMask */
114 #define LSA_SECRET_SET_VALUE ( 0x00000001 )
115 #define LSA_SECRET_QUERY_VALUE ( 0x00000002 )
117 /* bitmap lsa_TrustedAccessMask */
118 #define LSA_TRUSTED_QUERY_DOMAIN_NAME ( 0x00000001 )
119 #define LSA_TRUSTED_QUERY_CONTROLLERS ( 0x00000002 )
120 #define LSA_TRUSTED_SET_CONTROLLERS ( 0x00000004 )
121 #define LSA_TRUSTED_QUERY_POSIX ( 0x00000008 )
122 #define LSA_TRUSTED_SET_POSIX ( 0x00000010 )
123 #define LSA_TRUSTED_SET_AUTH ( 0x00000020 )
124 #define LSA_TRUSTED_QUERY_AUTH ( 0x00000040 )
126 struct lsa_AuditLogInfo {
127 uint32_t percent_full;
128 uint32_t maximum_log_size;
129 uint64_t retention_time;
130 uint8_t shutdown_in_progress;
131 uint64_t time_to_shutdown;
132 uint32_t next_audit_record;
135 enum lsa_PolicyAuditPolicy
136 #ifndef USE_UINT_ENUMS
138 LSA_AUDIT_POLICY_NONE=0,
139 LSA_AUDIT_POLICY_SUCCESS=1,
140 LSA_AUDIT_POLICY_FAILURE=2,
141 LSA_AUDIT_POLICY_ALL=(LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE),
142 LSA_AUDIT_POLICY_CLEAR=4
144 #else
145 { __donnot_use_enum_lsa_PolicyAuditPolicy=0x7FFFFFFF}
146 #define LSA_AUDIT_POLICY_NONE ( 0 )
147 #define LSA_AUDIT_POLICY_SUCCESS ( 1 )
148 #define LSA_AUDIT_POLICY_FAILURE ( 2 )
149 #define LSA_AUDIT_POLICY_ALL ( (LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE) )
150 #define LSA_AUDIT_POLICY_CLEAR ( 4 )
151 #endif
154 enum lsa_PolicyAuditEventType
155 #ifndef USE_UINT_ENUMS
157 LSA_AUDIT_CATEGORY_SYSTEM=0,
158 LSA_AUDIT_CATEGORY_LOGON=1,
159 LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS=2,
160 LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS=3,
161 LSA_AUDIT_CATEGORY_PROCCESS_TRACKING=4,
162 LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES=5,
163 LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT=6,
164 LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS=7,
165 LSA_AUDIT_CATEGORY_ACCOUNT_LOGON=8
167 #else
168 { __donnot_use_enum_lsa_PolicyAuditEventType=0x7FFFFFFF}
169 #define LSA_AUDIT_CATEGORY_SYSTEM ( 0 )
170 #define LSA_AUDIT_CATEGORY_LOGON ( 1 )
171 #define LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS ( 2 )
172 #define LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS ( 3 )
173 #define LSA_AUDIT_CATEGORY_PROCCESS_TRACKING ( 4 )
174 #define LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES ( 5 )
175 #define LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT ( 6 )
176 #define LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS ( 7 )
177 #define LSA_AUDIT_CATEGORY_ACCOUNT_LOGON ( 8 )
178 #endif
181 struct lsa_AuditEventsInfo {
182 uint32_t auditing_mode;
183 enum lsa_PolicyAuditPolicy *settings;/* [unique,size_is(count)] */
184 uint32_t count;
187 struct lsa_DomainInfo {
188 struct lsa_StringLarge name;
189 struct dom_sid2 *sid;/* [unique] */
192 struct lsa_PDAccountInfo {
193 struct lsa_String name;
196 enum lsa_Role
197 #ifndef USE_UINT_ENUMS
199 LSA_ROLE_BACKUP=2,
200 LSA_ROLE_PRIMARY=3
202 #else
203 { __donnot_use_enum_lsa_Role=0x7FFFFFFF}
204 #define LSA_ROLE_BACKUP ( 2 )
205 #define LSA_ROLE_PRIMARY ( 3 )
206 #endif
209 struct lsa_ServerRole {
210 enum lsa_Role role;
213 struct lsa_ReplicaSourceInfo {
214 struct lsa_String source;
215 struct lsa_String account;
218 struct lsa_DefaultQuotaInfo {
219 uint32_t paged_pool;
220 uint32_t non_paged_pool;
221 uint32_t min_wss;
222 uint32_t max_wss;
223 uint32_t pagefile;
224 uint64_t unknown;
227 struct lsa_ModificationInfo {
228 uint64_t modified_id;
229 NTTIME db_create_time;
232 struct lsa_AuditFullSetInfo {
233 uint8_t shutdown_on_full;
236 struct lsa_AuditFullQueryInfo {
237 uint8_t shutdown_on_full;
238 uint8_t log_is_full;
241 struct lsa_DnsDomainInfo {
242 struct lsa_StringLarge name;
243 struct lsa_StringLarge dns_domain;
244 struct lsa_StringLarge dns_forest;
245 struct GUID domain_guid;
246 struct dom_sid2 *sid;/* [unique] */
249 enum lsa_PolicyInfo
250 #ifndef USE_UINT_ENUMS
252 LSA_POLICY_INFO_AUDIT_LOG=1,
253 LSA_POLICY_INFO_AUDIT_EVENTS=2,
254 LSA_POLICY_INFO_DOMAIN=3,
255 LSA_POLICY_INFO_PD=4,
256 LSA_POLICY_INFO_ACCOUNT_DOMAIN=5,
257 LSA_POLICY_INFO_ROLE=6,
258 LSA_POLICY_INFO_REPLICA=7,
259 LSA_POLICY_INFO_QUOTA=8,
260 LSA_POLICY_INFO_MOD=9,
261 LSA_POLICY_INFO_AUDIT_FULL_SET=10,
262 LSA_POLICY_INFO_AUDIT_FULL_QUERY=11,
263 LSA_POLICY_INFO_DNS=12,
264 LSA_POLICY_INFO_DNS_INT=13,
265 LSA_POLICY_INFO_L_ACCOUNT_DOMAIN=14
267 #else
268 { __donnot_use_enum_lsa_PolicyInfo=0x7FFFFFFF}
269 #define LSA_POLICY_INFO_AUDIT_LOG ( 1 )
270 #define LSA_POLICY_INFO_AUDIT_EVENTS ( 2 )
271 #define LSA_POLICY_INFO_DOMAIN ( 3 )
272 #define LSA_POLICY_INFO_PD ( 4 )
273 #define LSA_POLICY_INFO_ACCOUNT_DOMAIN ( 5 )
274 #define LSA_POLICY_INFO_ROLE ( 6 )
275 #define LSA_POLICY_INFO_REPLICA ( 7 )
276 #define LSA_POLICY_INFO_QUOTA ( 8 )
277 #define LSA_POLICY_INFO_MOD ( 9 )
278 #define LSA_POLICY_INFO_AUDIT_FULL_SET ( 10 )
279 #define LSA_POLICY_INFO_AUDIT_FULL_QUERY ( 11 )
280 #define LSA_POLICY_INFO_DNS ( 12 )
281 #define LSA_POLICY_INFO_DNS_INT ( 13 )
282 #define LSA_POLICY_INFO_L_ACCOUNT_DOMAIN ( 14 )
283 #endif
286 union lsa_PolicyInformation {
287 struct lsa_AuditLogInfo audit_log;/* [case(LSA_POLICY_INFO_AUDIT_LOG)] */
288 struct lsa_AuditEventsInfo audit_events;/* [case(LSA_POLICY_INFO_AUDIT_EVENTS)] */
289 struct lsa_DomainInfo domain;/* [case(LSA_POLICY_INFO_DOMAIN)] */
290 struct lsa_PDAccountInfo pd;/* [case(LSA_POLICY_INFO_PD)] */
291 struct lsa_DomainInfo account_domain;/* [case(LSA_POLICY_INFO_ACCOUNT_DOMAIN)] */
292 struct lsa_ServerRole role;/* [case(LSA_POLICY_INFO_ROLE)] */
293 struct lsa_ReplicaSourceInfo replica;/* [case(LSA_POLICY_INFO_REPLICA)] */
294 struct lsa_DefaultQuotaInfo quota;/* [case(LSA_POLICY_INFO_QUOTA)] */
295 struct lsa_ModificationInfo mod;/* [case(LSA_POLICY_INFO_MOD)] */
296 struct lsa_AuditFullSetInfo auditfullset;/* [case(LSA_POLICY_INFO_AUDIT_FULL_SET)] */
297 struct lsa_AuditFullQueryInfo auditfullquery;/* [case(LSA_POLICY_INFO_AUDIT_FULL_QUERY)] */
298 struct lsa_DnsDomainInfo dns;/* [case(LSA_POLICY_INFO_DNS)] */
299 struct lsa_DomainInfo l_account_domain;/* [case(LSA_POLICY_INFO_L_ACCOUNT_DOMAIN)] */
300 }/* [switch_type(uint16)] */;
302 struct lsa_SidPtr {
303 struct dom_sid2 *sid;/* [unique] */
306 struct lsa_SidArray {
307 uint32_t num_sids;/* [range(0,1000)] */
308 struct lsa_SidPtr *sids;/* [unique,size_is(num_sids)] */
309 }/* [public] */;
311 struct lsa_DomainList {
312 uint32_t count;
313 struct lsa_DomainInfo *domains;/* [unique,size_is(count)] */
316 enum lsa_SidType
317 #ifndef USE_UINT_ENUMS
319 SID_NAME_USE_NONE=0,
320 SID_NAME_USER=1,
321 SID_NAME_DOM_GRP=2,
322 SID_NAME_DOMAIN=3,
323 SID_NAME_ALIAS=4,
324 SID_NAME_WKN_GRP=5,
325 SID_NAME_DELETED=6,
326 SID_NAME_INVALID=7,
327 SID_NAME_UNKNOWN=8,
328 SID_NAME_COMPUTER=9
330 #else
331 { __donnot_use_enum_lsa_SidType=0x7FFFFFFF}
332 #define SID_NAME_USE_NONE ( 0 )
333 #define SID_NAME_USER ( 1 )
334 #define SID_NAME_DOM_GRP ( 2 )
335 #define SID_NAME_DOMAIN ( 3 )
336 #define SID_NAME_ALIAS ( 4 )
337 #define SID_NAME_WKN_GRP ( 5 )
338 #define SID_NAME_DELETED ( 6 )
339 #define SID_NAME_INVALID ( 7 )
340 #define SID_NAME_UNKNOWN ( 8 )
341 #define SID_NAME_COMPUTER ( 9 )
342 #endif
345 struct lsa_TranslatedSid {
346 enum lsa_SidType sid_type;
347 uint32_t rid;
348 uint32_t sid_index;
351 struct lsa_TransSidArray {
352 uint32_t count;/* [range(0,1000)] */
353 struct lsa_TranslatedSid *sids;/* [unique,size_is(count)] */
356 struct lsa_RefDomainList {
357 uint32_t count;/* [range(0,1000)] */
358 struct lsa_DomainInfo *domains;/* [unique,size_is(count)] */
359 uint32_t max_size;
362 enum lsa_LookupNamesLevel
363 #ifndef USE_UINT_ENUMS
365 LSA_LOOKUP_NAMES_ALL=1,
366 LSA_LOOKUP_NAMES_DOMAINS_ONLY=2,
367 LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY=3,
368 LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY=4,
369 LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY=5,
370 LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2=6,
371 LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC=7
373 #else
374 { __donnot_use_enum_lsa_LookupNamesLevel=0x7FFFFFFF}
375 #define LSA_LOOKUP_NAMES_ALL ( 1 )
376 #define LSA_LOOKUP_NAMES_DOMAINS_ONLY ( 2 )
377 #define LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY ( 3 )
378 #define LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY ( 4 )
379 #define LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY ( 5 )
380 #define LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2 ( 6 )
381 #define LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC ( 7 )
382 #endif
385 struct lsa_TranslatedName {
386 enum lsa_SidType sid_type;
387 struct lsa_String name;
388 uint32_t sid_index;
391 struct lsa_TransNameArray {
392 uint32_t count;/* [range(0,1000)] */
393 struct lsa_TranslatedName *names;/* [unique,size_is(count)] */
396 struct lsa_LUIDAttribute {
397 struct lsa_LUID luid;
398 uint32_t attribute;
401 struct lsa_PrivilegeSet {
402 uint32_t count;/* [range(0,1000)] */
403 uint32_t unknown;
404 struct lsa_LUIDAttribute *set;/* [size_is(count)] */
407 /* bitmap lsa_SystemAccessModeFlags */
408 #define LSA_POLICY_MODE_INTERACTIVE ( 0x00000001 )
409 #define LSA_POLICY_MODE_NETWORK ( 0x00000002 )
410 #define LSA_POLICY_MODE_BATCH ( 0x00000004 )
411 #define LSA_POLICY_MODE_SERVICE ( 0x00000010 )
412 #define LSA_POLICY_MODE_PROXY ( 0x00000020 )
413 #define LSA_POLICY_MODE_DENY_INTERACTIVE ( 0x00000040 )
414 #define LSA_POLICY_MODE_DENY_NETWORK ( 0x00000080 )
415 #define LSA_POLICY_MODE_DENY_BATCH ( 0x00000100 )
416 #define LSA_POLICY_MODE_DENY_SERVICE ( 0x00000200 )
417 #define LSA_POLICY_MODE_REMOTE_INTERACTIVE ( 0x00000400 )
418 #define LSA_POLICY_MODE_DENY_REMOTE_INTERACTIVE ( 0x00000800 )
419 #define LSA_POLICY_MODE_ALL ( 0x00000FF7 )
420 #define LSA_POLICY_MODE_ALL_NT4 ( 0x00000037 )
422 struct lsa_DATA_BUF {
423 uint32_t length;
424 uint32_t size;
425 uint8_t *data;/* [unique,length_is(length),size_is(size)] */
426 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
428 struct lsa_DATA_BUF2 {
429 uint32_t size;/* [range(0,65536)] */
430 uint8_t *data;/* [unique,size_is(size)] */
431 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
433 enum lsa_TrustDomInfoEnum
434 #ifndef USE_UINT_ENUMS
436 LSA_TRUSTED_DOMAIN_INFO_NAME=1,
437 LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS=2,
438 LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET=3,
439 LSA_TRUSTED_DOMAIN_INFO_PASSWORD=4,
440 LSA_TRUSTED_DOMAIN_INFO_BASIC=5,
441 LSA_TRUSTED_DOMAIN_INFO_INFO_EX=6,
442 LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO=7,
443 LSA_TRUSTED_DOMAIN_INFO_FULL_INFO=8,
444 LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL=9,
445 LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL=10,
446 LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL=11,
447 LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL=12,
448 LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES=13
450 #else
451 { __donnot_use_enum_lsa_TrustDomInfoEnum=0x7FFFFFFF}
452 #define LSA_TRUSTED_DOMAIN_INFO_NAME ( 1 )
453 #define LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS ( 2 )
454 #define LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET ( 3 )
455 #define LSA_TRUSTED_DOMAIN_INFO_PASSWORD ( 4 )
456 #define LSA_TRUSTED_DOMAIN_INFO_BASIC ( 5 )
457 #define LSA_TRUSTED_DOMAIN_INFO_INFO_EX ( 6 )
458 #define LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO ( 7 )
459 #define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO ( 8 )
460 #define LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL ( 9 )
461 #define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL ( 10 )
462 #define LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL ( 11 )
463 #define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL ( 12 )
464 #define LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES ( 13 )
465 #endif
468 /* bitmap lsa_TrustDirection */
469 #define LSA_TRUST_DIRECTION_INBOUND ( 0x00000001 )
470 #define LSA_TRUST_DIRECTION_OUTBOUND ( 0x00000002 )
472 enum lsa_TrustType
473 #ifndef USE_UINT_ENUMS
475 LSA_TRUST_TYPE_DOWNLEVEL=0x00000001,
476 LSA_TRUST_TYPE_UPLEVEL=0x00000002,
477 LSA_TRUST_TYPE_MIT=0x00000003
479 #else
480 { __donnot_use_enum_lsa_TrustType=0x7FFFFFFF}
481 #define LSA_TRUST_TYPE_DOWNLEVEL ( 0x00000001 )
482 #define LSA_TRUST_TYPE_UPLEVEL ( 0x00000002 )
483 #define LSA_TRUST_TYPE_MIT ( 0x00000003 )
484 #endif
487 /* bitmap lsa_TrustAttributes */
488 #define LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 )
489 #define LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 )
490 #define LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 )
491 #define LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 )
492 #define LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 )
493 #define LSA_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 )
494 #define LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 )
495 #define LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION ( 0x00000080 )
497 struct lsa_TrustDomainInfoName {
498 struct lsa_StringLarge netbios_name;
501 struct lsa_TrustDomainInfoControllers {
502 uint32_t entries;
503 struct lsa_StringLarge *netbios_names;/* [unique,size_is(entries)] */
506 struct lsa_TrustDomainInfoPosixOffset {
507 uint32_t posix_offset;
510 struct lsa_TrustDomainInfoPassword {
511 struct lsa_DATA_BUF *password;/* [unique] */
512 struct lsa_DATA_BUF *old_password;/* [unique] */
515 struct lsa_TrustDomainInfoBasic {
516 struct lsa_String netbios_name;
517 struct dom_sid2 *sid;/* [unique] */
520 struct lsa_TrustDomainInfoInfoEx {
521 struct lsa_StringLarge domain_name;
522 struct lsa_StringLarge netbios_name;
523 struct dom_sid2 *sid;/* [unique] */
524 uint32_t trust_direction;
525 enum lsa_TrustType trust_type;
526 uint32_t trust_attributes;
529 enum lsa_TrustAuthType
530 #ifndef USE_UINT_ENUMS
532 TRUST_AUTH_TYPE_NONE=0,
533 TRUST_AUTH_TYPE_NT4OWF=1,
534 TRUST_AUTH_TYPE_CLEAR=2,
535 TRUST_AUTH_TYPE_VERSION=3
537 #else
538 { __donnot_use_enum_lsa_TrustAuthType=0x7FFFFFFF}
539 #define TRUST_AUTH_TYPE_NONE ( 0 )
540 #define TRUST_AUTH_TYPE_NT4OWF ( 1 )
541 #define TRUST_AUTH_TYPE_CLEAR ( 2 )
542 #define TRUST_AUTH_TYPE_VERSION ( 3 )
543 #endif
546 struct lsa_TrustDomainInfoBuffer {
547 NTTIME last_update_time;
548 enum lsa_TrustAuthType AuthType;
549 struct lsa_DATA_BUF2 data;
552 struct lsa_TrustDomainInfoAuthInfo {
553 uint32_t incoming_count;
554 struct lsa_TrustDomainInfoBuffer *incoming_current_auth_info;/* [unique] */
555 struct lsa_TrustDomainInfoBuffer *incoming_previous_auth_info;/* [unique] */
556 uint32_t outgoing_count;
557 struct lsa_TrustDomainInfoBuffer *outgoing_current_auth_info;/* [unique] */
558 struct lsa_TrustDomainInfoBuffer *outgoing_previous_auth_info;/* [unique] */
561 struct lsa_TrustDomainInfoFullInfo {
562 struct lsa_TrustDomainInfoInfoEx info_ex;
563 struct lsa_TrustDomainInfoPosixOffset posix_offset;
564 struct lsa_TrustDomainInfoAuthInfo auth_info;
567 struct lsa_TrustDomainInfoAuthInfoInternal {
568 struct lsa_DATA_BUF2 auth_blob;
571 struct lsa_TrustDomainInfoFullInfoInternal {
572 struct lsa_TrustDomainInfoInfoEx info_ex;
573 struct lsa_TrustDomainInfoPosixOffset posix_offset;
574 struct lsa_TrustDomainInfoAuthInfoInternal auth_info;
577 struct lsa_TrustDomainInfoInfoEx2Internal {
578 struct lsa_TrustDomainInfoInfoEx info_ex;
579 uint32_t forest_trust_length;
580 uint8_t *forest_trust_data;/* [unique,size_is(forest_trust_length)] */
583 struct lsa_TrustDomainInfoFullInfo2Internal {
584 struct lsa_TrustDomainInfoInfoEx2Internal info;
585 struct lsa_TrustDomainInfoPosixOffset posix_offset;
586 struct lsa_TrustDomainInfoAuthInfo auth_info;
589 struct lsa_TrustDomainInfoSupportedEncTypes {
590 uint32_t enc_types;
593 union lsa_TrustedDomainInfo {
594 struct lsa_TrustDomainInfoName name;/* [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] */
595 struct lsa_TrustDomainInfoControllers controllers;/* [case(LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS)] */
596 struct lsa_TrustDomainInfoPosixOffset posix_offset;/* [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] */
597 struct lsa_TrustDomainInfoPassword password;/* [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] */
598 struct lsa_TrustDomainInfoBasic info_basic;/* [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)] */
599 struct lsa_TrustDomainInfoInfoEx info_ex;/* [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)] */
600 struct lsa_TrustDomainInfoAuthInfo auth_info;/* [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)] */
601 struct lsa_TrustDomainInfoFullInfo full_info;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)] */
602 struct lsa_TrustDomainInfoAuthInfoInternal auth_info_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL)] */
603 struct lsa_TrustDomainInfoFullInfoInternal full_info_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL)] */
604 struct lsa_TrustDomainInfoInfoEx2Internal info_ex2_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL)] */
605 struct lsa_TrustDomainInfoFullInfo2Internal full_info2_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL)] */
606 struct lsa_TrustDomainInfoSupportedEncTypes enc_types;/* [case(LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES)] */
607 }/* [switch_type(lsa_TrustDomInfoEnum)] */;
609 struct lsa_DATA_BUF_PTR {
610 struct lsa_DATA_BUF *buf;/* [unique] */
613 struct lsa_RightAttribute {
614 const char *name;/* [unique,charset(UTF16)] */
617 struct lsa_RightSet {
618 uint32_t count;/* [range(0,256)] */
619 struct lsa_StringLarge *names;/* [unique,size_is(count)] */
622 struct lsa_DomainListEx {
623 uint32_t count;
624 struct lsa_TrustDomainInfoInfoEx *domains;/* [unique,size_is(count)] */
627 struct lsa_DomainInfoKerberos {
628 uint32_t enforce_restrictions;
629 uint64_t service_tkt_lifetime;
630 uint64_t user_tkt_lifetime;
631 uint64_t user_tkt_renewaltime;
632 uint64_t clock_skew;
633 uint64_t unknown6;
636 struct lsa_DomainInfoEfs {
637 uint32_t blob_size;
638 uint8_t *efs_blob;/* [unique,size_is(blob_size)] */
641 enum lsa_DomainInfoEnum
642 #ifndef USE_UINT_ENUMS
644 LSA_DOMAIN_INFO_POLICY_EFS=2,
645 LSA_DOMAIN_INFO_POLICY_KERBEROS=3
647 #else
648 { __donnot_use_enum_lsa_DomainInfoEnum=0x7FFFFFFF}
649 #define LSA_DOMAIN_INFO_POLICY_EFS ( 2 )
650 #define LSA_DOMAIN_INFO_POLICY_KERBEROS ( 3 )
651 #endif
654 union lsa_DomainInformationPolicy {
655 struct lsa_DomainInfoEfs efs_info;/* [case(LSA_DOMAIN_INFO_POLICY_EFS)] */
656 struct lsa_DomainInfoKerberos kerberos_info;/* [case(LSA_DOMAIN_INFO_POLICY_KERBEROS)] */
657 }/* [switch_type(uint16)] */;
659 struct lsa_TranslatedName2 {
660 enum lsa_SidType sid_type;
661 struct lsa_String name;
662 uint32_t sid_index;
663 uint32_t unknown;
666 struct lsa_TransNameArray2 {
667 uint32_t count;/* [range(0,1000)] */
668 struct lsa_TranslatedName2 *names;/* [unique,size_is(count)] */
671 enum lsa_LookupOptions
672 #ifndef USE_UINT_ENUMS
674 LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES=0x00000000,
675 LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES_LOCAL=0x80000000
677 #else
678 { __donnot_use_enum_lsa_LookupOptions=0x7FFFFFFF}
679 #define LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES ( 0x00000000 )
680 #define LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES_LOCAL ( 0x80000000 )
681 #endif
684 enum lsa_ClientRevision
685 #ifndef USE_UINT_ENUMS
687 LSA_CLIENT_REVISION_1=0x00000001,
688 LSA_CLIENT_REVISION_2=0x00000002
690 #else
691 { __donnot_use_enum_lsa_ClientRevision=0x7FFFFFFF}
692 #define LSA_CLIENT_REVISION_1 ( 0x00000001 )
693 #define LSA_CLIENT_REVISION_2 ( 0x00000002 )
694 #endif
697 struct lsa_TranslatedSid2 {
698 enum lsa_SidType sid_type;
699 uint32_t rid;
700 uint32_t sid_index;
701 uint32_t unknown;
704 struct lsa_TransSidArray2 {
705 uint32_t count;/* [range(0,1000)] */
706 struct lsa_TranslatedSid2 *sids;/* [unique,size_is(count)] */
709 struct lsa_TranslatedSid3 {
710 enum lsa_SidType sid_type;
711 struct dom_sid2 *sid;/* [unique] */
712 uint32_t sid_index;
713 uint32_t flags;
716 struct lsa_TransSidArray3 {
717 uint32_t count;/* [range(0,1000)] */
718 struct lsa_TranslatedSid3 *sids;/* [unique,size_is(count)] */
721 struct lsa_ForestTrustBinaryData {
722 uint32_t length;/* [range(0,131072)] */
723 uint8_t *data;/* [unique,size_is(length)] */
726 struct lsa_ForestTrustDomainInfo {
727 struct dom_sid2 *domain_sid;/* [unique] */
728 struct lsa_StringLarge dns_domain_name;
729 struct lsa_StringLarge netbios_domain_name;
732 union lsa_ForestTrustData {
733 struct lsa_String top_level_name;/* [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME)] */
734 struct lsa_StringLarge top_level_name_ex;/* [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX)] */
735 struct lsa_ForestTrustDomainInfo domain_info;/* [case(LSA_FOREST_TRUST_DOMAIN_INFO)] */
736 struct lsa_ForestTrustBinaryData data;/* [default] */
737 }/* [switch_type(uint32)] */;
739 enum lsa_ForestTrustRecordType
740 #ifndef USE_UINT_ENUMS
742 LSA_FOREST_TRUST_TOP_LEVEL_NAME=0,
743 LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX=1,
744 LSA_FOREST_TRUST_DOMAIN_INFO=2,
745 LSA_FOREST_TRUST_RECORD_TYPE_LAST=3
747 #else
748 { __donnot_use_enum_lsa_ForestTrustRecordType=0x7FFFFFFF}
749 #define LSA_FOREST_TRUST_TOP_LEVEL_NAME ( 0 )
750 #define LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX ( 1 )
751 #define LSA_FOREST_TRUST_DOMAIN_INFO ( 2 )
752 #define LSA_FOREST_TRUST_RECORD_TYPE_LAST ( 3 )
753 #endif
756 struct lsa_ForestTrustRecord {
757 uint32_t flags;
758 enum lsa_ForestTrustRecordType level;
759 uint64_t unknown;
760 union lsa_ForestTrustData forest_trust_data;/* [switch_is(level)] */
763 struct lsa_ForestTrustInformation {
764 uint32_t count;/* [range(0,4000)] */
765 struct lsa_ForestTrustRecord **entries;/* [unique,size_is(count)] */
766 }/* [public] */;
769 struct lsa_Close {
770 struct {
771 struct policy_handle *handle;/* [ref] */
772 } in;
774 struct {
775 struct policy_handle *handle;/* [ref] */
776 NTSTATUS result;
777 } out;
782 struct lsa_Delete {
783 struct {
784 struct policy_handle *handle;/* [ref] */
785 } in;
787 struct {
788 NTSTATUS result;
789 } out;
794 struct lsa_EnumPrivs {
795 struct {
796 struct policy_handle *handle;/* [ref] */
797 uint32_t max_count;
798 uint32_t *resume_handle;/* [ref] */
799 } in;
801 struct {
802 struct lsa_PrivArray *privs;/* [ref] */
803 uint32_t *resume_handle;/* [ref] */
804 NTSTATUS result;
805 } out;
810 struct lsa_QuerySecurity {
811 struct {
812 struct policy_handle *handle;/* [ref] */
813 uint32_t sec_info;
814 } in;
816 struct {
817 struct sec_desc_buf **sdbuf;/* [ref] */
818 NTSTATUS result;
819 } out;
824 struct lsa_SetSecObj {
825 struct {
826 struct policy_handle *handle;/* [ref] */
827 uint32_t sec_info;
828 struct sec_desc_buf *sdbuf;/* [ref] */
829 } in;
831 struct {
832 NTSTATUS result;
833 } out;
838 struct lsa_ChangePassword {
839 struct {
840 NTSTATUS result;
841 } out;
846 struct lsa_OpenPolicy {
847 struct {
848 uint16_t *system_name;/* [unique] */
849 struct lsa_ObjectAttribute *attr;/* [ref] */
850 uint32_t access_mask;
851 } in;
853 struct {
854 struct policy_handle *handle;/* [ref] */
855 NTSTATUS result;
856 } out;
861 struct lsa_QueryInfoPolicy {
862 struct {
863 struct policy_handle *handle;/* [ref] */
864 enum lsa_PolicyInfo level;
865 } in;
867 struct {
868 union lsa_PolicyInformation **info;/* [ref,switch_is(level)] */
869 NTSTATUS result;
870 } out;
875 struct lsa_SetInfoPolicy {
876 struct {
877 struct policy_handle *handle;/* [ref] */
878 enum lsa_PolicyInfo level;
879 union lsa_PolicyInformation *info;/* [ref,switch_is(level)] */
880 } in;
882 struct {
883 NTSTATUS result;
884 } out;
889 struct lsa_ClearAuditLog {
890 struct {
891 NTSTATUS result;
892 } out;
897 struct lsa_CreateAccount {
898 struct {
899 struct policy_handle *handle;/* [ref] */
900 struct dom_sid2 *sid;/* [ref] */
901 uint32_t access_mask;
902 } in;
904 struct {
905 struct policy_handle *acct_handle;/* [ref] */
906 NTSTATUS result;
907 } out;
912 struct lsa_EnumAccounts {
913 struct {
914 struct policy_handle *handle;/* [ref] */
915 uint32_t num_entries;/* [range(0,8192)] */
916 uint32_t *resume_handle;/* [ref] */
917 } in;
919 struct {
920 struct lsa_SidArray *sids;/* [ref] */
921 uint32_t *resume_handle;/* [ref] */
922 NTSTATUS result;
923 } out;
928 struct lsa_CreateTrustedDomain {
929 struct {
930 struct policy_handle *policy_handle;/* [ref] */
931 struct lsa_DomainInfo *info;/* [ref] */
932 uint32_t access_mask;
933 } in;
935 struct {
936 struct policy_handle *trustdom_handle;/* [ref] */
937 NTSTATUS result;
938 } out;
943 struct lsa_EnumTrustDom {
944 struct {
945 struct policy_handle *handle;/* [ref] */
946 uint32_t max_size;
947 uint32_t *resume_handle;/* [ref] */
948 } in;
950 struct {
951 struct lsa_DomainList *domains;/* [ref] */
952 uint32_t *resume_handle;/* [ref] */
953 NTSTATUS result;
954 } out;
959 struct lsa_LookupNames {
960 struct {
961 struct policy_handle *handle;/* [ref] */
962 uint32_t num_names;/* [range(0,1000)] */
963 struct lsa_String *names;/* [size_is(num_names)] */
964 enum lsa_LookupNamesLevel level;
965 struct lsa_TransSidArray *sids;/* [ref] */
966 uint32_t *count;/* [ref] */
967 } in;
969 struct {
970 struct lsa_RefDomainList **domains;/* [ref] */
971 struct lsa_TransSidArray *sids;/* [ref] */
972 uint32_t *count;/* [ref] */
973 NTSTATUS result;
974 } out;
979 struct lsa_LookupSids {
980 struct {
981 struct policy_handle *handle;/* [ref] */
982 struct lsa_SidArray *sids;/* [ref] */
983 enum lsa_LookupNamesLevel level;
984 struct lsa_TransNameArray *names;/* [ref] */
985 uint32_t *count;/* [ref] */
986 } in;
988 struct {
989 struct lsa_RefDomainList **domains;/* [ref] */
990 struct lsa_TransNameArray *names;/* [ref] */
991 uint32_t *count;/* [ref] */
992 NTSTATUS result;
993 } out;
998 struct lsa_CreateSecret {
999 struct {
1000 struct policy_handle *handle;/* [ref] */
1001 struct lsa_String name;
1002 uint32_t access_mask;
1003 } in;
1005 struct {
1006 struct policy_handle *sec_handle;/* [ref] */
1007 NTSTATUS result;
1008 } out;
1013 struct lsa_OpenAccount {
1014 struct {
1015 struct policy_handle *handle;/* [ref] */
1016 struct dom_sid2 *sid;/* [ref] */
1017 uint32_t access_mask;
1018 } in;
1020 struct {
1021 struct policy_handle *acct_handle;/* [ref] */
1022 NTSTATUS result;
1023 } out;
1028 struct lsa_EnumPrivsAccount {
1029 struct {
1030 struct policy_handle *handle;/* [ref] */
1031 } in;
1033 struct {
1034 struct lsa_PrivilegeSet **privs;/* [ref] */
1035 NTSTATUS result;
1036 } out;
1041 struct lsa_AddPrivilegesToAccount {
1042 struct {
1043 struct policy_handle *handle;/* [ref] */
1044 struct lsa_PrivilegeSet *privs;/* [ref] */
1045 } in;
1047 struct {
1048 NTSTATUS result;
1049 } out;
1054 struct lsa_RemovePrivilegesFromAccount {
1055 struct {
1056 struct policy_handle *handle;/* [ref] */
1057 uint8_t remove_all;
1058 struct lsa_PrivilegeSet *privs;/* [unique] */
1059 } in;
1061 struct {
1062 NTSTATUS result;
1063 } out;
1068 struct lsa_GetQuotasForAccount {
1069 struct {
1070 NTSTATUS result;
1071 } out;
1076 struct lsa_SetQuotasForAccount {
1077 struct {
1078 NTSTATUS result;
1079 } out;
1084 struct lsa_GetSystemAccessAccount {
1085 struct {
1086 struct policy_handle *handle;/* [ref] */
1087 } in;
1089 struct {
1090 uint32_t *access_mask;/* [ref] */
1091 NTSTATUS result;
1092 } out;
1097 struct lsa_SetSystemAccessAccount {
1098 struct {
1099 struct policy_handle *handle;/* [ref] */
1100 uint32_t access_mask;
1101 } in;
1103 struct {
1104 NTSTATUS result;
1105 } out;
1110 struct lsa_OpenTrustedDomain {
1111 struct {
1112 struct policy_handle *handle;/* [ref] */
1113 struct dom_sid2 *sid;/* [ref] */
1114 uint32_t access_mask;
1115 } in;
1117 struct {
1118 struct policy_handle *trustdom_handle;/* [ref] */
1119 NTSTATUS result;
1120 } out;
1125 struct lsa_QueryTrustedDomainInfo {
1126 struct {
1127 struct policy_handle *trustdom_handle;/* [ref] */
1128 enum lsa_TrustDomInfoEnum level;
1129 } in;
1131 struct {
1132 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1133 NTSTATUS result;
1134 } out;
1139 struct lsa_SetInformationTrustedDomain {
1140 struct {
1141 struct policy_handle *trustdom_handle;/* [ref] */
1142 enum lsa_TrustDomInfoEnum level;
1143 union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
1144 } in;
1146 struct {
1147 NTSTATUS result;
1148 } out;
1153 struct lsa_OpenSecret {
1154 struct {
1155 struct policy_handle *handle;/* [ref] */
1156 struct lsa_String name;
1157 uint32_t access_mask;
1158 } in;
1160 struct {
1161 struct policy_handle *sec_handle;/* [ref] */
1162 NTSTATUS result;
1163 } out;
1168 struct lsa_SetSecret {
1169 struct {
1170 struct policy_handle *sec_handle;/* [ref] */
1171 struct lsa_DATA_BUF *new_val;/* [unique] */
1172 struct lsa_DATA_BUF *old_val;/* [unique] */
1173 } in;
1175 struct {
1176 NTSTATUS result;
1177 } out;
1182 struct lsa_QuerySecret {
1183 struct {
1184 struct policy_handle *sec_handle;/* [ref] */
1185 struct lsa_DATA_BUF_PTR *new_val;/* [unique] */
1186 NTTIME *new_mtime;/* [unique] */
1187 struct lsa_DATA_BUF_PTR *old_val;/* [unique] */
1188 NTTIME *old_mtime;/* [unique] */
1189 } in;
1191 struct {
1192 struct lsa_DATA_BUF_PTR *new_val;/* [unique] */
1193 NTTIME *new_mtime;/* [unique] */
1194 struct lsa_DATA_BUF_PTR *old_val;/* [unique] */
1195 NTTIME *old_mtime;/* [unique] */
1196 NTSTATUS result;
1197 } out;
1202 struct lsa_LookupPrivValue {
1203 struct {
1204 struct policy_handle *handle;/* [ref] */
1205 struct lsa_String *name;/* [ref] */
1206 } in;
1208 struct {
1209 struct lsa_LUID *luid;/* [ref] */
1210 NTSTATUS result;
1211 } out;
1216 struct lsa_LookupPrivName {
1217 struct {
1218 struct policy_handle *handle;/* [ref] */
1219 struct lsa_LUID *luid;/* [ref] */
1220 } in;
1222 struct {
1223 struct lsa_StringLarge **name;/* [ref] */
1224 NTSTATUS result;
1225 } out;
1230 struct lsa_LookupPrivDisplayName {
1231 struct {
1232 struct policy_handle *handle;/* [ref] */
1233 struct lsa_String *name;/* [ref] */
1234 uint16_t language_id;
1235 uint16_t language_id_sys;
1236 } in;
1238 struct {
1239 struct lsa_StringLarge **disp_name;/* [ref] */
1240 uint16_t *returned_language_id;/* [ref] */
1241 NTSTATUS result;
1242 } out;
1247 struct lsa_DeleteObject {
1248 struct {
1249 struct policy_handle *handle;/* [ref] */
1250 } in;
1252 struct {
1253 struct policy_handle *handle;/* [ref] */
1254 NTSTATUS result;
1255 } out;
1260 struct lsa_EnumAccountsWithUserRight {
1261 struct {
1262 struct policy_handle *handle;/* [ref] */
1263 struct lsa_String *name;/* [unique] */
1264 } in;
1266 struct {
1267 struct lsa_SidArray *sids;/* [ref] */
1268 NTSTATUS result;
1269 } out;
1274 struct lsa_EnumAccountRights {
1275 struct {
1276 struct policy_handle *handle;/* [ref] */
1277 struct dom_sid2 *sid;/* [ref] */
1278 } in;
1280 struct {
1281 struct lsa_RightSet *rights;/* [ref] */
1282 NTSTATUS result;
1283 } out;
1288 struct lsa_AddAccountRights {
1289 struct {
1290 struct policy_handle *handle;/* [ref] */
1291 struct dom_sid2 *sid;/* [ref] */
1292 struct lsa_RightSet *rights;/* [ref] */
1293 } in;
1295 struct {
1296 NTSTATUS result;
1297 } out;
1302 struct lsa_RemoveAccountRights {
1303 struct {
1304 struct policy_handle *handle;/* [ref] */
1305 struct dom_sid2 *sid;/* [ref] */
1306 uint8_t remove_all;
1307 struct lsa_RightSet *rights;/* [ref] */
1308 } in;
1310 struct {
1311 NTSTATUS result;
1312 } out;
1317 struct lsa_QueryTrustedDomainInfoBySid {
1318 struct {
1319 struct policy_handle *handle;/* [ref] */
1320 struct dom_sid2 *dom_sid;/* [ref] */
1321 enum lsa_TrustDomInfoEnum level;
1322 } in;
1324 struct {
1325 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1326 NTSTATUS result;
1327 } out;
1332 struct lsa_SetTrustedDomainInfo {
1333 struct {
1334 struct policy_handle *handle;/* [ref] */
1335 struct dom_sid2 *dom_sid;/* [ref] */
1336 enum lsa_TrustDomInfoEnum level;
1337 union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
1338 } in;
1340 struct {
1341 NTSTATUS result;
1342 } out;
1347 struct lsa_DeleteTrustedDomain {
1348 struct {
1349 struct policy_handle *handle;/* [ref] */
1350 struct dom_sid2 *dom_sid;/* [ref] */
1351 } in;
1353 struct {
1354 NTSTATUS result;
1355 } out;
1360 struct lsa_StorePrivateData {
1361 struct {
1362 struct policy_handle *handle;/* [ref] */
1363 struct lsa_String *name;/* [ref] */
1364 struct lsa_DATA_BUF *val;/* [unique] */
1365 } in;
1367 struct {
1368 NTSTATUS result;
1369 } out;
1374 struct lsa_RetrievePrivateData {
1375 struct {
1376 struct policy_handle *handle;/* [ref] */
1377 struct lsa_String *name;/* [ref] */
1378 struct lsa_DATA_BUF **val;/* [ref] */
1379 } in;
1381 struct {
1382 struct lsa_DATA_BUF **val;/* [ref] */
1383 NTSTATUS result;
1384 } out;
1389 struct lsa_OpenPolicy2 {
1390 struct {
1391 const char *system_name;/* [unique,charset(UTF16)] */
1392 struct lsa_ObjectAttribute *attr;/* [ref] */
1393 uint32_t access_mask;
1394 } in;
1396 struct {
1397 struct policy_handle *handle;/* [ref] */
1398 NTSTATUS result;
1399 } out;
1404 struct lsa_GetUserName {
1405 struct {
1406 const char *system_name;/* [unique,charset(UTF16)] */
1407 struct lsa_String **account_name;/* [ref] */
1408 struct lsa_String **authority_name;/* [unique] */
1409 } in;
1411 struct {
1412 struct lsa_String **account_name;/* [ref] */
1413 struct lsa_String **authority_name;/* [unique] */
1414 NTSTATUS result;
1415 } out;
1420 struct lsa_QueryInfoPolicy2 {
1421 struct {
1422 struct policy_handle *handle;/* [ref] */
1423 enum lsa_PolicyInfo level;
1424 } in;
1426 struct {
1427 union lsa_PolicyInformation **info;/* [ref,switch_is(level)] */
1428 NTSTATUS result;
1429 } out;
1434 struct lsa_SetInfoPolicy2 {
1435 struct {
1436 struct policy_handle *handle;/* [ref] */
1437 enum lsa_PolicyInfo level;
1438 union lsa_PolicyInformation *info;/* [ref,switch_is(level)] */
1439 } in;
1441 struct {
1442 NTSTATUS result;
1443 } out;
1448 struct lsa_QueryTrustedDomainInfoByName {
1449 struct {
1450 struct policy_handle *handle;/* [ref] */
1451 struct lsa_String *trusted_domain;/* [ref] */
1452 enum lsa_TrustDomInfoEnum level;
1453 } in;
1455 struct {
1456 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1457 NTSTATUS result;
1458 } out;
1463 struct lsa_SetTrustedDomainInfoByName {
1464 struct {
1465 struct policy_handle *handle;/* [ref] */
1466 struct lsa_String trusted_domain;
1467 enum lsa_TrustDomInfoEnum level;
1468 union lsa_TrustedDomainInfo *info;/* [unique,switch_is(level)] */
1469 } in;
1471 struct {
1472 NTSTATUS result;
1473 } out;
1478 struct lsa_EnumTrustedDomainsEx {
1479 struct {
1480 struct policy_handle *handle;/* [ref] */
1481 uint32_t max_size;
1482 uint32_t *resume_handle;/* [ref] */
1483 } in;
1485 struct {
1486 struct lsa_DomainListEx *domains;/* [ref] */
1487 uint32_t *resume_handle;/* [ref] */
1488 NTSTATUS result;
1489 } out;
1494 struct lsa_CreateTrustedDomainEx {
1495 struct {
1496 struct policy_handle *policy_handle;/* [ref] */
1497 struct lsa_TrustDomainInfoInfoEx *info;/* [ref] */
1498 struct lsa_TrustDomainInfoAuthInfoInternal *auth_info;/* [ref] */
1499 uint32_t access_mask;
1500 } in;
1502 struct {
1503 struct policy_handle *trustdom_handle;/* [ref] */
1504 NTSTATUS result;
1505 } out;
1510 struct lsa_CloseTrustedDomainEx {
1511 struct {
1512 struct policy_handle *handle;/* [ref] */
1513 } in;
1515 struct {
1516 struct policy_handle *handle;/* [ref] */
1517 NTSTATUS result;
1518 } out;
1523 struct lsa_QueryDomainInformationPolicy {
1524 struct {
1525 struct policy_handle *handle;/* [ref] */
1526 uint16_t level;
1527 } in;
1529 struct {
1530 union lsa_DomainInformationPolicy **info;/* [ref,switch_is(level)] */
1531 NTSTATUS result;
1532 } out;
1537 struct lsa_SetDomainInformationPolicy {
1538 struct {
1539 struct policy_handle *handle;/* [ref] */
1540 uint16_t level;
1541 union lsa_DomainInformationPolicy *info;/* [unique,switch_is(level)] */
1542 } in;
1544 struct {
1545 NTSTATUS result;
1546 } out;
1551 struct lsa_OpenTrustedDomainByName {
1552 struct {
1553 struct policy_handle *handle;/* [ref] */
1554 struct lsa_String name;
1555 uint32_t access_mask;
1556 } in;
1558 struct {
1559 struct policy_handle *trustdom_handle;/* [ref] */
1560 NTSTATUS result;
1561 } out;
1566 struct lsa_TestCall {
1567 struct {
1568 NTSTATUS result;
1569 } out;
1574 struct lsa_LookupSids2 {
1575 struct {
1576 struct policy_handle *handle;/* [ref] */
1577 struct lsa_SidArray *sids;/* [ref] */
1578 enum lsa_LookupNamesLevel level;
1579 enum lsa_LookupOptions lookup_options;
1580 enum lsa_ClientRevision client_revision;
1581 struct lsa_TransNameArray2 *names;/* [ref] */
1582 uint32_t *count;/* [ref] */
1583 } in;
1585 struct {
1586 struct lsa_RefDomainList **domains;/* [ref] */
1587 struct lsa_TransNameArray2 *names;/* [ref] */
1588 uint32_t *count;/* [ref] */
1589 NTSTATUS result;
1590 } out;
1595 struct lsa_LookupNames2 {
1596 struct {
1597 struct policy_handle *handle;/* [ref] */
1598 uint32_t num_names;/* [range(0,1000)] */
1599 struct lsa_String *names;/* [size_is(num_names)] */
1600 enum lsa_LookupNamesLevel level;
1601 enum lsa_LookupOptions lookup_options;
1602 enum lsa_ClientRevision client_revision;
1603 struct lsa_TransSidArray2 *sids;/* [ref] */
1604 uint32_t *count;/* [ref] */
1605 } in;
1607 struct {
1608 struct lsa_RefDomainList **domains;/* [ref] */
1609 struct lsa_TransSidArray2 *sids;/* [ref] */
1610 uint32_t *count;/* [ref] */
1611 NTSTATUS result;
1612 } out;
1617 struct lsa_CreateTrustedDomainEx2 {
1618 struct {
1619 struct policy_handle *policy_handle;/* [ref] */
1620 struct lsa_TrustDomainInfoInfoEx *info;/* [ref] */
1621 struct lsa_TrustDomainInfoAuthInfoInternal *auth_info;/* [ref] */
1622 uint32_t access_mask;
1623 } in;
1625 struct {
1626 struct policy_handle *trustdom_handle;/* [ref] */
1627 NTSTATUS result;
1628 } out;
1633 struct lsa_CREDRWRITE {
1634 struct {
1635 NTSTATUS result;
1636 } out;
1641 struct lsa_CREDRREAD {
1642 struct {
1643 NTSTATUS result;
1644 } out;
1649 struct lsa_CREDRENUMERATE {
1650 struct {
1651 NTSTATUS result;
1652 } out;
1657 struct lsa_CREDRWRITEDOMAINCREDENTIALS {
1658 struct {
1659 NTSTATUS result;
1660 } out;
1665 struct lsa_CREDRREADDOMAINCREDENTIALS {
1666 struct {
1667 NTSTATUS result;
1668 } out;
1673 struct lsa_CREDRDELETE {
1674 struct {
1675 NTSTATUS result;
1676 } out;
1681 struct lsa_CREDRGETTARGETINFO {
1682 struct {
1683 NTSTATUS result;
1684 } out;
1689 struct lsa_CREDRPROFILELOADED {
1690 struct {
1691 NTSTATUS result;
1692 } out;
1697 struct lsa_LookupNames3 {
1698 struct {
1699 struct policy_handle *handle;/* [ref] */
1700 uint32_t num_names;/* [range(0,1000)] */
1701 struct lsa_String *names;/* [size_is(num_names)] */
1702 enum lsa_LookupNamesLevel level;
1703 enum lsa_LookupOptions lookup_options;
1704 enum lsa_ClientRevision client_revision;
1705 struct lsa_TransSidArray3 *sids;/* [ref] */
1706 uint32_t *count;/* [ref] */
1707 } in;
1709 struct {
1710 struct lsa_RefDomainList **domains;/* [ref] */
1711 struct lsa_TransSidArray3 *sids;/* [ref] */
1712 uint32_t *count;/* [ref] */
1713 NTSTATUS result;
1714 } out;
1719 struct lsa_CREDRGETSESSIONTYPES {
1720 struct {
1721 NTSTATUS result;
1722 } out;
1727 struct lsa_LSARREGISTERAUDITEVENT {
1728 struct {
1729 NTSTATUS result;
1730 } out;
1735 struct lsa_LSARGENAUDITEVENT {
1736 struct {
1737 NTSTATUS result;
1738 } out;
1743 struct lsa_LSARUNREGISTERAUDITEVENT {
1744 struct {
1745 NTSTATUS result;
1746 } out;
1751 struct lsa_lsaRQueryForestTrustInformation {
1752 struct {
1753 struct policy_handle *handle;/* [ref] */
1754 struct lsa_String *trusted_domain_name;/* [ref] */
1755 uint16_t unknown;
1756 } in;
1758 struct {
1759 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1760 NTSTATUS result;
1761 } out;
1766 struct lsa_LSARSETFORESTTRUSTINFORMATION {
1767 struct {
1768 NTSTATUS result;
1769 } out;
1774 struct lsa_CREDRRENAME {
1775 struct {
1776 NTSTATUS result;
1777 } out;
1782 struct lsa_LookupSids3 {
1783 struct {
1784 struct lsa_SidArray *sids;/* [ref] */
1785 enum lsa_LookupNamesLevel level;
1786 enum lsa_LookupOptions lookup_options;
1787 enum lsa_ClientRevision client_revision;
1788 struct lsa_TransNameArray2 *names;/* [ref] */
1789 uint32_t *count;/* [ref] */
1790 } in;
1792 struct {
1793 struct lsa_RefDomainList **domains;/* [ref] */
1794 struct lsa_TransNameArray2 *names;/* [ref] */
1795 uint32_t *count;/* [ref] */
1796 NTSTATUS result;
1797 } out;
1802 struct lsa_LookupNames4 {
1803 struct {
1804 uint32_t num_names;/* [range(0,1000)] */
1805 struct lsa_String *names;/* [size_is(num_names)] */
1806 enum lsa_LookupNamesLevel level;
1807 enum lsa_LookupOptions lookup_options;
1808 enum lsa_ClientRevision client_revision;
1809 struct lsa_TransSidArray3 *sids;/* [ref] */
1810 uint32_t *count;/* [ref] */
1811 } in;
1813 struct {
1814 struct lsa_RefDomainList **domains;/* [ref] */
1815 struct lsa_TransSidArray3 *sids;/* [ref] */
1816 uint32_t *count;/* [ref] */
1817 NTSTATUS result;
1818 } out;
1823 struct lsa_LSAROPENPOLICYSCE {
1824 struct {
1825 NTSTATUS result;
1826 } out;
1831 struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE {
1832 struct {
1833 NTSTATUS result;
1834 } out;
1839 struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE {
1840 struct {
1841 NTSTATUS result;
1842 } out;
1847 struct lsa_LSARADTREPORTSECURITYEVENT {
1848 struct {
1849 NTSTATUS result;
1850 } out;
1854 #endif /* _HEADER_lsarpc */