4 lsa interface definition
7 import "misc.idl", "security.idl";
9 [ uuid("12345778-1234-abcd-ef00-0123456789ab"),
11 endpoint("ncacn_np:[\\pipe\\lsarpc]","ncacn_np:[\\pipe\\netlogon]","ncacn_np:[\\pipe\\lsass]", "ncacn_ip_tcp:", "ncalrpc:"),
12 pointer_default(unique),
13 helpstring("Local Security Authority")
16 typedef bitmap security_secinfo security_secinfo;
18 typedef [public,noejs] struct {
19 [value(2*strlen_m(string))] uint16 length;
20 [value(2*strlen_m(string))] uint16 size;
21 [charset(UTF16),size_is(size/2),length_is(length/2)] uint16 *string;
24 typedef [public] struct {
25 [value(2*strlen_m(string))] uint16 length;
26 [value(2*strlen_m_term(string))] uint16 size;
27 [charset(UTF16),size_is(size/2),length_is(length/2)] uint16 *string;
30 typedef [public] struct {
32 [size_is(count)] lsa_String *names;
35 typedef [public] struct {
36 [value(strlen_m(string))] uint16 length;
37 [value(strlen_m(string))] uint16 size;
38 [charset(DOS),size_is(size),length_is(length)] uint8 *string;
41 typedef [public] struct {
42 [value(strlen_m(string))] uint16 length;
43 [value(strlen_m_term(string))] uint16 size;
44 [charset(DOS),size_is(size),length_is(length)] uint8 *string;
45 } lsa_AsciiStringLarge;
50 [in,out] policy_handle *handle
56 [public] NTSTATUS lsa_Delete (
57 [in] policy_handle *handle
75 [size_is(count)] lsa_PrivEntry *privs;
78 [public] NTSTATUS lsa_EnumPrivs (
79 [in] policy_handle *handle,
80 [in,out] uint32 *resume_handle,
81 [in] uint32 max_count,
82 [out] lsa_PrivArray *privs
88 NTSTATUS lsa_QuerySecurity (
89 [in] policy_handle *handle,
90 [in] security_secinfo sec_info,
91 [out,unique] sec_desc_buf *sdbuf
97 NTSTATUS lsa_SetSecObj ();
102 NTSTATUS lsa_ChangePassword ();
108 uint32 len; /* ignored */
109 uint16 impersonation_level;
111 uint8 effective_only;
115 uint32 len; /* ignored */
117 [string,charset(UTF16)] uint16 *object_name;
119 security_descriptor *sec_desc;
120 lsa_QosInfo *sec_qos;
121 } lsa_ObjectAttribute;
123 /* notice the screwup with the system_name - thats why MS created
125 [public] NTSTATUS lsa_OpenPolicy (
126 [in,unique] uint16 *system_name,
127 [in] lsa_ObjectAttribute *attr,
128 [in] uint32 access_mask,
129 [out] policy_handle *handle
140 NTTIME retention_time;
141 uint8 shutdown_in_progress;
142 NTTIME time_to_shutdown;
143 uint32 next_audit_record;
147 typedef [v1_enum] enum {
148 LSA_AUDIT_POLICY_NONE=0,
149 LSA_AUDIT_POLICY_SUCCESS=1,
150 LSA_AUDIT_POLICY_FAILURE=2,
151 LSA_AUDIT_POLICY_ALL=(LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE),
152 LSA_AUDIT_POLICY_CLEAR=4
153 } lsa_PolicyAuditPolicy;
156 LSA_AUDIT_CATEGORY_SYSTEM = 0,
157 LSA_AUDIT_CATEGORY_LOGON = 1,
158 LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS = 2,
159 LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS = 3,
160 LSA_AUDIT_CATEGORY_PROCCESS_TRACKING = 4,
161 LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES = 5,
162 LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT = 6,
163 LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS = 7, /* only in win2k/2k3 */
164 LSA_AUDIT_CATEGORY_ACCOUNT_LOGON = 8 /* only in win2k/2k3 */
165 } lsa_PolicyAuditEventType;
168 uint32 auditing_mode;
169 [size_is(count)] lsa_PolicyAuditPolicy *settings;
171 } lsa_AuditEventsInfo;
174 lsa_StringLarge name;
183 uint16 unknown; /* an midl padding bug? */
190 } lsa_ReplicaSourceInfo;
194 uint32 non_paged_pool;
199 } lsa_DefaultQuotaInfo;
203 NTTIME db_create_time;
204 } lsa_ModificationInfo;
207 uint8 shutdown_on_full;
208 } lsa_AuditFullSetInfo;
211 uint16 unknown; /* an midl padding bug? */
212 uint8 shutdown_on_full;
214 } lsa_AuditFullQueryInfo;
217 /* it's important that we use the lsa_StringLarge here,
218 * because otherwise windows clients result with such dns hostnames
219 * e.g. w2k3-client.samba4.samba.orgsamba4.samba.org
221 * w2k3-client.samba4.samba.org
223 lsa_StringLarge name;
224 lsa_StringLarge dns_domain;
225 lsa_StringLarge dns_forest;
231 LSA_POLICY_INFO_AUDIT_LOG=1,
232 LSA_POLICY_INFO_AUDIT_EVENTS=2,
233 LSA_POLICY_INFO_DOMAIN=3,
234 LSA_POLICY_INFO_PD=4,
235 LSA_POLICY_INFO_ACCOUNT_DOMAIN=5,
236 LSA_POLICY_INFO_ROLE=6,
237 LSA_POLICY_INFO_REPLICA=7,
238 LSA_POLICY_INFO_QUOTA=8,
239 LSA_POLICY_INFO_DB=9,
240 LSA_POLICY_INFO_AUDIT_FULL_SET=10,
241 LSA_POLICY_INFO_AUDIT_FULL_QUERY=11,
242 LSA_POLICY_INFO_DNS=12
245 typedef [switch_type(uint16)] union {
246 [case(LSA_POLICY_INFO_AUDIT_LOG)] lsa_AuditLogInfo audit_log;
247 [case(LSA_POLICY_INFO_AUDIT_EVENTS)] lsa_AuditEventsInfo audit_events;
248 [case(LSA_POLICY_INFO_DOMAIN)] lsa_DomainInfo domain;
249 [case(LSA_POLICY_INFO_PD)] lsa_PDAccountInfo pd;
250 [case(LSA_POLICY_INFO_ACCOUNT_DOMAIN)] lsa_DomainInfo account_domain;
251 [case(LSA_POLICY_INFO_ROLE)] lsa_ServerRole role;
252 [case(LSA_POLICY_INFO_REPLICA)] lsa_ReplicaSourceInfo replica;
253 [case(LSA_POLICY_INFO_QUOTA)] lsa_DefaultQuotaInfo quota;
254 [case(LSA_POLICY_INFO_DB)] lsa_ModificationInfo db;
255 [case(LSA_POLICY_INFO_AUDIT_FULL_SET)] lsa_AuditFullSetInfo auditfullset;
256 [case(LSA_POLICY_INFO_AUDIT_FULL_QUERY)] lsa_AuditFullQueryInfo auditfullquery;
257 [case(LSA_POLICY_INFO_DNS)] lsa_DnsDomainInfo dns;
258 } lsa_PolicyInformation;
260 NTSTATUS lsa_QueryInfoPolicy (
261 [in] policy_handle *handle,
262 [in] lsa_PolicyInfo level,
263 [out,unique,switch_is(level)] lsa_PolicyInformation *info
268 NTSTATUS lsa_SetInfoPolicy (
269 [in] policy_handle *handle,
270 [in] lsa_PolicyInfo level,
271 [in,switch_is(level)] lsa_PolicyInformation *info
276 NTSTATUS lsa_ClearAuditLog ();
280 [public] NTSTATUS lsa_CreateAccount (
281 [in] policy_handle *handle,
283 [in] uint32 access_mask,
284 [out] policy_handle *acct_handle
288 /* NOTE: This only returns accounts that have at least
296 typedef [public] struct {
297 [range(0,1000)] uint32 num_sids;
298 [size_is(num_sids)] lsa_SidPtr *sids;
301 [public] NTSTATUS lsa_EnumAccounts (
302 [in] policy_handle *handle,
303 [in,out] uint32 *resume_handle,
304 [in,range(0,8192)] uint32 num_entries,
305 [out] lsa_SidArray *sids
309 /*************************************************/
312 [public] NTSTATUS lsa_CreateTrustedDomain(
313 [in] policy_handle *handle,
314 [in] lsa_DomainInfo *info,
315 [in] uint32 access_mask,
316 [out] policy_handle *trustdom_handle
323 /* w2k3 treats max_size as max_domains*60 */
324 const int LSA_ENUM_TRUST_DOMAIN_MULTIPLIER = 60;
328 [size_is(count)] lsa_DomainInfo *domains;
331 NTSTATUS lsa_EnumTrustDom (
332 [in] policy_handle *handle,
333 [in,out] uint32 *resume_handle,
334 [in] uint32 max_size,
335 [out] lsa_DomainList *domains
341 typedef [public] enum {
342 SID_NAME_USE_NONE = 0,/* NOTUSED */
343 SID_NAME_USER = 1, /* user */
344 SID_NAME_DOM_GRP = 2, /* domain group */
345 SID_NAME_DOMAIN = 3, /* domain: don't know what this is */
346 SID_NAME_ALIAS = 4, /* local group */
347 SID_NAME_WKN_GRP = 5, /* well-known group */
348 SID_NAME_DELETED = 6, /* deleted account: needed for c2 rating */
349 SID_NAME_INVALID = 7, /* invalid account */
350 SID_NAME_UNKNOWN = 8, /* oops. */
351 SID_NAME_COMPUTER = 9 /* machine */
355 lsa_SidType sid_type;
361 [range(0,1000)] uint32 count;
362 [size_is(count)] lsa_TranslatedSid *sids;
365 const int LSA_REF_DOMAIN_LIST_MULTIPLIER = 32;
367 [range(0,1000)] uint32 count;
368 [size_is(count)] lsa_DomainInfo *domains;
372 /* Level 1: Ask everywhere
373 * Level 2: Ask domain and trusted domains, no builtin and wkn
374 * Level 3: Only ask domain
375 * Level 4: W2k3ad: Only ask AD trusts
376 * Level 5: Only ask transitive forest trusts
381 LSA_LOOKUP_NAMES_ALL = 1,
382 LSA_LOOKUP_NAMES_DOMAINS_ONLY = 2,
383 LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY = 3,
384 LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY = 4,
385 LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY = 5,
386 LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2 = 6
387 } lsa_LookupNamesLevel;
389 [public] NTSTATUS lsa_LookupNames (
390 [in] policy_handle *handle,
391 [in,range(0,1000)] uint32 num_names,
392 [in,size_is(num_names)] lsa_String names[],
393 [out,unique] lsa_RefDomainList *domains,
394 [in,out] lsa_TransSidArray *sids,
395 [in] lsa_LookupNamesLevel level,
396 [in,out] uint32 *count
404 lsa_SidType sid_type;
407 } lsa_TranslatedName;
410 [range(0,1000)] uint32 count;
411 [size_is(count)] lsa_TranslatedName *names;
412 } lsa_TransNameArray;
414 [public] NTSTATUS lsa_LookupSids (
415 [in] policy_handle *handle,
416 [in] lsa_SidArray *sids,
417 [out,unique] lsa_RefDomainList *domains,
418 [in,out] lsa_TransNameArray *names,
420 [in,out] uint32 *count
425 [public] NTSTATUS lsa_CreateSecret(
426 [in] policy_handle *handle,
427 [in] lsa_String name,
428 [in] uint32 access_mask,
429 [out] policy_handle *sec_handle
433 /*****************************************/
435 NTSTATUS lsa_OpenAccount (
436 [in] policy_handle *handle,
438 [in] uint32 access_mask,
439 [out] policy_handle *acct_handle
443 /****************************************/
452 [range(0,1000)] uint32 count;
454 [size_is(count)] lsa_LUIDAttribute set[*];
457 NTSTATUS lsa_EnumPrivsAccount (
458 [in] policy_handle *handle,
459 [out,unique] lsa_PrivilegeSet *privs
463 /****************************************/
465 NTSTATUS lsa_AddPrivilegesToAccount(
466 [in] policy_handle *handle,
467 [in] lsa_PrivilegeSet *privs
471 /****************************************/
473 NTSTATUS lsa_RemovePrivilegesFromAccount(
474 [in] policy_handle *handle,
475 [in] uint8 remove_all,
476 [in,unique] lsa_PrivilegeSet *privs
480 NTSTATUS lsa_GetQuotasForAccount();
483 NTSTATUS lsa_SetQuotasForAccount();
486 NTSTATUS lsa_GetSystemAccessAccount();
488 NTSTATUS lsa_SetSystemAccessAccount();
491 NTSTATUS lsa_OpenTrustedDomain(
492 [in] policy_handle *handle,
494 [in] uint32 access_mask,
495 [out] policy_handle *trustdom_handle
498 typedef [flag(NDR_PAHEX)] struct {
501 [size_is(size),length_is(length)] uint8 *data;
504 typedef [flag(NDR_PAHEX)] struct {
505 [range(0,65536)] uint32 size;
506 [size_is(size)] uint8 *data;
510 LSA_TRUSTED_DOMAIN_INFO_NAME = 1,
511 LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS_INFO = 2,
512 LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET = 3,
513 LSA_TRUSTED_DOMAIN_INFO_PASSWORD = 4,
514 LSA_TRUSTED_DOMAIN_INFO_BASIC = 5,
515 LSA_TRUSTED_DOMAIN_INFO_INFO_EX = 6,
516 LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO = 7,
517 LSA_TRUSTED_DOMAIN_INFO_FULL_INFO = 8,
518 LSA_TRUSTED_DOMAIN_INFO_11 = 11,
519 LSA_TRUSTED_DOMAIN_INFO_INFO_ALL = 12
520 } lsa_TrustDomInfoEnum;
523 lsa_StringLarge netbios_name;
524 } lsa_TrustDomainInfoName;
528 } lsa_TrustDomainInfoPosixOffset;
531 lsa_DATA_BUF *password;
532 lsa_DATA_BUF *old_password;
533 } lsa_TrustDomainInfoPassword;
536 lsa_String netbios_name;
538 } lsa_TrustDomainInfoBasic;
541 lsa_StringLarge domain_name;
542 lsa_StringLarge netbios_name;
544 uint32 trust_direction;
546 uint32 trust_attributes;
547 } lsa_TrustDomainInfoInfoEx;
550 NTTIME_hyper last_update_time;
553 } lsa_TrustDomainInfoBuffer;
556 uint32 incoming_count;
557 lsa_TrustDomainInfoBuffer *incoming_current_auth_info;
558 lsa_TrustDomainInfoBuffer *incoming_previous_auth_info;
559 uint32 outgoing_count;
560 lsa_TrustDomainInfoBuffer *outgoing_current_auth_info;
561 lsa_TrustDomainInfoBuffer *outgoing_previous_auth_info;
562 } lsa_TrustDomainInfoAuthInfo;
565 lsa_TrustDomainInfoInfoEx info_ex;
566 lsa_TrustDomainInfoPosixOffset posix_offset;
567 lsa_TrustDomainInfoAuthInfo auth_info;
568 } lsa_TrustDomainInfoFullInfo;
571 lsa_TrustDomainInfoInfoEx info_ex;
573 } lsa_TrustDomainInfo11;
576 lsa_TrustDomainInfoInfoEx info_ex;
578 lsa_TrustDomainInfoPosixOffset posix_offset;
579 lsa_TrustDomainInfoAuthInfo auth_info;
580 } lsa_TrustDomainInfoInfoAll;
582 typedef [switch_type(lsa_TrustDomInfoEnum)] union {
583 [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] lsa_TrustDomainInfoName name;
584 [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] lsa_TrustDomainInfoPosixOffset posix_offset;
585 [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] lsa_TrustDomainInfoPassword password;
586 [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)] lsa_TrustDomainInfoBasic info_basic;
587 [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)] lsa_TrustDomainInfoInfoEx info_ex;
588 [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)] lsa_TrustDomainInfoAuthInfo auth_info;
589 [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)] lsa_TrustDomainInfoFullInfo full_info;
590 [case(LSA_TRUSTED_DOMAIN_INFO_11)] lsa_TrustDomainInfo11 info11;
591 [case(LSA_TRUSTED_DOMAIN_INFO_INFO_ALL)] lsa_TrustDomainInfoInfoAll info_all;
592 } lsa_TrustedDomainInfo;
595 NTSTATUS lsa_QueryTrustedDomainInfo(
596 [in] policy_handle *trustdom_handle,
597 [in] lsa_TrustDomInfoEnum level,
598 [out,switch_is(level),unique] lsa_TrustedDomainInfo *info
602 NTSTATUS lsa_SetInformationTrustedDomain();
605 [public] NTSTATUS lsa_OpenSecret(
606 [in] policy_handle *handle,
607 [in] lsa_String name,
608 [in] uint32 access_mask,
609 [out] policy_handle *sec_handle
614 [public] NTSTATUS lsa_SetSecret(
615 [in] policy_handle *sec_handle,
616 [in,unique] lsa_DATA_BUF *new_val,
617 [in,unique] lsa_DATA_BUF *old_val
625 [public] NTSTATUS lsa_QuerySecret (
626 [in] policy_handle *sec_handle,
627 [in,out,unique] lsa_DATA_BUF_PTR *new_val,
628 [in,out,unique] NTTIME_hyper *new_mtime,
629 [in,out,unique] lsa_DATA_BUF_PTR *old_val,
630 [in,out,unique] NTTIME_hyper *old_mtime
634 NTSTATUS lsa_LookupPrivValue(
635 [in] policy_handle *handle,
636 [in] lsa_String *name,
642 NTSTATUS lsa_LookupPrivName (
643 [in] policy_handle *handle,
645 [out,unique] lsa_StringLarge *name
649 /*******************/
651 NTSTATUS lsa_LookupPrivDisplayName (
652 [in] policy_handle *handle,
653 [in] lsa_String *name,
654 [out,unique] lsa_StringLarge *disp_name,
655 /* see http://www.microsoft.com/globaldev/nlsweb/ for
656 language definitions */
657 [in,out] uint16 *language_id,
662 NTSTATUS lsa_DeleteObject();
665 /*******************/
667 NTSTATUS lsa_EnumAccountsWithUserRight (
668 [in] policy_handle *handle,
669 [in,unique] lsa_String *name,
670 [out] lsa_SidArray *sids
675 [string,charset(UTF16)] uint16 *name;
676 } lsa_RightAttribute;
680 [size_is(count)] lsa_StringLarge *names;
683 NTSTATUS lsa_EnumAccountRights (
684 [in] policy_handle *handle,
686 [out] lsa_RightSet *rights
690 /**********************/
692 NTSTATUS lsa_AddAccountRights (
693 [in] policy_handle *handle,
695 [in] lsa_RightSet *rights
698 /**********************/
700 NTSTATUS lsa_RemoveAccountRights (
701 [in] policy_handle *handle,
704 [in] lsa_RightSet *rights
708 NTSTATUS lsa_QueryTrustedDomainInfoBySid(
709 [in] policy_handle *handle,
710 [in] dom_sid2 *dom_sid,
711 [in] lsa_TrustDomInfoEnum level,
712 [out,switch_is(level),unique] lsa_TrustedDomainInfo *info
716 NTSTATUS lsa_SetTrustedDomainInfo();
718 NTSTATUS lsa_DeleteTrustedDomain(
719 [in] policy_handle *handle,
720 [in] dom_sid2 *dom_sid
724 NTSTATUS lsa_StorePrivateData();
726 NTSTATUS lsa_RetrievePrivateData();
729 /**********************/
731 [public] NTSTATUS lsa_OpenPolicy2 (
732 [in,unique] [string,charset(UTF16)] uint16 *system_name,
733 [in] lsa_ObjectAttribute *attr,
734 [in] uint32 access_mask,
735 [out] policy_handle *handle
738 /**********************/
744 NTSTATUS lsa_GetUserName(
745 [in,unique] [string,charset(UTF16)] uint16 *system_name,
746 [in,out,unique] lsa_String *account_name,
747 [in,out,unique] lsa_StringPointer *authority_name
750 /**********************/
753 NTSTATUS lsa_QueryInfoPolicy2(
754 [in] policy_handle *handle,
755 [in] lsa_PolicyInfo level,
756 [out,unique,switch_is(level)] lsa_PolicyInformation *info
760 NTSTATUS lsa_SetInfoPolicy2(
761 [in] policy_handle *handle,
762 [in] lsa_PolicyInfo level,
763 [in,switch_is(level)] lsa_PolicyInformation *info
766 /**********************/
768 NTSTATUS lsa_QueryTrustedDomainInfoByName(
769 [in] policy_handle *handle,
770 [in] lsa_String trusted_domain,
771 [in] lsa_TrustDomInfoEnum level,
772 [out,unique,switch_is(level)] lsa_TrustedDomainInfo *info
775 /**********************/
777 NTSTATUS lsa_SetTrustedDomainInfoByName(
778 [in] policy_handle *handle,
779 [in] lsa_String trusted_domain,
780 [in] lsa_TrustDomInfoEnum level,
781 [in,unique,switch_is(level)] lsa_TrustedDomainInfo *info
786 /* w2k3 treats max_size as max_domains*82 */
787 const int LSA_ENUM_TRUST_DOMAIN_EX_MULTIPLIER = 82;
791 [size_is(count)] lsa_TrustDomainInfoInfoEx *domains;
794 NTSTATUS lsa_EnumTrustedDomainsEx (
795 [in] policy_handle *handle,
796 [in,out] uint32 *resume_handle,
797 [out] lsa_DomainListEx *domains,
803 NTSTATUS lsa_CreateTrustedDomainEx();
806 NTSTATUS lsa_CloseTrustedDomainEx(
807 [in,out] policy_handle *handle
812 /* w2k3 returns either 0x000bbbd000000000 or 0x000a48e800000000
815 uint32 enforce_restrictions;
816 hyper service_tkt_lifetime;
817 hyper user_tkt_lifetime;
818 hyper user_tkt_renewaltime;
821 } lsa_DomainInfoKerberos;
825 [size_is(blob_size)] uint8 *efs_blob;
829 LSA_DOMAIN_INFO_POLICY_EFS=2,
830 LSA_DOMAIN_INFO_POLICY_KERBEROS=3
831 } lsa_DomainInfoEnum;
833 typedef [switch_type(uint16)] union {
834 [case(LSA_DOMAIN_INFO_POLICY_EFS)] lsa_DomainInfoEfs efs_info;
835 [case(LSA_DOMAIN_INFO_POLICY_KERBEROS)] lsa_DomainInfoKerberos kerberos_info;
836 } lsa_DomainInformationPolicy;
838 NTSTATUS lsa_QueryDomainInformationPolicy(
839 [in] policy_handle *handle,
841 [out,unique,switch_is(level)] lsa_DomainInformationPolicy *info
845 NTSTATUS lsa_SetDomainInformationPolicy(
846 [in] policy_handle *handle,
848 [in,unique,switch_is(level)] lsa_DomainInformationPolicy *info
851 /**********************/
853 NTSTATUS lsa_OpenTrustedDomainByName(
854 [in] policy_handle *handle,
855 [in] lsa_String name,
856 [in] uint32 access_mask,
857 [out] policy_handle *trustdom_handle
861 NTSTATUS lsa_TestCall();
863 /**********************/
867 lsa_SidType sid_type;
871 } lsa_TranslatedName2;
874 [range(0,1000)] uint32 count;
875 [size_is(count)] lsa_TranslatedName2 *names;
876 } lsa_TransNameArray2;
878 [public] NTSTATUS lsa_LookupSids2(
879 [in] policy_handle *handle,
880 [in] lsa_SidArray *sids,
881 [out,unique] lsa_RefDomainList *domains,
882 [in,out] lsa_TransNameArray2 *names,
884 [in,out] uint32 *count,
885 [in] uint32 unknown1,
889 /**********************/
893 lsa_SidType sid_type;
897 } lsa_TranslatedSid2;
900 [range(0,1000)] uint32 count;
901 [size_is(count)] lsa_TranslatedSid2 *sids;
902 } lsa_TransSidArray2;
904 [public] NTSTATUS lsa_LookupNames2 (
905 [in] policy_handle *handle,
906 [in,range(0,1000)] uint32 num_names,
907 [in,size_is(num_names)] lsa_String names[],
908 [out,unique] lsa_RefDomainList *domains,
909 [in,out] lsa_TransSidArray2 *sids,
910 [in] lsa_LookupNamesLevel level,
911 [in,out] uint32 *count,
912 [in] uint32 unknown1,
917 NTSTATUS lsa_CreateTrustedDomainEx2();
920 NTSTATUS lsa_CREDRWRITE();
923 NTSTATUS lsa_CREDRREAD();
926 NTSTATUS lsa_CREDRENUMERATE();
929 NTSTATUS lsa_CREDRWRITEDOMAINCREDENTIALS();
932 NTSTATUS lsa_CREDRREADDOMAINCREDENTIALS();
935 NTSTATUS lsa_CREDRDELETE();
938 NTSTATUS lsa_CREDRGETTARGETINFO();
941 NTSTATUS lsa_CREDRPROFILELOADED();
943 /**********************/
946 lsa_SidType sid_type;
950 } lsa_TranslatedSid3;
953 [range(0,1000)] uint32 count;
954 [size_is(count)] lsa_TranslatedSid3 *sids;
955 } lsa_TransSidArray3;
957 [public] NTSTATUS lsa_LookupNames3 (
958 [in] policy_handle *handle,
959 [in,range(0,1000)] uint32 num_names,
960 [in,size_is(num_names)] lsa_String names[],
961 [out,unique] lsa_RefDomainList *domains,
962 [in,out] lsa_TransSidArray3 *sids,
963 [in] lsa_LookupNamesLevel level,
964 [in,out] uint32 *count,
965 [in] uint32 unknown1,
970 NTSTATUS lsa_CREDRGETSESSIONTYPES();
973 NTSTATUS lsa_LSARREGISTERAUDITEVENT();
976 NTSTATUS lsa_LSARGENAUDITEVENT();
979 NTSTATUS lsa_LSARUNREGISTERAUDITEVENT();
983 [range(0,131072)] uint32 length;
984 [size_is(length)] uint8 *data;
985 } lsa_ForestTrustBinaryData;
988 dom_sid2 *domain_sid;
989 lsa_StringLarge dns_domain_name;
990 lsa_StringLarge netbios_domain_name;
991 } lsa_ForestTrustDomainInfo;
993 typedef [switch_type(uint32)] union {
994 [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME)] lsa_String top_level_name;
995 [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX)] lsa_StringLarge top_level_name_ex;
996 [case(LSA_FOREST_TRUST_DOMAIN_INFO)] lsa_ForestTrustDomainInfo domain_info;
997 [default] lsa_ForestTrustBinaryData data;
998 } lsa_ForestTrustData;
1000 typedef [v1_enum] enum {
1001 LSA_FOREST_TRUST_TOP_LEVEL_NAME = 0,
1002 LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX = 1,
1003 LSA_FOREST_TRUST_DOMAIN_INFO = 2,
1004 LSA_FOREST_TRUST_RECORD_TYPE_LAST = 3
1005 } lsa_ForestTrustRecordType;
1009 lsa_ForestTrustRecordType level;
1011 [switch_is(level)] lsa_ForestTrustData forest_trust_data;
1012 } lsa_ForestTrustRecord;
1014 typedef [public] struct {
1015 [range(0,4000)] uint32 count;
1016 [size_is(count)] lsa_ForestTrustRecord **entries;
1017 } lsa_ForestTrustInformation;
1019 NTSTATUS lsa_lsaRQueryForestTrustInformation(
1020 [in] policy_handle *handle,
1021 [in,ref] lsa_String *trusted_domain_name,
1022 [in] uint16 unknown, /* level ? */
1023 [out,ref] lsa_ForestTrustInformation **forest_trust_info
1027 NTSTATUS lsa_LSARSETFORESTTRUSTINFORMATION();
1030 NTSTATUS lsa_CREDRRENAME();
1035 [public] NTSTATUS lsa_LookupSids3(
1036 [in] lsa_SidArray *sids,
1037 [out,unique] lsa_RefDomainList *domains,
1038 [in,out] lsa_TransNameArray2 *names,
1040 [in,out] uint32 *count,
1041 [in] uint32 unknown1,
1042 [in] uint32 unknown2
1046 NTSTATUS lsa_LookupNames4(
1047 [in,range(0,1000)] uint32 num_names,
1048 [in,size_is(num_names)] lsa_String names[],
1049 [out,unique] lsa_RefDomainList *domains,
1050 [in,out] lsa_TransSidArray3 *sids,
1051 [in] lsa_LookupNamesLevel level,
1052 [in,out] uint32 *count,
1053 [in] uint32 unknown1,
1054 [in] uint32 unknown2
1058 NTSTATUS lsa_LSAROPENPOLICYSCE();
1061 NTSTATUS lsa_LSARADTREGISTERSECURITYEVENTSOURCE();
1064 NTSTATUS lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE();
1067 NTSTATUS lsa_LSARADTREPORTSECURITYEVENT();