4 lsa interface definition
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(string)+1))] 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 ascstr_noterm *string;
44 [in,out] policy_handle *handle
50 [public] NTSTATUS lsa_Delete (
51 [in] policy_handle *handle
69 [size_is(count)] lsa_PrivEntry *privs;
72 [public] NTSTATUS lsa_EnumPrivs (
73 [in] policy_handle *handle,
74 [in,out,ref] uint32 *resume_handle,
75 [out,ref] lsa_PrivArray *privs,
82 NTSTATUS lsa_QuerySecurity (
83 [in] policy_handle *handle,
84 [in] security_secinfo sec_info,
85 [out,ref] sec_desc_buf **sdbuf
91 NTSTATUS lsa_SetSecObj(
92 [in] policy_handle *handle,
93 [in] security_secinfo sec_info,
94 [in,ref] sec_desc_buf *sdbuf
99 NTSTATUS lsa_ChangePassword ();
105 uint32 len; /* ignored */
106 uint16 impersonation_level;
108 uint8 effective_only;
112 uint32 len; /* ignored */
114 [string,charset(UTF16)] uint16 *object_name;
116 security_descriptor *sec_desc;
117 lsa_QosInfo *sec_qos;
118 } lsa_ObjectAttribute;
120 /* notice the screwup with the system_name - thats why MS created
122 [public] NTSTATUS lsa_OpenPolicy (
123 [in,unique] uint16 *system_name,
124 [in] lsa_ObjectAttribute *attr,
125 [in] uint32 access_mask,
126 [out] policy_handle *handle
137 NTTIME retention_time;
138 uint8 shutdown_in_progress;
139 NTTIME time_to_shutdown;
140 uint32 next_audit_record;
144 typedef [v1_enum] enum {
145 LSA_AUDIT_POLICY_NONE=0,
146 LSA_AUDIT_POLICY_SUCCESS=1,
147 LSA_AUDIT_POLICY_FAILURE=2,
148 LSA_AUDIT_POLICY_ALL=(LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE),
149 LSA_AUDIT_POLICY_CLEAR=4
150 } lsa_PolicyAuditPolicy;
153 LSA_AUDIT_CATEGORY_SYSTEM = 0,
154 LSA_AUDIT_CATEGORY_LOGON = 1,
155 LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS = 2,
156 LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS = 3,
157 LSA_AUDIT_CATEGORY_PROCCESS_TRACKING = 4,
158 LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES = 5,
159 LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT = 6,
160 LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS = 7, /* only in win2k/2k3 */
161 LSA_AUDIT_CATEGORY_ACCOUNT_LOGON = 8 /* only in win2k/2k3 */
162 } lsa_PolicyAuditEventType;
165 uint32 auditing_mode;
166 [size_is(count)] lsa_PolicyAuditPolicy *settings;
168 } lsa_AuditEventsInfo;
171 lsa_StringLarge name;
180 uint16 unknown; /* an midl padding bug? */
187 } lsa_ReplicaSourceInfo;
191 uint32 non_paged_pool;
196 } lsa_DefaultQuotaInfo;
200 NTTIME db_create_time;
201 } lsa_ModificationInfo;
204 uint8 shutdown_on_full;
205 } lsa_AuditFullSetInfo;
208 uint16 unknown; /* an midl padding bug? */
209 uint8 shutdown_on_full;
211 } lsa_AuditFullQueryInfo;
214 /* it's important that we use the lsa_StringLarge here,
215 * because otherwise windows clients result with such dns hostnames
216 * e.g. w2k3-client.samba4.samba.orgsamba4.samba.org
218 * w2k3-client.samba4.samba.org
220 lsa_StringLarge name;
221 lsa_StringLarge dns_domain;
222 lsa_StringLarge dns_forest;
228 LSA_POLICY_INFO_AUDIT_LOG=1,
229 LSA_POLICY_INFO_AUDIT_EVENTS=2,
230 LSA_POLICY_INFO_DOMAIN=3,
231 LSA_POLICY_INFO_PD=4,
232 LSA_POLICY_INFO_ACCOUNT_DOMAIN=5,
233 LSA_POLICY_INFO_ROLE=6,
234 LSA_POLICY_INFO_REPLICA=7,
235 LSA_POLICY_INFO_QUOTA=8,
236 LSA_POLICY_INFO_DB=9,
237 LSA_POLICY_INFO_AUDIT_FULL_SET=10,
238 LSA_POLICY_INFO_AUDIT_FULL_QUERY=11,
239 LSA_POLICY_INFO_DNS=12
242 typedef [switch_type(uint16)] union {
243 [case(LSA_POLICY_INFO_AUDIT_LOG)] lsa_AuditLogInfo audit_log;
244 [case(LSA_POLICY_INFO_AUDIT_EVENTS)] lsa_AuditEventsInfo audit_events;
245 [case(LSA_POLICY_INFO_DOMAIN)] lsa_DomainInfo domain;
246 [case(LSA_POLICY_INFO_PD)] lsa_PDAccountInfo pd;
247 [case(LSA_POLICY_INFO_ACCOUNT_DOMAIN)] lsa_DomainInfo account_domain;
248 [case(LSA_POLICY_INFO_ROLE)] lsa_ServerRole role;
249 [case(LSA_POLICY_INFO_REPLICA)] lsa_ReplicaSourceInfo replica;
250 [case(LSA_POLICY_INFO_QUOTA)] lsa_DefaultQuotaInfo quota;
251 [case(LSA_POLICY_INFO_DB)] lsa_ModificationInfo db;
252 [case(LSA_POLICY_INFO_AUDIT_FULL_SET)] lsa_AuditFullSetInfo auditfullset;
253 [case(LSA_POLICY_INFO_AUDIT_FULL_QUERY)] lsa_AuditFullQueryInfo auditfullquery;
254 [case(LSA_POLICY_INFO_DNS)] lsa_DnsDomainInfo dns;
255 } lsa_PolicyInformation;
257 NTSTATUS lsa_QueryInfoPolicy(
258 [in] policy_handle *handle,
259 [in] lsa_PolicyInfo level,
260 [out,ref,switch_is(level)] lsa_PolicyInformation **info
265 NTSTATUS lsa_SetInfoPolicy (
266 [in] policy_handle *handle,
267 [in] lsa_PolicyInfo level,
268 [in,switch_is(level)] lsa_PolicyInformation *info
273 NTSTATUS lsa_ClearAuditLog ();
277 [public] NTSTATUS lsa_CreateAccount (
278 [in] policy_handle *handle,
279 [in,ref] dom_sid2 *sid,
280 [in] uint32 access_mask,
281 [out] policy_handle *acct_handle
285 /* NOTE: This only returns accounts that have at least
293 typedef [public] struct {
294 [range(0,1000)] uint32 num_sids;
295 [size_is(num_sids)] lsa_SidPtr *sids;
298 [public] NTSTATUS lsa_EnumAccounts (
299 [in] policy_handle *handle,
300 [in,out,ref] uint32 *resume_handle,
301 [out,ref] lsa_SidArray *sids,
302 [in,range(0,8192)] uint32 num_entries
306 /*************************************************/
309 [public] NTSTATUS lsa_CreateTrustedDomain(
310 [in] policy_handle *handle,
311 [in] lsa_DomainInfo *info,
312 [in] uint32 access_mask,
313 [out] policy_handle *trustdom_handle
320 /* w2k3 treats max_size as max_domains*60 */
321 const int LSA_ENUM_TRUST_DOMAIN_MULTIPLIER = 60;
325 [size_is(count)] lsa_DomainInfo *domains;
328 NTSTATUS lsa_EnumTrustDom (
329 [in] policy_handle *handle,
330 [in,out,ref] uint32 *resume_handle,
331 [out,ref] lsa_DomainList *domains,
339 SID_NAME_USE_NONE = 0,/* NOTUSED */
340 SID_NAME_USER = 1, /* user */
341 SID_NAME_DOM_GRP = 2, /* domain group */
342 SID_NAME_DOMAIN = 3, /* domain: don't know what this is */
343 SID_NAME_ALIAS = 4, /* local group */
344 SID_NAME_WKN_GRP = 5, /* well-known group */
345 SID_NAME_DELETED = 6, /* deleted account: needed for c2 rating */
346 SID_NAME_INVALID = 7, /* invalid account */
347 SID_NAME_UNKNOWN = 8, /* oops. */
348 SID_NAME_COMPUTER = 9 /* machine */
352 lsa_SidType sid_type;
358 [range(0,1000)] uint32 count;
359 [size_is(count)] lsa_TranslatedSid *sids;
362 const int LSA_REF_DOMAIN_LIST_MULTIPLIER = 32;
364 [range(0,1000)] uint32 count;
365 [size_is(count)] lsa_DomainInfo *domains;
369 /* Level 1: Ask everywhere
370 * Level 2: Ask domain and trusted domains, no builtin and wkn
371 * Level 3: Only ask domain
372 * Level 4: W2k3ad: Only ask AD trusts
373 * Level 5: Only ask transitive forest trusts
378 LSA_LOOKUP_NAMES_ALL = 1,
379 LSA_LOOKUP_NAMES_DOMAINS_ONLY = 2,
380 LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY = 3,
381 LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY = 4,
382 LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY = 5,
383 LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2 = 6
384 } lsa_LookupNamesLevel;
386 [public] NTSTATUS lsa_LookupNames (
387 [in] policy_handle *handle,
388 [in,range(0,1000)] uint32 num_names,
389 [in,size_is(num_names)] lsa_String names[],
390 [out,ref] lsa_RefDomainList **domains,
391 [in,out,ref] lsa_TransSidArray *sids,
392 [in] lsa_LookupNamesLevel level,
393 [in,out,ref] uint32 *count
401 lsa_SidType sid_type;
404 } lsa_TranslatedName;
407 [range(0,1000)] uint32 count;
408 [size_is(count)] lsa_TranslatedName *names;
409 } lsa_TransNameArray;
411 [public] NTSTATUS lsa_LookupSids (
412 [in] policy_handle *handle,
413 [in] lsa_SidArray *sids,
414 [out,unique] lsa_RefDomainList *domains,
415 [in,out] lsa_TransNameArray *names,
417 [in,out] uint32 *count
422 [public] NTSTATUS lsa_CreateSecret(
423 [in] policy_handle *handle,
424 [in] lsa_String name,
425 [in] uint32 access_mask,
426 [out] policy_handle *sec_handle
430 /*****************************************/
432 NTSTATUS lsa_OpenAccount(
433 [in] policy_handle *handle,
434 [in,ref] dom_sid2 *sid,
435 [in] uint32 access_mask,
436 [out] policy_handle *acct_handle
440 /****************************************/
449 [range(0,1000)] uint32 count;
451 [size_is(count)] lsa_LUIDAttribute set[*];
454 NTSTATUS lsa_EnumPrivsAccount (
455 [in] policy_handle *handle,
456 [out,ref] lsa_PrivilegeSet **privs
460 /****************************************/
462 NTSTATUS lsa_AddPrivilegesToAccount(
463 [in] policy_handle *handle,
464 [in,ref] lsa_PrivilegeSet *privs
468 /****************************************/
470 NTSTATUS lsa_RemovePrivilegesFromAccount(
471 [in] policy_handle *handle,
472 [in] uint8 remove_all,
473 [in,unique] lsa_PrivilegeSet *privs
477 NTSTATUS lsa_GetQuotasForAccount();
480 NTSTATUS lsa_SetQuotasForAccount();
483 NTSTATUS lsa_GetSystemAccessAccount(
484 [in] policy_handle *handle,
485 [out,ref] uint32 *access_mask
489 NTSTATUS lsa_SetSystemAccessAccount(
490 [in] policy_handle *handle,
491 [in] uint32 access_mask
495 NTSTATUS lsa_OpenTrustedDomain(
496 [in] policy_handle *handle,
498 [in] uint32 access_mask,
499 [out] policy_handle *trustdom_handle
502 typedef [flag(NDR_PAHEX)] struct {
505 [size_is(size),length_is(length)] uint8 *data;
508 typedef [flag(NDR_PAHEX)] struct {
509 [range(0,65536)] uint32 size;
510 [size_is(size)] uint8 *data;
514 LSA_TRUSTED_DOMAIN_INFO_NAME = 1,
515 LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS_INFO = 2,
516 LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET = 3,
517 LSA_TRUSTED_DOMAIN_INFO_PASSWORD = 4,
518 LSA_TRUSTED_DOMAIN_INFO_BASIC = 5,
519 LSA_TRUSTED_DOMAIN_INFO_INFO_EX = 6,
520 LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO = 7,
521 LSA_TRUSTED_DOMAIN_INFO_FULL_INFO = 8,
522 LSA_TRUSTED_DOMAIN_INFO_11 = 11,
523 LSA_TRUSTED_DOMAIN_INFO_INFO_ALL = 12
524 } lsa_TrustDomInfoEnum;
527 lsa_StringLarge netbios_name;
528 } lsa_TrustDomainInfoName;
532 } lsa_TrustDomainInfoPosixOffset;
535 lsa_DATA_BUF *password;
536 lsa_DATA_BUF *old_password;
537 } lsa_TrustDomainInfoPassword;
540 lsa_String netbios_name;
542 } lsa_TrustDomainInfoBasic;
545 lsa_StringLarge domain_name;
546 lsa_StringLarge netbios_name;
548 uint32 trust_direction;
550 uint32 trust_attributes;
551 } lsa_TrustDomainInfoInfoEx;
554 NTTIME_hyper last_update_time;
557 } lsa_TrustDomainInfoBuffer;
560 uint32 incoming_count;
561 lsa_TrustDomainInfoBuffer *incoming_current_auth_info;
562 lsa_TrustDomainInfoBuffer *incoming_previous_auth_info;
563 uint32 outgoing_count;
564 lsa_TrustDomainInfoBuffer *outgoing_current_auth_info;
565 lsa_TrustDomainInfoBuffer *outgoing_previous_auth_info;
566 } lsa_TrustDomainInfoAuthInfo;
569 lsa_TrustDomainInfoInfoEx info_ex;
570 lsa_TrustDomainInfoPosixOffset posix_offset;
571 lsa_TrustDomainInfoAuthInfo auth_info;
572 } lsa_TrustDomainInfoFullInfo;
575 lsa_TrustDomainInfoInfoEx info_ex;
577 } lsa_TrustDomainInfo11;
580 lsa_TrustDomainInfoInfoEx info_ex;
582 lsa_TrustDomainInfoPosixOffset posix_offset;
583 lsa_TrustDomainInfoAuthInfo auth_info;
584 } lsa_TrustDomainInfoInfoAll;
586 typedef [switch_type(lsa_TrustDomInfoEnum)] union {
587 [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] lsa_TrustDomainInfoName name;
588 [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] lsa_TrustDomainInfoPosixOffset posix_offset;
589 [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] lsa_TrustDomainInfoPassword password;
590 [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)] lsa_TrustDomainInfoBasic info_basic;
591 [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)] lsa_TrustDomainInfoInfoEx info_ex;
592 [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)] lsa_TrustDomainInfoAuthInfo auth_info;
593 [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)] lsa_TrustDomainInfoFullInfo full_info;
594 [case(LSA_TRUSTED_DOMAIN_INFO_11)] lsa_TrustDomainInfo11 info11;
595 [case(LSA_TRUSTED_DOMAIN_INFO_INFO_ALL)] lsa_TrustDomainInfoInfoAll info_all;
596 } lsa_TrustedDomainInfo;
599 NTSTATUS lsa_QueryTrustedDomainInfo(
600 [in] policy_handle *trustdom_handle,
601 [in] lsa_TrustDomInfoEnum level,
602 [out,switch_is(level),unique] lsa_TrustedDomainInfo *info
606 NTSTATUS lsa_SetInformationTrustedDomain();
609 [public] NTSTATUS lsa_OpenSecret(
610 [in] policy_handle *handle,
611 [in] lsa_String name,
612 [in] uint32 access_mask,
613 [out] policy_handle *sec_handle
618 [public] NTSTATUS lsa_SetSecret(
619 [in] policy_handle *sec_handle,
620 [in,unique] lsa_DATA_BUF *new_val,
621 [in,unique] lsa_DATA_BUF *old_val
629 [public] NTSTATUS lsa_QuerySecret (
630 [in] policy_handle *sec_handle,
631 [in,out,unique] lsa_DATA_BUF_PTR *new_val,
632 [in,out,unique] NTTIME_hyper *new_mtime,
633 [in,out,unique] lsa_DATA_BUF_PTR *old_val,
634 [in,out,unique] NTTIME_hyper *old_mtime
638 NTSTATUS lsa_LookupPrivValue(
639 [in] policy_handle *handle,
640 [in,ref] lsa_String *name,
641 [out,ref] lsa_LUID *luid
646 NTSTATUS lsa_LookupPrivName (
647 [in] policy_handle *handle,
649 [out,unique] lsa_StringLarge *name
653 /*******************/
655 NTSTATUS lsa_LookupPrivDisplayName (
656 [in] policy_handle *handle,
657 [in,ref] lsa_String *name,
658 [in] uint16 language_id,
659 [in] uint16 language_id_sys,
660 [out,ref] lsa_StringLarge **disp_name,
661 /* see http://www.microsoft.com/globaldev/nlsweb/ for
662 language definitions */
663 [out,ref] uint16 *returned_language_id
667 NTSTATUS lsa_DeleteObject(
668 [in,out] policy_handle *handle
671 /*******************/
673 NTSTATUS lsa_EnumAccountsWithUserRight (
674 [in] policy_handle *handle,
675 [in,unique] lsa_String *name,
676 [out] lsa_SidArray *sids
681 [string,charset(UTF16)] uint16 *name;
682 } lsa_RightAttribute;
685 [range(0,256)] uint32 count;
686 [size_is(count)] lsa_StringLarge *names;
689 NTSTATUS lsa_EnumAccountRights (
690 [in] policy_handle *handle,
691 [in,ref] dom_sid2 *sid,
692 [out,ref] lsa_RightSet *rights
696 /**********************/
698 NTSTATUS lsa_AddAccountRights (
699 [in] policy_handle *handle,
700 [in,ref] dom_sid2 *sid,
701 [in,ref] lsa_RightSet *rights
704 /**********************/
706 NTSTATUS lsa_RemoveAccountRights (
707 [in] policy_handle *handle,
708 [in,ref] dom_sid2 *sid,
709 [in] uint8 remove_all,
710 [in,ref] lsa_RightSet *rights
714 NTSTATUS lsa_QueryTrustedDomainInfoBySid(
715 [in] policy_handle *handle,
716 [in] dom_sid2 *dom_sid,
717 [in] lsa_TrustDomInfoEnum level,
718 [out,switch_is(level),unique] lsa_TrustedDomainInfo *info
722 NTSTATUS lsa_SetTrustedDomainInfo();
724 NTSTATUS lsa_DeleteTrustedDomain(
725 [in] policy_handle *handle,
726 [in] dom_sid2 *dom_sid
730 NTSTATUS lsa_StorePrivateData();
732 NTSTATUS lsa_RetrievePrivateData();
735 /**********************/
737 [public] NTSTATUS lsa_OpenPolicy2 (
738 [in,unique] [string,charset(UTF16)] uint16 *system_name,
739 [in] lsa_ObjectAttribute *attr,
740 [in] uint32 access_mask,
741 [out] policy_handle *handle
744 /**********************/
746 NTSTATUS lsa_GetUserName(
747 [in,unique] [string,charset(UTF16)] uint16 *system_name,
748 [in,out,ref] lsa_String **account_name,
749 [in,out,unique] lsa_String **authority_name
752 /**********************/
755 NTSTATUS lsa_QueryInfoPolicy2(
756 [in] policy_handle *handle,
757 [in] lsa_PolicyInfo level,
758 [out,ref,switch_is(level)] lsa_PolicyInformation **info
762 NTSTATUS lsa_SetInfoPolicy2(
763 [in] policy_handle *handle,
764 [in] lsa_PolicyInfo level,
765 [in,switch_is(level)] lsa_PolicyInformation *info
768 /**********************/
770 NTSTATUS lsa_QueryTrustedDomainInfoByName(
771 [in] policy_handle *handle,
772 [in,ref] lsa_String *trusted_domain,
773 [in] lsa_TrustDomInfoEnum level,
774 [out,ref,switch_is(level)] lsa_TrustedDomainInfo *info
777 /**********************/
779 NTSTATUS lsa_SetTrustedDomainInfoByName(
780 [in] policy_handle *handle,
781 [in] lsa_String trusted_domain,
782 [in] lsa_TrustDomInfoEnum level,
783 [in,unique,switch_is(level)] lsa_TrustedDomainInfo *info
788 /* w2k3 treats max_size as max_domains*82 */
789 const int LSA_ENUM_TRUST_DOMAIN_EX_MULTIPLIER = 82;
793 [size_is(count)] lsa_TrustDomainInfoInfoEx *domains;
796 NTSTATUS lsa_EnumTrustedDomainsEx (
797 [in] policy_handle *handle,
798 [in,out] uint32 *resume_handle,
799 [out] lsa_DomainListEx *domains,
805 NTSTATUS lsa_CreateTrustedDomainEx();
808 NTSTATUS lsa_CloseTrustedDomainEx(
809 [in,out] policy_handle *handle
814 /* w2k3 returns either 0x000bbbd000000000 or 0x000a48e800000000
817 uint32 enforce_restrictions;
818 hyper service_tkt_lifetime;
819 hyper user_tkt_lifetime;
820 hyper user_tkt_renewaltime;
823 } lsa_DomainInfoKerberos;
827 [size_is(blob_size)] uint8 *efs_blob;
831 LSA_DOMAIN_INFO_POLICY_EFS=2,
832 LSA_DOMAIN_INFO_POLICY_KERBEROS=3
833 } lsa_DomainInfoEnum;
835 typedef [switch_type(uint16)] union {
836 [case(LSA_DOMAIN_INFO_POLICY_EFS)] lsa_DomainInfoEfs efs_info;
837 [case(LSA_DOMAIN_INFO_POLICY_KERBEROS)] lsa_DomainInfoKerberos kerberos_info;
838 } lsa_DomainInformationPolicy;
840 NTSTATUS lsa_QueryDomainInformationPolicy(
841 [in] policy_handle *handle,
843 [out,unique,switch_is(level)] lsa_DomainInformationPolicy *info
847 NTSTATUS lsa_SetDomainInformationPolicy(
848 [in] policy_handle *handle,
850 [in,unique,switch_is(level)] lsa_DomainInformationPolicy *info
853 /**********************/
855 NTSTATUS lsa_OpenTrustedDomainByName(
856 [in] policy_handle *handle,
857 [in] lsa_String name,
858 [in] uint32 access_mask,
859 [out] policy_handle *trustdom_handle
863 NTSTATUS lsa_TestCall();
865 /**********************/
869 lsa_SidType sid_type;
873 } lsa_TranslatedName2;
876 [range(0,1000)] uint32 count;
877 [size_is(count)] lsa_TranslatedName2 *names;
878 } lsa_TransNameArray2;
880 [public] NTSTATUS lsa_LookupSids2(
881 [in] policy_handle *handle,
882 [in] lsa_SidArray *sids,
883 [out,unique] lsa_RefDomainList *domains,
884 [in,out] lsa_TransNameArray2 *names,
886 [in,out] uint32 *count,
887 [in] uint32 unknown1,
891 /**********************/
895 lsa_SidType sid_type;
899 } lsa_TranslatedSid2;
902 [range(0,1000)] uint32 count;
903 [size_is(count)] lsa_TranslatedSid2 *sids;
904 } lsa_TransSidArray2;
906 [public] NTSTATUS lsa_LookupNames2 (
907 [in] policy_handle *handle,
908 [in,range(0,1000)] uint32 num_names,
909 [in,size_is(num_names)] lsa_String names[],
910 [out,unique] lsa_RefDomainList *domains,
911 [in,out] lsa_TransSidArray2 *sids,
912 [in] lsa_LookupNamesLevel level,
913 [in,out] uint32 *count,
914 [in] uint32 unknown1,
919 NTSTATUS lsa_CreateTrustedDomainEx2();
922 NTSTATUS lsa_CREDRWRITE();
925 NTSTATUS lsa_CREDRREAD();
928 NTSTATUS lsa_CREDRENUMERATE();
931 NTSTATUS lsa_CREDRWRITEDOMAINCREDENTIALS();
934 NTSTATUS lsa_CREDRREADDOMAINCREDENTIALS();
937 NTSTATUS lsa_CREDRDELETE();
940 NTSTATUS lsa_CREDRGETTARGETINFO();
943 NTSTATUS lsa_CREDRPROFILELOADED();
945 /**********************/
948 lsa_SidType sid_type;
952 } lsa_TranslatedSid3;
955 [range(0,1000)] uint32 count;
956 [size_is(count)] lsa_TranslatedSid3 *sids;
957 } lsa_TransSidArray3;
959 [public] NTSTATUS lsa_LookupNames3 (
960 [in] policy_handle *handle,
961 [in,range(0,1000)] uint32 num_names,
962 [in,size_is(num_names)] lsa_String names[],
963 [out,unique] lsa_RefDomainList *domains,
964 [in,out] lsa_TransSidArray3 *sids,
965 [in] lsa_LookupNamesLevel level,
966 [in,out] uint32 *count,
967 [in] uint32 unknown1,
972 NTSTATUS lsa_CREDRGETSESSIONTYPES();
975 NTSTATUS lsa_LSARREGISTERAUDITEVENT();
978 NTSTATUS lsa_LSARGENAUDITEVENT();
981 NTSTATUS lsa_LSARUNREGISTERAUDITEVENT();
985 [range(0,131072)] uint32 length;
986 [size_is(length)] uint8 *data;
987 } lsa_ForestTrustBinaryData;
990 dom_sid2 *domain_sid;
991 lsa_StringLarge dns_domain_name;
992 lsa_StringLarge netbios_domain_name;
993 } lsa_ForestTrustDomainInfo;
995 typedef [switch_type(uint32)] union {
996 [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME)] lsa_String top_level_name;
997 [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX)] lsa_StringLarge top_level_name_ex;
998 [case(LSA_FOREST_TRUST_DOMAIN_INFO)] lsa_ForestTrustDomainInfo domain_info;
999 [default] lsa_ForestTrustBinaryData data;
1000 } lsa_ForestTrustData;
1002 typedef [v1_enum] enum {
1003 LSA_FOREST_TRUST_TOP_LEVEL_NAME = 0,
1004 LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX = 1,
1005 LSA_FOREST_TRUST_DOMAIN_INFO = 2,
1006 LSA_FOREST_TRUST_RECORD_TYPE_LAST = 3
1007 } lsa_ForestTrustRecordType;
1011 lsa_ForestTrustRecordType level;
1013 [switch_is(level)] lsa_ForestTrustData forest_trust_data;
1014 } lsa_ForestTrustRecord;
1016 typedef [public] struct {
1017 [range(0,4000)] uint32 count;
1018 [size_is(count)] lsa_ForestTrustRecord **entries;
1019 } lsa_ForestTrustInformation;
1021 NTSTATUS lsa_lsaRQueryForestTrustInformation(
1022 [in] policy_handle *handle,
1023 [in,ref] lsa_String *trusted_domain_name,
1024 [in] uint16 unknown, /* level ? */
1025 [out,ref] lsa_ForestTrustInformation **forest_trust_info
1029 NTSTATUS lsa_LSARSETFORESTTRUSTINFORMATION();
1032 NTSTATUS lsa_CREDRRENAME();
1037 [public] NTSTATUS lsa_LookupSids3(
1038 [in] lsa_SidArray *sids,
1039 [out,unique] lsa_RefDomainList *domains,
1040 [in,out] lsa_TransNameArray2 *names,
1042 [in,out] uint32 *count,
1043 [in] uint32 unknown1,
1044 [in] uint32 unknown2
1048 NTSTATUS lsa_LookupNames4(
1049 [in,range(0,1000)] uint32 num_names,
1050 [in,size_is(num_names)] lsa_String names[],
1051 [out,unique] lsa_RefDomainList *domains,
1052 [in,out] lsa_TransSidArray3 *sids,
1053 [in] lsa_LookupNamesLevel level,
1054 [in,out] uint32 *count,
1055 [in] uint32 unknown1,
1056 [in] uint32 unknown2
1060 NTSTATUS lsa_LSAROPENPOLICYSCE();
1063 NTSTATUS lsa_LSARADTREGISTERSECURITYEVENTSOURCE();
1066 NTSTATUS lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE();
1069 NTSTATUS lsa_LSARADTREPORTSECURITYEVENT();