s4:lsa Functions to set Domain Trust Information
[Samba/ekacnet.git] / librpc / gen_ndr / lsa.h
blobf48d875c52bbfe94f032d95f7c3314cae23398bc
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_SECRET_ALL_ACCESS ( (LSA_SECRET_QUERY_VALUE|LSA_SECRET_SET_VALUE|SEC_STD_DELETE|STANDARD_RIGHTS_READ_ACCESS|SEC_STD_WRITE_DAC|SEC_STD_WRITE_OWNER) )
21 #define LSA_SECRET_READ ( (LSA_SECRET_QUERY_VALUE|STANDARD_RIGHTS_READ_ACCESS) )
22 #define LSA_SECRET_WRITE ( (LSA_SECRET_SET_VALUE|STANDARD_RIGHTS_READ_ACCESS) )
23 #define LSA_SECRET_EXECUTE ( (STANDARD_RIGHTS_READ_ACCESS) )
24 #define LSA_TRUSTED_DOMAIN_ALL_ACCESS ( (LSA_TRUSTED_QUERY_DOMAIN_NAME|LSA_TRUSTED_QUERY_CONTROLLERS|LSA_TRUSTED_SET_CONTROLLERS|LSA_TRUSTED_QUERY_POSIX|LSA_TRUSTED_SET_POSIX|LSA_TRUSTED_SET_AUTH|LSA_TRUSTED_QUERY_AUTH|SEC_STD_DELETE|STANDARD_RIGHTS_READ_ACCESS|SEC_STD_WRITE_DAC|SEC_STD_WRITE_OWNER) )
25 #define LSA_TRUSTED_DOMAIN_READ ( (LSA_TRUSTED_QUERY_DOMAIN_NAME|STANDARD_RIGHTS_READ_ACCESS) )
26 #define LSA_TRUSTED_DOMAIN_WRITE ( (LSA_TRUSTED_SET_CONTROLLERS|LSA_TRUSTED_SET_POSIX|LSA_TRUSTED_SET_AUTH|STANDARD_RIGHTS_READ_ACCESS) )
27 #define LSA_TRUSTED_DOMAIN_EXECUTE ( (LSA_TRUSTED_QUERY_DOMAIN_NAME|LSA_TRUSTED_QUERY_POSIX|STANDARD_RIGHTS_READ_ACCESS) )
28 #define LSA_ENUM_TRUST_DOMAIN_MULTIPLIER ( 60 )
29 #define LSA_REF_DOMAIN_LIST_MULTIPLIER ( 32 )
30 #define LSA_ENUM_TRUST_DOMAIN_EX_MULTIPLIER ( 82 )
31 #define LSA_CLIENT_REVISION_NO_DNS ( 0x00000001 )
32 #define LSA_CLIENT_REVISION_DNS ( 0x00000002 )
33 #define LSA_LOOKUP_OPTIONS_NO_ISOLATED ( 0x80000000 )
34 struct lsa_String {
35 uint16_t length;/* [value(2*strlen_m(string))] */
36 uint16_t size;/* [value(2*strlen_m(string))] */
37 const char *string;/* [unique,charset(UTF16),length_is(length/2),size_is(size/2)] */
38 }/* [public] */;
40 struct lsa_StringLarge {
41 uint16_t length;/* [value(2*strlen_m(string))] */
42 uint16_t size;/* [value(2*strlen_m_term(string))] */
43 const char *string;/* [unique,charset(UTF16),length_is(length/2),size_is(size/2)] */
44 }/* [public] */;
46 struct lsa_Strings {
47 uint32_t count;
48 struct lsa_String *names;/* [unique,size_is(count)] */
49 }/* [public] */;
51 struct lsa_AsciiString {
52 uint16_t length;/* [value(strlen_m(string))] */
53 uint16_t size;/* [value(strlen_m(string))] */
54 const char *string;/* [unique,charset(DOS),length_is(length),size_is(size)] */
55 }/* [public] */;
57 struct lsa_AsciiStringLarge {
58 uint16_t length;/* [value(strlen_m(string))] */
59 uint16_t size;/* [value(strlen_m_term(string))] */
60 const char *string;/* [unique,charset(DOS),length_is(length),size_is(size)] */
61 }/* [public] */;
63 struct lsa_BinaryString {
64 uint16_t length;
65 uint16_t size;
66 uint16_t *array;/* [unique,length_is(length/2),size_is(size/2)] */
67 }/* [public] */;
69 struct lsa_LUID {
70 uint32_t low;
71 uint32_t high;
74 struct lsa_PrivEntry {
75 struct lsa_StringLarge name;
76 struct lsa_LUID luid;
79 struct lsa_PrivArray {
80 uint32_t count;
81 struct lsa_PrivEntry *privs;/* [unique,size_is(count)] */
84 struct lsa_QosInfo {
85 uint32_t len;
86 uint16_t impersonation_level;
87 uint8_t context_mode;
88 uint8_t effective_only;
91 struct lsa_ObjectAttribute {
92 uint32_t len;
93 uint8_t *root_dir;/* [unique] */
94 const char *object_name;/* [unique,charset(UTF16)] */
95 uint32_t attributes;
96 struct security_descriptor *sec_desc;/* [unique] */
97 struct lsa_QosInfo *sec_qos;/* [unique] */
100 /* bitmap lsa_PolicyAccessMask */
101 #define LSA_POLICY_VIEW_LOCAL_INFORMATION ( 0x00000001 )
102 #define LSA_POLICY_VIEW_AUDIT_INFORMATION ( 0x00000002 )
103 #define LSA_POLICY_GET_PRIVATE_INFORMATION ( 0x00000004 )
104 #define LSA_POLICY_TRUST_ADMIN ( 0x00000008 )
105 #define LSA_POLICY_CREATE_ACCOUNT ( 0x00000010 )
106 #define LSA_POLICY_CREATE_SECRET ( 0x00000020 )
107 #define LSA_POLICY_CREATE_PRIVILEGE ( 0x00000040 )
108 #define LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS ( 0x00000080 )
109 #define LSA_POLICY_SET_AUDIT_REQUIREMENTS ( 0x00000100 )
110 #define LSA_POLICY_AUDIT_LOG_ADMIN ( 0x00000200 )
111 #define LSA_POLICY_SERVER_ADMIN ( 0x00000400 )
112 #define LSA_POLICY_LOOKUP_NAMES ( 0x00000800 )
113 #define LSA_POLICY_NOTIFICATION ( 0x00001000 )
115 /* bitmap lsa_AccountAccessMask */
116 #define LSA_ACCOUNT_VIEW ( 0x00000001 )
117 #define LSA_ACCOUNT_ADJUST_PRIVILEGES ( 0x00000002 )
118 #define LSA_ACCOUNT_ADJUST_QUOTAS ( 0x00000004 )
119 #define LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS ( 0x00000008 )
121 /* bitmap lsa_SecretAccessMask */
122 #define LSA_SECRET_SET_VALUE ( 0x00000001 )
123 #define LSA_SECRET_QUERY_VALUE ( 0x00000002 )
125 /* bitmap lsa_TrustedAccessMask */
126 #define LSA_TRUSTED_QUERY_DOMAIN_NAME ( 0x00000001 )
127 #define LSA_TRUSTED_QUERY_CONTROLLERS ( 0x00000002 )
128 #define LSA_TRUSTED_SET_CONTROLLERS ( 0x00000004 )
129 #define LSA_TRUSTED_QUERY_POSIX ( 0x00000008 )
130 #define LSA_TRUSTED_SET_POSIX ( 0x00000010 )
131 #define LSA_TRUSTED_SET_AUTH ( 0x00000020 )
132 #define LSA_TRUSTED_QUERY_AUTH ( 0x00000040 )
134 struct lsa_AuditLogInfo {
135 uint32_t percent_full;
136 uint32_t maximum_log_size;
137 uint64_t retention_time;
138 uint8_t shutdown_in_progress;
139 uint64_t time_to_shutdown;
140 uint32_t next_audit_record;
143 enum lsa_PolicyAuditPolicy
144 #ifndef USE_UINT_ENUMS
146 LSA_AUDIT_POLICY_NONE=(int)(0),
147 LSA_AUDIT_POLICY_SUCCESS=(int)(1),
148 LSA_AUDIT_POLICY_FAILURE=(int)(2),
149 LSA_AUDIT_POLICY_ALL=(int)((LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE)),
150 LSA_AUDIT_POLICY_CLEAR=(int)(4)
152 #else
153 { __donnot_use_enum_lsa_PolicyAuditPolicy=0x7FFFFFFF}
154 #define LSA_AUDIT_POLICY_NONE ( 0 )
155 #define LSA_AUDIT_POLICY_SUCCESS ( 1 )
156 #define LSA_AUDIT_POLICY_FAILURE ( 2 )
157 #define LSA_AUDIT_POLICY_ALL ( (LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE) )
158 #define LSA_AUDIT_POLICY_CLEAR ( 4 )
159 #endif
162 enum lsa_PolicyAuditEventType
163 #ifndef USE_UINT_ENUMS
165 LSA_AUDIT_CATEGORY_SYSTEM=(int)(0),
166 LSA_AUDIT_CATEGORY_LOGON=(int)(1),
167 LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS=(int)(2),
168 LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS=(int)(3),
169 LSA_AUDIT_CATEGORY_PROCCESS_TRACKING=(int)(4),
170 LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES=(int)(5),
171 LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT=(int)(6),
172 LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS=(int)(7),
173 LSA_AUDIT_CATEGORY_ACCOUNT_LOGON=(int)(8)
175 #else
176 { __donnot_use_enum_lsa_PolicyAuditEventType=0x7FFFFFFF}
177 #define LSA_AUDIT_CATEGORY_SYSTEM ( 0 )
178 #define LSA_AUDIT_CATEGORY_LOGON ( 1 )
179 #define LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS ( 2 )
180 #define LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS ( 3 )
181 #define LSA_AUDIT_CATEGORY_PROCCESS_TRACKING ( 4 )
182 #define LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES ( 5 )
183 #define LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT ( 6 )
184 #define LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS ( 7 )
185 #define LSA_AUDIT_CATEGORY_ACCOUNT_LOGON ( 8 )
186 #endif
189 struct lsa_AuditEventsInfo {
190 uint32_t auditing_mode;
191 enum lsa_PolicyAuditPolicy *settings;/* [unique,size_is(count)] */
192 uint32_t count;
195 struct lsa_DomainInfo {
196 struct lsa_StringLarge name;
197 struct dom_sid2 *sid;/* [unique] */
200 struct lsa_PDAccountInfo {
201 struct lsa_String name;
204 enum lsa_Role
205 #ifndef USE_UINT_ENUMS
207 LSA_ROLE_BACKUP=(int)(2),
208 LSA_ROLE_PRIMARY=(int)(3)
210 #else
211 { __donnot_use_enum_lsa_Role=0x7FFFFFFF}
212 #define LSA_ROLE_BACKUP ( 2 )
213 #define LSA_ROLE_PRIMARY ( 3 )
214 #endif
217 struct lsa_ServerRole {
218 enum lsa_Role role;
221 struct lsa_ReplicaSourceInfo {
222 struct lsa_String source;
223 struct lsa_String account;
226 struct lsa_DefaultQuotaInfo {
227 uint32_t paged_pool;
228 uint32_t non_paged_pool;
229 uint32_t min_wss;
230 uint32_t max_wss;
231 uint32_t pagefile;
232 uint64_t unknown;
235 struct lsa_ModificationInfo {
236 uint64_t modified_id;
237 NTTIME db_create_time;
240 struct lsa_AuditFullSetInfo {
241 uint8_t shutdown_on_full;
244 struct lsa_AuditFullQueryInfo {
245 uint8_t shutdown_on_full;
246 uint8_t log_is_full;
249 struct lsa_DnsDomainInfo {
250 struct lsa_StringLarge name;
251 struct lsa_StringLarge dns_domain;
252 struct lsa_StringLarge dns_forest;
253 struct GUID domain_guid;
254 struct dom_sid2 *sid;/* [unique] */
257 enum lsa_PolicyInfo
258 #ifndef USE_UINT_ENUMS
260 LSA_POLICY_INFO_AUDIT_LOG=(int)(1),
261 LSA_POLICY_INFO_AUDIT_EVENTS=(int)(2),
262 LSA_POLICY_INFO_DOMAIN=(int)(3),
263 LSA_POLICY_INFO_PD=(int)(4),
264 LSA_POLICY_INFO_ACCOUNT_DOMAIN=(int)(5),
265 LSA_POLICY_INFO_ROLE=(int)(6),
266 LSA_POLICY_INFO_REPLICA=(int)(7),
267 LSA_POLICY_INFO_QUOTA=(int)(8),
268 LSA_POLICY_INFO_MOD=(int)(9),
269 LSA_POLICY_INFO_AUDIT_FULL_SET=(int)(10),
270 LSA_POLICY_INFO_AUDIT_FULL_QUERY=(int)(11),
271 LSA_POLICY_INFO_DNS=(int)(12),
272 LSA_POLICY_INFO_DNS_INT=(int)(13),
273 LSA_POLICY_INFO_L_ACCOUNT_DOMAIN=(int)(14)
275 #else
276 { __donnot_use_enum_lsa_PolicyInfo=0x7FFFFFFF}
277 #define LSA_POLICY_INFO_AUDIT_LOG ( 1 )
278 #define LSA_POLICY_INFO_AUDIT_EVENTS ( 2 )
279 #define LSA_POLICY_INFO_DOMAIN ( 3 )
280 #define LSA_POLICY_INFO_PD ( 4 )
281 #define LSA_POLICY_INFO_ACCOUNT_DOMAIN ( 5 )
282 #define LSA_POLICY_INFO_ROLE ( 6 )
283 #define LSA_POLICY_INFO_REPLICA ( 7 )
284 #define LSA_POLICY_INFO_QUOTA ( 8 )
285 #define LSA_POLICY_INFO_MOD ( 9 )
286 #define LSA_POLICY_INFO_AUDIT_FULL_SET ( 10 )
287 #define LSA_POLICY_INFO_AUDIT_FULL_QUERY ( 11 )
288 #define LSA_POLICY_INFO_DNS ( 12 )
289 #define LSA_POLICY_INFO_DNS_INT ( 13 )
290 #define LSA_POLICY_INFO_L_ACCOUNT_DOMAIN ( 14 )
291 #endif
294 union lsa_PolicyInformation {
295 struct lsa_AuditLogInfo audit_log;/* [case(LSA_POLICY_INFO_AUDIT_LOG)] */
296 struct lsa_AuditEventsInfo audit_events;/* [case(LSA_POLICY_INFO_AUDIT_EVENTS)] */
297 struct lsa_DomainInfo domain;/* [case(LSA_POLICY_INFO_DOMAIN)] */
298 struct lsa_PDAccountInfo pd;/* [case(LSA_POLICY_INFO_PD)] */
299 struct lsa_DomainInfo account_domain;/* [case(LSA_POLICY_INFO_ACCOUNT_DOMAIN)] */
300 struct lsa_ServerRole role;/* [case(LSA_POLICY_INFO_ROLE)] */
301 struct lsa_ReplicaSourceInfo replica;/* [case(LSA_POLICY_INFO_REPLICA)] */
302 struct lsa_DefaultQuotaInfo quota;/* [case(LSA_POLICY_INFO_QUOTA)] */
303 struct lsa_ModificationInfo mod;/* [case(LSA_POLICY_INFO_MOD)] */
304 struct lsa_AuditFullSetInfo auditfullset;/* [case(LSA_POLICY_INFO_AUDIT_FULL_SET)] */
305 struct lsa_AuditFullQueryInfo auditfullquery;/* [case(LSA_POLICY_INFO_AUDIT_FULL_QUERY)] */
306 struct lsa_DnsDomainInfo dns;/* [case(LSA_POLICY_INFO_DNS)] */
307 struct lsa_DomainInfo l_account_domain;/* [case(LSA_POLICY_INFO_L_ACCOUNT_DOMAIN)] */
308 }/* [switch_type(uint16)] */;
310 struct lsa_SidPtr {
311 struct dom_sid2 *sid;/* [unique] */
314 struct lsa_SidArray {
315 uint32_t num_sids;/* [range(0,20480)] */
316 struct lsa_SidPtr *sids;/* [unique,size_is(num_sids)] */
317 }/* [public] */;
319 struct lsa_DomainList {
320 uint32_t count;
321 struct lsa_DomainInfo *domains;/* [unique,size_is(count)] */
324 enum lsa_SidType
325 #ifndef USE_UINT_ENUMS
327 SID_NAME_USE_NONE=(int)(0),
328 SID_NAME_USER=(int)(1),
329 SID_NAME_DOM_GRP=(int)(2),
330 SID_NAME_DOMAIN=(int)(3),
331 SID_NAME_ALIAS=(int)(4),
332 SID_NAME_WKN_GRP=(int)(5),
333 SID_NAME_DELETED=(int)(6),
334 SID_NAME_INVALID=(int)(7),
335 SID_NAME_UNKNOWN=(int)(8),
336 SID_NAME_COMPUTER=(int)(9)
338 #else
339 { __donnot_use_enum_lsa_SidType=0x7FFFFFFF}
340 #define SID_NAME_USE_NONE ( 0 )
341 #define SID_NAME_USER ( 1 )
342 #define SID_NAME_DOM_GRP ( 2 )
343 #define SID_NAME_DOMAIN ( 3 )
344 #define SID_NAME_ALIAS ( 4 )
345 #define SID_NAME_WKN_GRP ( 5 )
346 #define SID_NAME_DELETED ( 6 )
347 #define SID_NAME_INVALID ( 7 )
348 #define SID_NAME_UNKNOWN ( 8 )
349 #define SID_NAME_COMPUTER ( 9 )
350 #endif
353 struct lsa_TranslatedSid {
354 enum lsa_SidType sid_type;
355 uint32_t rid;
356 uint32_t sid_index;
359 struct lsa_TransSidArray {
360 uint32_t count;/* [range(0,1000)] */
361 struct lsa_TranslatedSid *sids;/* [unique,size_is(count)] */
364 struct lsa_RefDomainList {
365 uint32_t count;/* [range(0,1000)] */
366 struct lsa_DomainInfo *domains;/* [unique,size_is(count)] */
367 uint32_t max_size;
370 enum lsa_LookupNamesLevel
371 #ifndef USE_UINT_ENUMS
373 LSA_LOOKUP_NAMES_ALL=(int)(1),
374 LSA_LOOKUP_NAMES_DOMAINS_ONLY=(int)(2),
375 LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY=(int)(3),
376 LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY=(int)(4),
377 LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY=(int)(5),
378 LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2=(int)(6),
379 LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC=(int)(7)
381 #else
382 { __donnot_use_enum_lsa_LookupNamesLevel=0x7FFFFFFF}
383 #define LSA_LOOKUP_NAMES_ALL ( 1 )
384 #define LSA_LOOKUP_NAMES_DOMAINS_ONLY ( 2 )
385 #define LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY ( 3 )
386 #define LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY ( 4 )
387 #define LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY ( 5 )
388 #define LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2 ( 6 )
389 #define LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC ( 7 )
390 #endif
393 struct lsa_TranslatedName {
394 enum lsa_SidType sid_type;
395 struct lsa_String name;
396 uint32_t sid_index;
399 struct lsa_TransNameArray {
400 uint32_t count;/* [range(0,20480)] */
401 struct lsa_TranslatedName *names;/* [unique,size_is(count)] */
404 struct lsa_LUIDAttribute {
405 struct lsa_LUID luid;
406 uint32_t attribute;
409 struct lsa_PrivilegeSet {
410 uint32_t count;/* [range(0,1000)] */
411 uint32_t unknown;
412 struct lsa_LUIDAttribute *set;/* [size_is(count)] */
415 /* bitmap lsa_SystemAccessModeFlags */
416 #define LSA_POLICY_MODE_INTERACTIVE ( 0x00000001 )
417 #define LSA_POLICY_MODE_NETWORK ( 0x00000002 )
418 #define LSA_POLICY_MODE_BATCH ( 0x00000004 )
419 #define LSA_POLICY_MODE_SERVICE ( 0x00000010 )
420 #define LSA_POLICY_MODE_PROXY ( 0x00000020 )
421 #define LSA_POLICY_MODE_DENY_INTERACTIVE ( 0x00000040 )
422 #define LSA_POLICY_MODE_DENY_NETWORK ( 0x00000080 )
423 #define LSA_POLICY_MODE_DENY_BATCH ( 0x00000100 )
424 #define LSA_POLICY_MODE_DENY_SERVICE ( 0x00000200 )
425 #define LSA_POLICY_MODE_REMOTE_INTERACTIVE ( 0x00000400 )
426 #define LSA_POLICY_MODE_DENY_REMOTE_INTERACTIVE ( 0x00000800 )
427 #define LSA_POLICY_MODE_ALL ( 0x00000FF7 )
428 #define LSA_POLICY_MODE_ALL_NT4 ( 0x00000037 )
430 struct lsa_DATA_BUF {
431 uint32_t length;
432 uint32_t size;
433 uint8_t *data;/* [unique,length_is(length),size_is(size)] */
434 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
436 struct lsa_DATA_BUF2 {
437 uint32_t size;/* [range(0,65536)] */
438 uint8_t *data;/* [unique,size_is(size)] */
439 }/* [flag(LIBNDR_PRINT_ARRAY_HEX)] */;
441 enum lsa_TrustDomInfoEnum
442 #ifndef USE_UINT_ENUMS
444 LSA_TRUSTED_DOMAIN_INFO_NAME=(int)(1),
445 LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS=(int)(2),
446 LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET=(int)(3),
447 LSA_TRUSTED_DOMAIN_INFO_PASSWORD=(int)(4),
448 LSA_TRUSTED_DOMAIN_INFO_BASIC=(int)(5),
449 LSA_TRUSTED_DOMAIN_INFO_INFO_EX=(int)(6),
450 LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO=(int)(7),
451 LSA_TRUSTED_DOMAIN_INFO_FULL_INFO=(int)(8),
452 LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL=(int)(9),
453 LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL=(int)(10),
454 LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL=(int)(11),
455 LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL=(int)(12),
456 LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES=(int)(13)
458 #else
459 { __donnot_use_enum_lsa_TrustDomInfoEnum=0x7FFFFFFF}
460 #define LSA_TRUSTED_DOMAIN_INFO_NAME ( 1 )
461 #define LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS ( 2 )
462 #define LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET ( 3 )
463 #define LSA_TRUSTED_DOMAIN_INFO_PASSWORD ( 4 )
464 #define LSA_TRUSTED_DOMAIN_INFO_BASIC ( 5 )
465 #define LSA_TRUSTED_DOMAIN_INFO_INFO_EX ( 6 )
466 #define LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO ( 7 )
467 #define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO ( 8 )
468 #define LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL ( 9 )
469 #define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL ( 10 )
470 #define LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL ( 11 )
471 #define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL ( 12 )
472 #define LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES ( 13 )
473 #endif
476 /* bitmap lsa_TrustDirection */
477 #define LSA_TRUST_DIRECTION_INBOUND ( 0x00000001 )
478 #define LSA_TRUST_DIRECTION_OUTBOUND ( 0x00000002 )
480 enum lsa_TrustType
481 #ifndef USE_UINT_ENUMS
483 LSA_TRUST_TYPE_DOWNLEVEL=(int)(0x00000001),
484 LSA_TRUST_TYPE_UPLEVEL=(int)(0x00000002),
485 LSA_TRUST_TYPE_MIT=(int)(0x00000003)
487 #else
488 { __donnot_use_enum_lsa_TrustType=0x7FFFFFFF}
489 #define LSA_TRUST_TYPE_DOWNLEVEL ( 0x00000001 )
490 #define LSA_TRUST_TYPE_UPLEVEL ( 0x00000002 )
491 #define LSA_TRUST_TYPE_MIT ( 0x00000003 )
492 #endif
495 /* bitmap lsa_TrustAttributes */
496 #define LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE ( 0x00000001 )
497 #define LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY ( 0x00000002 )
498 #define LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN ( 0x00000004 )
499 #define LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE ( 0x00000008 )
500 #define LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION ( 0x00000010 )
501 #define LSA_TRUST_ATTRIBUTE_WITHIN_FOREST ( 0x00000020 )
502 #define LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL ( 0x00000040 )
503 #define LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION ( 0x00000080 )
505 struct lsa_TrustDomainInfoName {
506 struct lsa_StringLarge netbios_name;
509 struct lsa_TrustDomainInfoControllers {
510 uint32_t entries;
511 struct lsa_StringLarge *netbios_names;/* [unique,size_is(entries)] */
514 struct lsa_TrustDomainInfoPosixOffset {
515 uint32_t posix_offset;
518 struct lsa_TrustDomainInfoPassword {
519 struct lsa_DATA_BUF *password;/* [unique] */
520 struct lsa_DATA_BUF *old_password;/* [unique] */
523 struct lsa_TrustDomainInfoBasic {
524 struct lsa_String netbios_name;
525 struct dom_sid2 *sid;/* [unique] */
528 struct lsa_TrustDomainInfoInfoEx {
529 struct lsa_StringLarge domain_name;
530 struct lsa_StringLarge netbios_name;
531 struct dom_sid2 *sid;/* [unique] */
532 uint32_t trust_direction;
533 enum lsa_TrustType trust_type;
534 uint32_t trust_attributes;
537 enum lsa_TrustAuthType
538 #ifndef USE_UINT_ENUMS
540 TRUST_AUTH_TYPE_NONE=(int)(0),
541 TRUST_AUTH_TYPE_NT4OWF=(int)(1),
542 TRUST_AUTH_TYPE_CLEAR=(int)(2),
543 TRUST_AUTH_TYPE_VERSION=(int)(3)
545 #else
546 { __donnot_use_enum_lsa_TrustAuthType=0x7FFFFFFF}
547 #define TRUST_AUTH_TYPE_NONE ( 0 )
548 #define TRUST_AUTH_TYPE_NT4OWF ( 1 )
549 #define TRUST_AUTH_TYPE_CLEAR ( 2 )
550 #define TRUST_AUTH_TYPE_VERSION ( 3 )
551 #endif
554 struct lsa_TrustDomainInfoBuffer {
555 NTTIME last_update_time;
556 enum lsa_TrustAuthType AuthType;
557 struct lsa_DATA_BUF2 data;
560 struct lsa_TrustDomainInfoAuthInfo {
561 uint32_t incoming_count;
562 struct lsa_TrustDomainInfoBuffer *incoming_current_auth_info;/* [unique] */
563 struct lsa_TrustDomainInfoBuffer *incoming_previous_auth_info;/* [unique] */
564 uint32_t outgoing_count;
565 struct lsa_TrustDomainInfoBuffer *outgoing_current_auth_info;/* [unique] */
566 struct lsa_TrustDomainInfoBuffer *outgoing_previous_auth_info;/* [unique] */
567 }/* [public] */;
569 struct lsa_TrustDomainInfoFullInfo {
570 struct lsa_TrustDomainInfoInfoEx info_ex;
571 struct lsa_TrustDomainInfoPosixOffset posix_offset;
572 struct lsa_TrustDomainInfoAuthInfo auth_info;
575 struct lsa_TrustDomainInfoAuthInfoInternal {
576 struct lsa_DATA_BUF2 auth_blob;
579 struct lsa_TrustDomainInfoFullInfoInternal {
580 struct lsa_TrustDomainInfoInfoEx info_ex;
581 struct lsa_TrustDomainInfoPosixOffset posix_offset;
582 struct lsa_TrustDomainInfoAuthInfoInternal auth_info;
585 struct lsa_TrustDomainInfoInfoEx2Internal {
586 struct lsa_TrustDomainInfoInfoEx info_ex;
587 uint32_t forest_trust_length;
588 uint8_t *forest_trust_data;/* [unique,size_is(forest_trust_length)] */
591 struct lsa_TrustDomainInfoFullInfo2Internal {
592 struct lsa_TrustDomainInfoInfoEx2Internal info;
593 struct lsa_TrustDomainInfoPosixOffset posix_offset;
594 struct lsa_TrustDomainInfoAuthInfo auth_info;
597 struct lsa_TrustDomainInfoSupportedEncTypes {
598 uint32_t enc_types;
601 union lsa_TrustedDomainInfo {
602 struct lsa_TrustDomainInfoName name;/* [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] */
603 struct lsa_TrustDomainInfoControllers controllers;/* [case(LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS)] */
604 struct lsa_TrustDomainInfoPosixOffset posix_offset;/* [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] */
605 struct lsa_TrustDomainInfoPassword password;/* [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] */
606 struct lsa_TrustDomainInfoBasic info_basic;/* [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)] */
607 struct lsa_TrustDomainInfoInfoEx info_ex;/* [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)] */
608 struct lsa_TrustDomainInfoAuthInfo auth_info;/* [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)] */
609 struct lsa_TrustDomainInfoFullInfo full_info;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)] */
610 struct lsa_TrustDomainInfoAuthInfoInternal auth_info_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL)] */
611 struct lsa_TrustDomainInfoFullInfoInternal full_info_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL)] */
612 struct lsa_TrustDomainInfoInfoEx2Internal info_ex2_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL)] */
613 struct lsa_TrustDomainInfoFullInfo2Internal full_info2_internal;/* [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL)] */
614 struct lsa_TrustDomainInfoSupportedEncTypes enc_types;/* [case(LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES)] */
615 }/* [switch_type(lsa_TrustDomInfoEnum)] */;
617 struct lsa_DATA_BUF_PTR {
618 struct lsa_DATA_BUF *buf;/* [unique] */
621 struct lsa_RightAttribute {
622 const char *name;/* [unique,charset(UTF16)] */
625 struct lsa_RightSet {
626 uint32_t count;/* [range(0,256)] */
627 struct lsa_StringLarge *names;/* [unique,size_is(count)] */
630 struct lsa_DomainListEx {
631 uint32_t count;
632 struct lsa_TrustDomainInfoInfoEx *domains;/* [unique,size_is(count)] */
635 struct lsa_DomainInfoKerberos {
636 uint32_t enforce_restrictions;
637 uint64_t service_tkt_lifetime;
638 uint64_t user_tkt_lifetime;
639 uint64_t user_tkt_renewaltime;
640 uint64_t clock_skew;
641 uint64_t unknown6;
644 struct lsa_DomainInfoEfs {
645 uint32_t blob_size;
646 uint8_t *efs_blob;/* [unique,size_is(blob_size)] */
649 enum lsa_DomainInfoEnum
650 #ifndef USE_UINT_ENUMS
652 LSA_DOMAIN_INFO_POLICY_EFS=(int)(2),
653 LSA_DOMAIN_INFO_POLICY_KERBEROS=(int)(3)
655 #else
656 { __donnot_use_enum_lsa_DomainInfoEnum=0x7FFFFFFF}
657 #define LSA_DOMAIN_INFO_POLICY_EFS ( 2 )
658 #define LSA_DOMAIN_INFO_POLICY_KERBEROS ( 3 )
659 #endif
662 union lsa_DomainInformationPolicy {
663 struct lsa_DomainInfoEfs efs_info;/* [case(LSA_DOMAIN_INFO_POLICY_EFS)] */
664 struct lsa_DomainInfoKerberos kerberos_info;/* [case(LSA_DOMAIN_INFO_POLICY_KERBEROS)] */
665 }/* [switch_type(uint16)] */;
667 struct lsa_TranslatedName2 {
668 enum lsa_SidType sid_type;
669 struct lsa_String name;
670 uint32_t sid_index;
671 uint32_t unknown;
674 struct lsa_TransNameArray2 {
675 uint32_t count;/* [range(0,1000)] */
676 struct lsa_TranslatedName2 *names;/* [unique,size_is(count)] */
679 enum lsa_LookupOptions
680 #ifndef USE_UINT_ENUMS
682 LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES=(int)(0x00000000),
683 LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES_LOCAL=(int)(0x80000000)
685 #else
686 { __donnot_use_enum_lsa_LookupOptions=0x7FFFFFFF}
687 #define LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES ( 0x00000000 )
688 #define LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES_LOCAL ( 0x80000000 )
689 #endif
692 enum lsa_ClientRevision
693 #ifndef USE_UINT_ENUMS
695 LSA_CLIENT_REVISION_1=(int)(0x00000001),
696 LSA_CLIENT_REVISION_2=(int)(0x00000002)
698 #else
699 { __donnot_use_enum_lsa_ClientRevision=0x7FFFFFFF}
700 #define LSA_CLIENT_REVISION_1 ( 0x00000001 )
701 #define LSA_CLIENT_REVISION_2 ( 0x00000002 )
702 #endif
705 struct lsa_TranslatedSid2 {
706 enum lsa_SidType sid_type;
707 uint32_t rid;
708 uint32_t sid_index;
709 uint32_t unknown;
712 struct lsa_TransSidArray2 {
713 uint32_t count;/* [range(0,1000)] */
714 struct lsa_TranslatedSid2 *sids;/* [unique,size_is(count)] */
717 struct lsa_TranslatedSid3 {
718 enum lsa_SidType sid_type;
719 struct dom_sid2 *sid;/* [unique] */
720 uint32_t sid_index;
721 uint32_t flags;
724 struct lsa_TransSidArray3 {
725 uint32_t count;/* [range(0,1000)] */
726 struct lsa_TranslatedSid3 *sids;/* [unique,size_is(count)] */
729 struct lsa_ForestTrustBinaryData {
730 uint32_t length;/* [range(0,131072)] */
731 uint8_t *data;/* [unique,size_is(length)] */
734 struct lsa_ForestTrustDomainInfo {
735 struct dom_sid2 *domain_sid;/* [unique] */
736 struct lsa_StringLarge dns_domain_name;
737 struct lsa_StringLarge netbios_domain_name;
740 union lsa_ForestTrustData {
741 struct lsa_StringLarge top_level_name;/* [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME)] */
742 struct lsa_StringLarge top_level_name_ex;/* [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX)] */
743 struct lsa_ForestTrustDomainInfo domain_info;/* [case(LSA_FOREST_TRUST_DOMAIN_INFO)] */
744 struct lsa_ForestTrustBinaryData data;/* [default] */
745 }/* [switch_type(uint32)] */;
747 enum lsa_ForestTrustRecordType
748 #ifndef USE_UINT_ENUMS
750 LSA_FOREST_TRUST_TOP_LEVEL_NAME=(int)(0),
751 LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX=(int)(1),
752 LSA_FOREST_TRUST_DOMAIN_INFO=(int)(2),
753 LSA_FOREST_TRUST_RECORD_TYPE_LAST=(int)(3)
755 #else
756 { __donnot_use_enum_lsa_ForestTrustRecordType=0x7FFFFFFF}
757 #define LSA_FOREST_TRUST_TOP_LEVEL_NAME ( 0 )
758 #define LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX ( 1 )
759 #define LSA_FOREST_TRUST_DOMAIN_INFO ( 2 )
760 #define LSA_FOREST_TRUST_RECORD_TYPE_LAST ( 3 )
761 #endif
764 struct lsa_ForestTrustRecord {
765 uint32_t flags;
766 enum lsa_ForestTrustRecordType type;
767 uint64_t time;
768 union lsa_ForestTrustData forest_trust_data;/* [switch_is(type)] */
771 struct lsa_ForestTrustInformation {
772 uint32_t count;/* [range(0,4000)] */
773 struct lsa_ForestTrustRecord **entries;/* [unique,size_is(count)] */
774 }/* [public] */;
776 enum lsa_ForestTrustCollisionRecordType
777 #ifndef USE_UINT_ENUMS
779 LSA_FOREST_TRUST_COLLISION_TDO=(int)(0),
780 LSA_FOREST_TRUST_COLLISION_XREF=(int)(1),
781 LSA_FOREST_TRUST_COLLISION_OTHER=(int)(2)
783 #else
784 { __donnot_use_enum_lsa_ForestTrustCollisionRecordType=0x7FFFFFFF}
785 #define LSA_FOREST_TRUST_COLLISION_TDO ( 0 )
786 #define LSA_FOREST_TRUST_COLLISION_XREF ( 1 )
787 #define LSA_FOREST_TRUST_COLLISION_OTHER ( 2 )
788 #endif
791 /* bitmap lsa_ForestTrustCollisionTDOFlags */
792 #define LSA_TLN_DISABLED_NEW ( 0x00000001 )
793 #define LSA_TLN_DISABLED_ADMIN ( 0x00000002 )
794 #define LSA_TLN_DISABLED_CONFLICT ( 0x00000004 )
796 /* bitmap lsa_ForestTrustCollisionXrefFlags */
797 #define LSA_SID_DISABLED_ADMIN ( 0x00000001 )
798 #define LSA_SID_DISABLED_CONFLICT ( 0x00000002 )
799 #define LSA_NB_DISABLED_ADMIN ( 0x00000004 )
800 #define LSA_NB_DISABLED_CONFLICT ( 0x00000008 )
802 union lsa_ForestTrustCollisionFlags {
803 uint32_t flags;/* [case(LSA_FOREST_TRUST_COLLISION_TDO)] */
804 }/* [nodiscriminant] */;
806 struct lsa_ForestTrustCollisionRecord {
807 uint32_t index;
808 enum lsa_ForestTrustCollisionRecordType type;
809 union lsa_ForestTrustCollisionFlags flags;/* [switch_is(type)] */
810 struct lsa_String name;
813 struct lsa_ForestTrustCollisionInfo {
814 uint32_t count;
815 struct lsa_ForestTrustCollisionRecord **entries;/* [unique,size_is(count)] */
819 struct lsa_Close {
820 struct {
821 struct policy_handle *handle;/* [ref] */
822 } in;
824 struct {
825 struct policy_handle *handle;/* [ref] */
826 NTSTATUS result;
827 } out;
832 struct lsa_Delete {
833 struct {
834 struct policy_handle *handle;/* [ref] */
835 } in;
837 struct {
838 NTSTATUS result;
839 } out;
844 struct lsa_EnumPrivs {
845 struct {
846 struct policy_handle *handle;/* [ref] */
847 uint32_t max_count;
848 uint32_t *resume_handle;/* [ref] */
849 } in;
851 struct {
852 struct lsa_PrivArray *privs;/* [ref] */
853 uint32_t *resume_handle;/* [ref] */
854 NTSTATUS result;
855 } out;
860 struct lsa_QuerySecurity {
861 struct {
862 struct policy_handle *handle;/* [ref] */
863 uint32_t sec_info;
864 } in;
866 struct {
867 struct sec_desc_buf **sdbuf;/* [ref] */
868 NTSTATUS result;
869 } out;
874 struct lsa_SetSecObj {
875 struct {
876 struct policy_handle *handle;/* [ref] */
877 uint32_t sec_info;
878 struct sec_desc_buf *sdbuf;/* [ref] */
879 } in;
881 struct {
882 NTSTATUS result;
883 } out;
888 struct lsa_ChangePassword {
889 struct {
890 NTSTATUS result;
891 } out;
896 struct lsa_OpenPolicy {
897 struct {
898 uint16_t *system_name;/* [unique] */
899 struct lsa_ObjectAttribute *attr;/* [ref] */
900 uint32_t access_mask;
901 } in;
903 struct {
904 struct policy_handle *handle;/* [ref] */
905 NTSTATUS result;
906 } out;
911 struct lsa_QueryInfoPolicy {
912 struct {
913 struct policy_handle *handle;/* [ref] */
914 enum lsa_PolicyInfo level;
915 } in;
917 struct {
918 union lsa_PolicyInformation **info;/* [ref,switch_is(level)] */
919 NTSTATUS result;
920 } out;
925 struct lsa_SetInfoPolicy {
926 struct {
927 struct policy_handle *handle;/* [ref] */
928 enum lsa_PolicyInfo level;
929 union lsa_PolicyInformation *info;/* [ref,switch_is(level)] */
930 } in;
932 struct {
933 NTSTATUS result;
934 } out;
939 struct lsa_ClearAuditLog {
940 struct {
941 NTSTATUS result;
942 } out;
947 struct lsa_CreateAccount {
948 struct {
949 struct policy_handle *handle;/* [ref] */
950 struct dom_sid2 *sid;/* [ref] */
951 uint32_t access_mask;
952 } in;
954 struct {
955 struct policy_handle *acct_handle;/* [ref] */
956 NTSTATUS result;
957 } out;
962 struct lsa_EnumAccounts {
963 struct {
964 struct policy_handle *handle;/* [ref] */
965 uint32_t num_entries;/* [range(0,8192)] */
966 uint32_t *resume_handle;/* [ref] */
967 } in;
969 struct {
970 struct lsa_SidArray *sids;/* [ref] */
971 uint32_t *resume_handle;/* [ref] */
972 NTSTATUS result;
973 } out;
978 struct lsa_CreateTrustedDomain {
979 struct {
980 struct policy_handle *policy_handle;/* [ref] */
981 struct lsa_DomainInfo *info;/* [ref] */
982 uint32_t access_mask;
983 } in;
985 struct {
986 struct policy_handle *trustdom_handle;/* [ref] */
987 NTSTATUS result;
988 } out;
993 struct lsa_EnumTrustDom {
994 struct {
995 struct policy_handle *handle;/* [ref] */
996 uint32_t max_size;
997 uint32_t *resume_handle;/* [ref] */
998 } in;
1000 struct {
1001 struct lsa_DomainList *domains;/* [ref] */
1002 uint32_t *resume_handle;/* [ref] */
1003 NTSTATUS result;
1004 } out;
1009 struct lsa_LookupNames {
1010 struct {
1011 struct policy_handle *handle;/* [ref] */
1012 uint32_t num_names;/* [range(0,1000)] */
1013 struct lsa_String *names;/* [size_is(num_names)] */
1014 enum lsa_LookupNamesLevel level;
1015 struct lsa_TransSidArray *sids;/* [ref] */
1016 uint32_t *count;/* [ref] */
1017 } in;
1019 struct {
1020 struct lsa_RefDomainList **domains;/* [ref] */
1021 struct lsa_TransSidArray *sids;/* [ref] */
1022 uint32_t *count;/* [ref] */
1023 NTSTATUS result;
1024 } out;
1029 struct lsa_LookupSids {
1030 struct {
1031 struct policy_handle *handle;/* [ref] */
1032 struct lsa_SidArray *sids;/* [ref] */
1033 enum lsa_LookupNamesLevel level;
1034 struct lsa_TransNameArray *names;/* [ref] */
1035 uint32_t *count;/* [ref] */
1036 } in;
1038 struct {
1039 struct lsa_RefDomainList **domains;/* [ref] */
1040 struct lsa_TransNameArray *names;/* [ref] */
1041 uint32_t *count;/* [ref] */
1042 NTSTATUS result;
1043 } out;
1048 struct lsa_CreateSecret {
1049 struct {
1050 struct policy_handle *handle;/* [ref] */
1051 struct lsa_String name;
1052 uint32_t access_mask;
1053 } in;
1055 struct {
1056 struct policy_handle *sec_handle;/* [ref] */
1057 NTSTATUS result;
1058 } out;
1063 struct lsa_OpenAccount {
1064 struct {
1065 struct policy_handle *handle;/* [ref] */
1066 struct dom_sid2 *sid;/* [ref] */
1067 uint32_t access_mask;
1068 } in;
1070 struct {
1071 struct policy_handle *acct_handle;/* [ref] */
1072 NTSTATUS result;
1073 } out;
1078 struct lsa_EnumPrivsAccount {
1079 struct {
1080 struct policy_handle *handle;/* [ref] */
1081 } in;
1083 struct {
1084 struct lsa_PrivilegeSet **privs;/* [ref] */
1085 NTSTATUS result;
1086 } out;
1091 struct lsa_AddPrivilegesToAccount {
1092 struct {
1093 struct policy_handle *handle;/* [ref] */
1094 struct lsa_PrivilegeSet *privs;/* [ref] */
1095 } in;
1097 struct {
1098 NTSTATUS result;
1099 } out;
1104 struct lsa_RemovePrivilegesFromAccount {
1105 struct {
1106 struct policy_handle *handle;/* [ref] */
1107 uint8_t remove_all;
1108 struct lsa_PrivilegeSet *privs;/* [unique] */
1109 } in;
1111 struct {
1112 NTSTATUS result;
1113 } out;
1118 struct lsa_GetQuotasForAccount {
1119 struct {
1120 NTSTATUS result;
1121 } out;
1126 struct lsa_SetQuotasForAccount {
1127 struct {
1128 NTSTATUS result;
1129 } out;
1134 struct lsa_GetSystemAccessAccount {
1135 struct {
1136 struct policy_handle *handle;/* [ref] */
1137 } in;
1139 struct {
1140 uint32_t *access_mask;/* [ref] */
1141 NTSTATUS result;
1142 } out;
1147 struct lsa_SetSystemAccessAccount {
1148 struct {
1149 struct policy_handle *handle;/* [ref] */
1150 uint32_t access_mask;
1151 } in;
1153 struct {
1154 NTSTATUS result;
1155 } out;
1160 struct lsa_OpenTrustedDomain {
1161 struct {
1162 struct policy_handle *handle;/* [ref] */
1163 struct dom_sid2 *sid;/* [ref] */
1164 uint32_t access_mask;
1165 } in;
1167 struct {
1168 struct policy_handle *trustdom_handle;/* [ref] */
1169 NTSTATUS result;
1170 } out;
1175 struct lsa_QueryTrustedDomainInfo {
1176 struct {
1177 struct policy_handle *trustdom_handle;/* [ref] */
1178 enum lsa_TrustDomInfoEnum level;
1179 } in;
1181 struct {
1182 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1183 NTSTATUS result;
1184 } out;
1189 struct lsa_SetInformationTrustedDomain {
1190 struct {
1191 struct policy_handle *trustdom_handle;/* [ref] */
1192 enum lsa_TrustDomInfoEnum level;
1193 union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
1194 } in;
1196 struct {
1197 NTSTATUS result;
1198 } out;
1203 struct lsa_OpenSecret {
1204 struct {
1205 struct policy_handle *handle;/* [ref] */
1206 struct lsa_String name;
1207 uint32_t access_mask;
1208 } in;
1210 struct {
1211 struct policy_handle *sec_handle;/* [ref] */
1212 NTSTATUS result;
1213 } out;
1218 struct lsa_SetSecret {
1219 struct {
1220 struct policy_handle *sec_handle;/* [ref] */
1221 struct lsa_DATA_BUF *new_val;/* [unique] */
1222 struct lsa_DATA_BUF *old_val;/* [unique] */
1223 } in;
1225 struct {
1226 NTSTATUS result;
1227 } out;
1232 struct lsa_QuerySecret {
1233 struct {
1234 struct policy_handle *sec_handle;/* [ref] */
1235 struct lsa_DATA_BUF_PTR *new_val;/* [unique] */
1236 NTTIME *new_mtime;/* [unique] */
1237 struct lsa_DATA_BUF_PTR *old_val;/* [unique] */
1238 NTTIME *old_mtime;/* [unique] */
1239 } in;
1241 struct {
1242 struct lsa_DATA_BUF_PTR *new_val;/* [unique] */
1243 NTTIME *new_mtime;/* [unique] */
1244 struct lsa_DATA_BUF_PTR *old_val;/* [unique] */
1245 NTTIME *old_mtime;/* [unique] */
1246 NTSTATUS result;
1247 } out;
1252 struct lsa_LookupPrivValue {
1253 struct {
1254 struct policy_handle *handle;/* [ref] */
1255 struct lsa_String *name;/* [ref] */
1256 } in;
1258 struct {
1259 struct lsa_LUID *luid;/* [ref] */
1260 NTSTATUS result;
1261 } out;
1266 struct lsa_LookupPrivName {
1267 struct {
1268 struct policy_handle *handle;/* [ref] */
1269 struct lsa_LUID *luid;/* [ref] */
1270 } in;
1272 struct {
1273 struct lsa_StringLarge **name;/* [ref] */
1274 NTSTATUS result;
1275 } out;
1280 struct lsa_LookupPrivDisplayName {
1281 struct {
1282 struct policy_handle *handle;/* [ref] */
1283 struct lsa_String *name;/* [ref] */
1284 uint16_t language_id;
1285 uint16_t language_id_sys;
1286 } in;
1288 struct {
1289 struct lsa_StringLarge **disp_name;/* [ref] */
1290 uint16_t *returned_language_id;/* [ref] */
1291 NTSTATUS result;
1292 } out;
1297 struct lsa_DeleteObject {
1298 struct {
1299 struct policy_handle *handle;/* [ref] */
1300 } in;
1302 struct {
1303 struct policy_handle *handle;/* [ref] */
1304 NTSTATUS result;
1305 } out;
1310 struct lsa_EnumAccountsWithUserRight {
1311 struct {
1312 struct policy_handle *handle;/* [ref] */
1313 struct lsa_String *name;/* [unique] */
1314 } in;
1316 struct {
1317 struct lsa_SidArray *sids;/* [ref] */
1318 NTSTATUS result;
1319 } out;
1324 struct lsa_EnumAccountRights {
1325 struct {
1326 struct policy_handle *handle;/* [ref] */
1327 struct dom_sid2 *sid;/* [ref] */
1328 } in;
1330 struct {
1331 struct lsa_RightSet *rights;/* [ref] */
1332 NTSTATUS result;
1333 } out;
1338 struct lsa_AddAccountRights {
1339 struct {
1340 struct policy_handle *handle;/* [ref] */
1341 struct dom_sid2 *sid;/* [ref] */
1342 struct lsa_RightSet *rights;/* [ref] */
1343 } in;
1345 struct {
1346 NTSTATUS result;
1347 } out;
1352 struct lsa_RemoveAccountRights {
1353 struct {
1354 struct policy_handle *handle;/* [ref] */
1355 struct dom_sid2 *sid;/* [ref] */
1356 uint8_t remove_all;
1357 struct lsa_RightSet *rights;/* [ref] */
1358 } in;
1360 struct {
1361 NTSTATUS result;
1362 } out;
1367 struct lsa_QueryTrustedDomainInfoBySid {
1368 struct {
1369 struct policy_handle *handle;/* [ref] */
1370 struct dom_sid2 *dom_sid;/* [ref] */
1371 enum lsa_TrustDomInfoEnum level;
1372 } in;
1374 struct {
1375 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1376 NTSTATUS result;
1377 } out;
1382 struct lsa_SetTrustedDomainInfo {
1383 struct {
1384 struct policy_handle *handle;/* [ref] */
1385 struct dom_sid2 *dom_sid;/* [ref] */
1386 enum lsa_TrustDomInfoEnum level;
1387 union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
1388 } in;
1390 struct {
1391 NTSTATUS result;
1392 } out;
1397 struct lsa_DeleteTrustedDomain {
1398 struct {
1399 struct policy_handle *handle;/* [ref] */
1400 struct dom_sid2 *dom_sid;/* [ref] */
1401 } in;
1403 struct {
1404 NTSTATUS result;
1405 } out;
1410 struct lsa_StorePrivateData {
1411 struct {
1412 struct policy_handle *handle;/* [ref] */
1413 struct lsa_String *name;/* [ref] */
1414 struct lsa_DATA_BUF *val;/* [unique] */
1415 } in;
1417 struct {
1418 NTSTATUS result;
1419 } out;
1424 struct lsa_RetrievePrivateData {
1425 struct {
1426 struct policy_handle *handle;/* [ref] */
1427 struct lsa_String *name;/* [ref] */
1428 struct lsa_DATA_BUF **val;/* [ref] */
1429 } in;
1431 struct {
1432 struct lsa_DATA_BUF **val;/* [ref] */
1433 NTSTATUS result;
1434 } out;
1439 struct lsa_OpenPolicy2 {
1440 struct {
1441 const char *system_name;/* [unique,charset(UTF16)] */
1442 struct lsa_ObjectAttribute *attr;/* [ref] */
1443 uint32_t access_mask;
1444 } in;
1446 struct {
1447 struct policy_handle *handle;/* [ref] */
1448 NTSTATUS result;
1449 } out;
1454 struct lsa_GetUserName {
1455 struct {
1456 const char *system_name;/* [unique,charset(UTF16)] */
1457 struct lsa_String **account_name;/* [ref] */
1458 struct lsa_String **authority_name;/* [unique] */
1459 } in;
1461 struct {
1462 struct lsa_String **account_name;/* [ref] */
1463 struct lsa_String **authority_name;/* [unique] */
1464 NTSTATUS result;
1465 } out;
1470 struct lsa_QueryInfoPolicy2 {
1471 struct {
1472 struct policy_handle *handle;/* [ref] */
1473 enum lsa_PolicyInfo level;
1474 } in;
1476 struct {
1477 union lsa_PolicyInformation **info;/* [ref,switch_is(level)] */
1478 NTSTATUS result;
1479 } out;
1484 struct lsa_SetInfoPolicy2 {
1485 struct {
1486 struct policy_handle *handle;/* [ref] */
1487 enum lsa_PolicyInfo level;
1488 union lsa_PolicyInformation *info;/* [ref,switch_is(level)] */
1489 } in;
1491 struct {
1492 NTSTATUS result;
1493 } out;
1498 struct lsa_QueryTrustedDomainInfoByName {
1499 struct {
1500 struct policy_handle *handle;/* [ref] */
1501 struct lsa_String *trusted_domain;/* [ref] */
1502 enum lsa_TrustDomInfoEnum level;
1503 } in;
1505 struct {
1506 union lsa_TrustedDomainInfo **info;/* [ref,switch_is(level)] */
1507 NTSTATUS result;
1508 } out;
1513 struct lsa_SetTrustedDomainInfoByName {
1514 struct {
1515 struct policy_handle *handle;/* [ref] */
1516 struct lsa_String *trusted_domain;/* [ref] */
1517 enum lsa_TrustDomInfoEnum level;
1518 union lsa_TrustedDomainInfo *info;/* [ref,switch_is(level)] */
1519 } in;
1521 struct {
1522 NTSTATUS result;
1523 } out;
1528 struct lsa_EnumTrustedDomainsEx {
1529 struct {
1530 struct policy_handle *handle;/* [ref] */
1531 uint32_t max_size;
1532 uint32_t *resume_handle;/* [ref] */
1533 } in;
1535 struct {
1536 struct lsa_DomainListEx *domains;/* [ref] */
1537 uint32_t *resume_handle;/* [ref] */
1538 NTSTATUS result;
1539 } out;
1544 struct lsa_CreateTrustedDomainEx {
1545 struct {
1546 struct policy_handle *policy_handle;/* [ref] */
1547 struct lsa_TrustDomainInfoInfoEx *info;/* [ref] */
1548 struct lsa_TrustDomainInfoAuthInfoInternal *auth_info;/* [ref] */
1549 uint32_t access_mask;
1550 } in;
1552 struct {
1553 struct policy_handle *trustdom_handle;/* [ref] */
1554 NTSTATUS result;
1555 } out;
1560 struct lsa_CloseTrustedDomainEx {
1561 struct {
1562 struct policy_handle *handle;/* [ref] */
1563 } in;
1565 struct {
1566 struct policy_handle *handle;/* [ref] */
1567 NTSTATUS result;
1568 } out;
1573 struct lsa_QueryDomainInformationPolicy {
1574 struct {
1575 struct policy_handle *handle;/* [ref] */
1576 uint16_t level;
1577 } in;
1579 struct {
1580 union lsa_DomainInformationPolicy **info;/* [ref,switch_is(level)] */
1581 NTSTATUS result;
1582 } out;
1587 struct lsa_SetDomainInformationPolicy {
1588 struct {
1589 struct policy_handle *handle;/* [ref] */
1590 uint16_t level;
1591 union lsa_DomainInformationPolicy *info;/* [unique,switch_is(level)] */
1592 } in;
1594 struct {
1595 NTSTATUS result;
1596 } out;
1601 struct lsa_OpenTrustedDomainByName {
1602 struct {
1603 struct policy_handle *handle;/* [ref] */
1604 struct lsa_String name;
1605 uint32_t access_mask;
1606 } in;
1608 struct {
1609 struct policy_handle *trustdom_handle;/* [ref] */
1610 NTSTATUS result;
1611 } out;
1616 struct lsa_TestCall {
1617 struct {
1618 NTSTATUS result;
1619 } out;
1624 struct lsa_LookupSids2 {
1625 struct {
1626 struct policy_handle *handle;/* [ref] */
1627 struct lsa_SidArray *sids;/* [ref] */
1628 enum lsa_LookupNamesLevel level;
1629 enum lsa_LookupOptions lookup_options;
1630 enum lsa_ClientRevision client_revision;
1631 struct lsa_TransNameArray2 *names;/* [ref] */
1632 uint32_t *count;/* [ref] */
1633 } in;
1635 struct {
1636 struct lsa_RefDomainList **domains;/* [ref] */
1637 struct lsa_TransNameArray2 *names;/* [ref] */
1638 uint32_t *count;/* [ref] */
1639 NTSTATUS result;
1640 } out;
1645 struct lsa_LookupNames2 {
1646 struct {
1647 struct policy_handle *handle;/* [ref] */
1648 uint32_t num_names;/* [range(0,1000)] */
1649 struct lsa_String *names;/* [size_is(num_names)] */
1650 enum lsa_LookupNamesLevel level;
1651 enum lsa_LookupOptions lookup_options;
1652 enum lsa_ClientRevision client_revision;
1653 struct lsa_TransSidArray2 *sids;/* [ref] */
1654 uint32_t *count;/* [ref] */
1655 } in;
1657 struct {
1658 struct lsa_RefDomainList **domains;/* [ref] */
1659 struct lsa_TransSidArray2 *sids;/* [ref] */
1660 uint32_t *count;/* [ref] */
1661 NTSTATUS result;
1662 } out;
1667 struct lsa_CreateTrustedDomainEx2 {
1668 struct {
1669 struct policy_handle *policy_handle;/* [ref] */
1670 struct lsa_TrustDomainInfoInfoEx *info;/* [ref] */
1671 struct lsa_TrustDomainInfoAuthInfoInternal *auth_info;/* [ref] */
1672 uint32_t access_mask;
1673 } in;
1675 struct {
1676 struct policy_handle *trustdom_handle;/* [ref] */
1677 NTSTATUS result;
1678 } out;
1683 struct lsa_CREDRWRITE {
1684 struct {
1685 NTSTATUS result;
1686 } out;
1691 struct lsa_CREDRREAD {
1692 struct {
1693 NTSTATUS result;
1694 } out;
1699 struct lsa_CREDRENUMERATE {
1700 struct {
1701 NTSTATUS result;
1702 } out;
1707 struct lsa_CREDRWRITEDOMAINCREDENTIALS {
1708 struct {
1709 NTSTATUS result;
1710 } out;
1715 struct lsa_CREDRREADDOMAINCREDENTIALS {
1716 struct {
1717 NTSTATUS result;
1718 } out;
1723 struct lsa_CREDRDELETE {
1724 struct {
1725 NTSTATUS result;
1726 } out;
1731 struct lsa_CREDRGETTARGETINFO {
1732 struct {
1733 NTSTATUS result;
1734 } out;
1739 struct lsa_CREDRPROFILELOADED {
1740 struct {
1741 NTSTATUS result;
1742 } out;
1747 struct lsa_LookupNames3 {
1748 struct {
1749 struct policy_handle *handle;/* [ref] */
1750 uint32_t num_names;/* [range(0,1000)] */
1751 struct lsa_String *names;/* [size_is(num_names)] */
1752 enum lsa_LookupNamesLevel level;
1753 enum lsa_LookupOptions lookup_options;
1754 enum lsa_ClientRevision client_revision;
1755 struct lsa_TransSidArray3 *sids;/* [ref] */
1756 uint32_t *count;/* [ref] */
1757 } in;
1759 struct {
1760 struct lsa_RefDomainList **domains;/* [ref] */
1761 struct lsa_TransSidArray3 *sids;/* [ref] */
1762 uint32_t *count;/* [ref] */
1763 NTSTATUS result;
1764 } out;
1769 struct lsa_CREDRGETSESSIONTYPES {
1770 struct {
1771 NTSTATUS result;
1772 } out;
1777 struct lsa_LSARREGISTERAUDITEVENT {
1778 struct {
1779 NTSTATUS result;
1780 } out;
1785 struct lsa_LSARGENAUDITEVENT {
1786 struct {
1787 NTSTATUS result;
1788 } out;
1793 struct lsa_LSARUNREGISTERAUDITEVENT {
1794 struct {
1795 NTSTATUS result;
1796 } out;
1801 struct lsa_lsaRQueryForestTrustInformation {
1802 struct {
1803 struct policy_handle *handle;/* [ref] */
1804 struct lsa_String *trusted_domain_name;/* [ref] */
1805 uint16_t unknown;
1806 } in;
1808 struct {
1809 struct lsa_ForestTrustInformation **forest_trust_info;/* [ref] */
1810 NTSTATUS result;
1811 } out;
1816 struct lsa_lsaRSetForestTrustInformation {
1817 struct {
1818 struct policy_handle *handle;/* [ref] */
1819 struct lsa_StringLarge *trusted_domain_name;/* [ref] */
1820 uint16_t highest_record_type;
1821 struct lsa_ForestTrustInformation *forest_trust_info;/* [ref] */
1822 uint8_t check_only;
1823 } in;
1825 struct {
1826 struct lsa_ForestTrustCollisionInfo **collision_info;/* [ref] */
1827 NTSTATUS result;
1828 } out;
1833 struct lsa_CREDRRENAME {
1834 struct {
1835 NTSTATUS result;
1836 } out;
1841 struct lsa_LookupSids3 {
1842 struct {
1843 struct lsa_SidArray *sids;/* [ref] */
1844 enum lsa_LookupNamesLevel level;
1845 enum lsa_LookupOptions lookup_options;
1846 enum lsa_ClientRevision client_revision;
1847 struct lsa_TransNameArray2 *names;/* [ref] */
1848 uint32_t *count;/* [ref] */
1849 } in;
1851 struct {
1852 struct lsa_RefDomainList **domains;/* [ref] */
1853 struct lsa_TransNameArray2 *names;/* [ref] */
1854 uint32_t *count;/* [ref] */
1855 NTSTATUS result;
1856 } out;
1861 struct lsa_LookupNames4 {
1862 struct {
1863 uint32_t num_names;/* [range(0,1000)] */
1864 struct lsa_String *names;/* [size_is(num_names)] */
1865 enum lsa_LookupNamesLevel level;
1866 enum lsa_LookupOptions lookup_options;
1867 enum lsa_ClientRevision client_revision;
1868 struct lsa_TransSidArray3 *sids;/* [ref] */
1869 uint32_t *count;/* [ref] */
1870 } in;
1872 struct {
1873 struct lsa_RefDomainList **domains;/* [ref] */
1874 struct lsa_TransSidArray3 *sids;/* [ref] */
1875 uint32_t *count;/* [ref] */
1876 NTSTATUS result;
1877 } out;
1882 struct lsa_LSAROPENPOLICYSCE {
1883 struct {
1884 NTSTATUS result;
1885 } out;
1890 struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE {
1891 struct {
1892 NTSTATUS result;
1893 } out;
1898 struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE {
1899 struct {
1900 NTSTATUS result;
1901 } out;
1906 struct lsa_LSARADTREPORTSECURITYEVENT {
1907 struct {
1908 NTSTATUS result;
1909 } out;
1913 #endif /* _HEADER_lsarpc */