2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS system libraries
4 * FILE: dll/win32/advapi32/sec/lsa.c
5 * PURPOSE: Local security authority functions
6 * PROGRAMMER: Emanuele Aliberti
10 * 20030202 KJK compressed stubs
14 WINE_DEFAULT_DEBUG_CHANNEL(advapi
);
17 static BOOL
LsapIsLocalComputer(PLSA_UNICODE_STRING ServerName
)
19 DWORD dwSize
= MAX_COMPUTERNAME_LENGTH
+ 1;
23 if (ServerName
== NULL
|| ServerName
->Length
== 0 || ServerName
->Buffer
== NULL
)
26 buf
= HeapAlloc(GetProcessHeap(), 0, dwSize
* sizeof(WCHAR
));
27 Result
= GetComputerNameW(buf
, &dwSize
);
28 if (Result
&& (ServerName
->Buffer
[0] == '\\') && (ServerName
->Buffer
[1] == '\\'))
30 Result
= Result
&& !lstrcmpW(ServerName
->Buffer
, buf
);
31 HeapFree(GetProcessHeap(), 0, buf
);
38 PLSAPR_SERVER_NAME_bind(PLSAPR_SERVER_NAME pszSystemName
)
40 handle_t hBinding
= NULL
;
41 LPWSTR pszStringBinding
;
44 TRACE("PLSAPR_SERVER_NAME_bind() called\n");
46 status
= RpcStringBindingComposeW(NULL
,
54 TRACE("RpcStringBindingCompose returned 0x%x\n", status
);
58 /* Set the binding handle that will be used to bind to the server. */
59 status
= RpcBindingFromStringBindingW(pszStringBinding
,
63 TRACE("RpcBindingFromStringBinding returned 0x%x\n", status
);
66 status
= RpcStringFreeW(&pszStringBinding
);
69 TRACE("RpcStringFree returned 0x%x\n", status
);
77 PLSAPR_SERVER_NAME_unbind(PLSAPR_SERVER_NAME pszSystemName
,
82 TRACE("PLSAPR_SERVER_NAME_unbind() called\n");
84 status
= RpcBindingFree(&hBinding
);
87 TRACE("RpcBindingFree returned 0x%x\n", status
);
97 LsaClose(IN LSA_HANDLE ObjectHandle
)
101 TRACE("LsaClose(0x%p) called\n", ObjectHandle
);
105 Status
= LsarClose((PLSAPR_HANDLE
)&ObjectHandle
);
107 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
109 Status
= I_RpcMapWin32Status(RpcExceptionCode());
122 LsaDelete(IN LSA_HANDLE ObjectHandle
)
126 TRACE("LsaDelete(0x%p) called\n", ObjectHandle
);
130 Status
= LsarDelete((LSAPR_HANDLE
)ObjectHandle
);
132 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
134 Status
= I_RpcMapWin32Status(RpcExceptionCode());
147 LsaAddAccountRights(IN LSA_HANDLE PolicyHandle
,
149 IN PLSA_UNICODE_STRING UserRights
,
150 IN ULONG CountOfRights
)
152 LSAPR_USER_RIGHT_SET UserRightSet
;
155 TRACE("(%p,%p,%p,0x%08x) stub\n", PolicyHandle
, AccountSid
, UserRights
, CountOfRights
);
157 UserRightSet
.Entries
= CountOfRights
;
158 UserRightSet
.UserRights
= (PRPC_UNICODE_STRING
)UserRights
;
162 Status
= LsarAddAccountRights((LSAPR_HANDLE
)PolicyHandle
,
163 (PRPC_SID
)AccountSid
,
167 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
169 Status
= I_RpcMapWin32Status(RpcExceptionCode());
182 LsaAddPrivilegesToAccount(IN LSA_HANDLE AccountHandle
,
183 IN PPRIVILEGE_SET PrivilegeSet
)
187 TRACE("(%p,%p) stub\n", AccountHandle
, PrivilegeSet
);
191 Status
= LsarAddPrivilegesToAccount((LSAPR_HANDLE
)AccountHandle
,
192 (PLSAPR_PRIVILEGE_SET
)PrivilegeSet
);
194 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
196 Status
= I_RpcMapWin32Status(RpcExceptionCode());
209 LsaCreateAccount(IN LSA_HANDLE PolicyHandle
,
212 OUT PLSA_HANDLE AccountHandle
)
216 TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle
, AccountSid
, Flags
, AccountHandle
);
220 Status
= LsarCreateAccount((LSAPR_HANDLE
)PolicyHandle
,
225 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
227 Status
= I_RpcMapWin32Status(RpcExceptionCode());
240 LsaCreateTrustedDomain(IN LSA_HANDLE PolicyHandle
,
241 IN PLSA_TRUST_INFORMATION TrustedDomainInformation
,
242 IN ACCESS_MASK DesiredAccess
,
243 OUT PLSA_HANDLE TrustedDomainHandle
)
247 TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle
, TrustedDomainInformation
,
248 DesiredAccess
, TrustedDomainHandle
);
252 Status
= LsarCreateTrustedDomain((LSAPR_HANDLE
)PolicyHandle
,
253 (PLSAPR_TRUST_INFORMATION
)TrustedDomainInformation
,
255 (PLSAPR_HANDLE
)TrustedDomainHandle
);
257 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
259 Status
= I_RpcMapWin32Status(RpcExceptionCode());
272 LsaCreateTrustedDomainEx(
273 LSA_HANDLE PolicyHandle
,
274 PTRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation
,
275 PTRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation
,
276 ACCESS_MASK DesiredAccess
,
277 PLSA_HANDLE TrustedDomainHandle
)
279 FIXME("(%p,%p,%p,0x%08x,%p) stub\n", PolicyHandle
, TrustedDomainInformation
, AuthenticationInformation
,
280 DesiredAccess
, TrustedDomainHandle
);
281 return STATUS_SUCCESS
;
290 LsaDeleteTrustedDomain(IN LSA_HANDLE PolicyHandle
,
291 IN PSID TrustedDomainSid
)
295 TRACE("(%p,%p)\n", PolicyHandle
, TrustedDomainSid
);
299 Status
= LsarDeleteTrustedDomain((LSAPR_HANDLE
)PolicyHandle
,
302 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
304 Status
= I_RpcMapWin32Status(RpcExceptionCode());
317 LsaEnumerateAccountRights(IN LSA_HANDLE PolicyHandle
,
319 OUT PLSA_UNICODE_STRING
*UserRights
,
320 OUT PULONG CountOfRights
)
322 LSAPR_USER_RIGHT_SET UserRightsSet
;
325 TRACE("(%p,%p,%p,%p) stub\n", PolicyHandle
, AccountSid
, UserRights
, CountOfRights
);
327 UserRightsSet
.Entries
= 0;
328 UserRightsSet
.UserRights
= NULL
;
332 Status
= LsarEnmuerateAccountRights((LSAPR_HANDLE
)PolicyHandle
,
336 *CountOfRights
= UserRightsSet
.Entries
;
337 *UserRights
= (PUNICODE_STRING
)UserRightsSet
.UserRights
;
339 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
341 Status
= I_RpcMapWin32Status(RpcExceptionCode());
343 if (UserRightsSet
.UserRights
!= NULL
)
345 MIDL_user_free(UserRightsSet
.UserRights
);
359 LsaEnumerateAccountsWithUserRight(
360 LSA_HANDLE PolicyHandle
,
361 OPTIONAL PLSA_UNICODE_STRING UserRights
,
362 PVOID
*EnumerationBuffer
,
363 PULONG CountReturned
)
365 FIXME("(%p,%p,%p,%p) stub\n", PolicyHandle
, UserRights
, EnumerationBuffer
, CountReturned
);
366 return STATUS_NO_MORE_ENTRIES
;
375 LsaEnumeratePrivilegesOfAccount(IN LSA_HANDLE AccountHandle
,
376 OUT PPRIVILEGE_SET
*Privileges
)
380 TRACE("(%p,%p) stub\n", AccountHandle
, Privileges
);
384 Status
= LsarEnumeratePrivilegesAccount((LSAPR_HANDLE
)AccountHandle
,
385 (LSAPR_PRIVILEGE_SET
**)Privileges
);
387 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
389 Status
= I_RpcMapWin32Status(RpcExceptionCode());
402 LsaEnumerateTrustedDomains(
403 LSA_HANDLE PolicyHandle
,
404 PLSA_ENUMERATION_HANDLE EnumerationContext
,
406 ULONG PreferedMaximumLength
,
407 PULONG CountReturned
)
409 FIXME("(%p,%p,%p,0x%08x,%p) stub\n", PolicyHandle
, EnumerationContext
,
410 Buffer
, PreferedMaximumLength
, CountReturned
);
412 if (CountReturned
) *CountReturned
= 0;
413 return STATUS_SUCCESS
;
421 LsaEnumerateTrustedDomainsEx(
422 LSA_HANDLE PolicyHandle
,
423 PLSA_ENUMERATION_HANDLE EnumerationContext
,
425 ULONG PreferedMaximumLength
,
426 PULONG CountReturned
)
428 FIXME("(%p,%p,%p,0x%08x,%p) stub\n", PolicyHandle
, EnumerationContext
, Buffer
,
429 PreferedMaximumLength
, CountReturned
);
430 if (CountReturned
) *CountReturned
= 0;
431 return STATUS_SUCCESS
;
440 LsaFreeMemory(IN PVOID Buffer
)
442 TRACE("(%p)\n", Buffer
);
443 return RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer
);
452 LsaLookupNames(IN LSA_HANDLE PolicyHandle
,
454 IN PLSA_UNICODE_STRING Names
,
455 OUT PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
456 OUT PLSA_TRANSLATED_SID
*Sids
)
458 LSAPR_TRANSLATED_SIDS TranslatedSids
= {0, NULL
};
459 ULONG MappedCount
= 0;
462 TRACE("(%p,0x%08x,%p,%p,%p)\n", PolicyHandle
, Count
, Names
,
463 ReferencedDomains
, Sids
);
465 if (ReferencedDomains
== NULL
|| Sids
== NULL
)
466 return STATUS_INVALID_PARAMETER
;
470 *ReferencedDomains
= NULL
;
473 TranslatedSids
.Entries
= Count
;
475 Status
= LsarLookupNames((LSAPR_HANDLE
)PolicyHandle
,
477 (PRPC_UNICODE_STRING
)Names
,
478 (PLSAPR_REFERENCED_DOMAIN_LIST
*)ReferencedDomains
,
483 *Sids
= (PLSA_TRANSLATED_SID
)TranslatedSids
.Sids
;
485 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
487 if (TranslatedSids
.Sids
!= NULL
)
488 MIDL_user_free(TranslatedSids
.Sids
);
490 Status
= I_RpcMapWin32Status(RpcExceptionCode());
503 LsaLookupNames2(IN LSA_HANDLE PolicyHandle
,
506 IN PLSA_UNICODE_STRING Names
,
507 OUT PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
508 OUT PLSA_TRANSLATED_SID2
*Sids
)
510 LSAPR_TRANSLATED_SIDS_EX2 TranslatedSids
= {0, NULL
};
511 ULONG MappedCount
= 0;
514 TRACE("(%p,0x%08x,0x%08x,%p,%p,%p) stub\n", PolicyHandle
, Flags
,
515 Count
, Names
, ReferencedDomains
, Sids
);
517 if (ReferencedDomains
== NULL
|| Sids
== NULL
)
518 return STATUS_INVALID_PARAMETER
;
522 *ReferencedDomains
= NULL
;
525 TranslatedSids
.Entries
= Count
;
527 Status
= LsarLookupNames3((LSAPR_HANDLE
)PolicyHandle
,
529 (PRPC_UNICODE_STRING
)Names
,
530 (PLSAPR_REFERENCED_DOMAIN_LIST
*)ReferencedDomains
,
537 *Sids
= (PLSA_TRANSLATED_SID2
)TranslatedSids
.Sids
;
539 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
541 if (TranslatedSids
.Sids
!= NULL
)
542 MIDL_user_free(TranslatedSids
.Sids
);
544 Status
= I_RpcMapWin32Status(RpcExceptionCode());
557 LsaLookupPrivilegeName(IN LSA_HANDLE PolicyHandle
,
559 OUT PUNICODE_STRING
*Name
)
561 PRPC_UNICODE_STRING NameBuffer
= NULL
;
564 TRACE("(%p,%p,%p)\n", PolicyHandle
, Value
, Name
);
568 Status
= LsarLookupPrivilegeName(PolicyHandle
,
572 *Name
= (PUNICODE_STRING
)NameBuffer
;
574 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
576 if (NameBuffer
!= NULL
)
577 MIDL_user_free(NameBuffer
);
579 Status
= I_RpcMapWin32Status(RpcExceptionCode());
592 LsaLookupPrivilegeValue(IN LSA_HANDLE PolicyHandle
,
593 IN PLSA_UNICODE_STRING Name
,
599 TRACE("(%p,%p,%p)\n", PolicyHandle
, Name
, Value
);
603 Status
= LsarLookupPrivilegeValue(PolicyHandle
,
604 (PRPC_UNICODE_STRING
)Name
,
606 if (Status
== STATUS_SUCCESS
)
609 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
611 Status
= I_RpcMapWin32Status(RpcExceptionCode());
624 LsaLookupSids(IN LSA_HANDLE PolicyHandle
,
627 OUT PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
628 OUT PLSA_TRANSLATED_NAME
*Names
)
630 LSAPR_SID_ENUM_BUFFER SidEnumBuffer
;
631 LSAPR_TRANSLATED_NAMES TranslatedNames
;
632 ULONG MappedCount
= 0;
635 TRACE("(%p,%u,%p,%p,%p)\n", PolicyHandle
, Count
, Sids
,
636 ReferencedDomains
, Names
);
639 return STATUS_INVALID_PARAMETER
;
641 SidEnumBuffer
.Entries
= Count
;
642 SidEnumBuffer
.SidInfo
= (PLSAPR_SID_INFORMATION
)Sids
;
646 *ReferencedDomains
= NULL
;
649 TranslatedNames
.Entries
= 0;
650 TranslatedNames
.Names
= NULL
;
652 Status
= LsarLookupSids((LSAPR_HANDLE
)PolicyHandle
,
654 (PLSAPR_REFERENCED_DOMAIN_LIST
*)ReferencedDomains
,
659 *Names
= (PLSA_TRANSLATED_NAME
)TranslatedNames
.Names
;
661 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
663 if (TranslatedNames
.Names
!= NULL
)
665 MIDL_user_free(TranslatedNames
.Names
);
668 Status
= I_RpcMapWin32Status(RpcExceptionCode());
676 /******************************************************************************
677 * LsaNtStatusToWinError
686 LsaNtStatusToWinError(IN NTSTATUS Status
)
688 TRACE("(%lx)\n", Status
);
689 return RtlNtStatusToDosError(Status
);
698 LsaOpenAccount(IN LSA_HANDLE PolicyHandle
,
701 OUT PLSA_HANDLE AccountHandle
)
705 TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle
, AccountSid
, Flags
, AccountHandle
);
709 Status
= LsarOpenAccount((LSAPR_HANDLE
)PolicyHandle
,
714 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
716 Status
= I_RpcMapWin32Status(RpcExceptionCode());
724 /******************************************************************************
737 LsaOpenPolicy(IN PLSA_UNICODE_STRING SystemName
,
738 IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes
,
739 IN ACCESS_MASK DesiredAccess
,
740 OUT PLSA_HANDLE PolicyHandle
)
744 TRACE("LsaOpenPolicy (%s,%p,0x%08x,%p)\n",
745 SystemName
? debugstr_w(SystemName
->Buffer
) : "(null)",
746 ObjectAttributes
, DesiredAccess
, PolicyHandle
);
748 /* FIXME: RPC should take care of this */
749 if (!LsapIsLocalComputer(SystemName
))
750 return RPC_NT_SERVER_UNAVAILABLE
;
754 *PolicyHandle
= NULL
;
756 Status
= LsarOpenPolicy(SystemName
? SystemName
->Buffer
: NULL
,
757 (PLSAPR_OBJECT_ATTRIBUTES
)ObjectAttributes
,
761 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
763 Status
= I_RpcMapWin32Status(RpcExceptionCode());
767 TRACE("LsaOpenPolicy() done (Status: 0x%08lx)\n", Status
);
778 LsaOpenTrustedDomainByName(IN LSA_HANDLE PolicyHandle
,
779 IN PLSA_UNICODE_STRING TrustedDomainName
,
780 IN ACCESS_MASK DesiredAccess
,
781 OUT PLSA_HANDLE TrustedDomainHandle
)
785 TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle
, TrustedDomainName
,
786 DesiredAccess
, TrustedDomainHandle
);
790 Status
= LsarOpenTrustedDomainByName((LSAPR_HANDLE
)PolicyHandle
,
791 (PRPC_UNICODE_STRING
)TrustedDomainName
,
793 TrustedDomainHandle
);
795 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
797 Status
= I_RpcMapWin32Status(RpcExceptionCode());
810 LsaQueryDomainInformationPolicy(
811 LSA_HANDLE PolicyHandle
,
812 POLICY_DOMAIN_INFORMATION_CLASS InformationClass
,
815 FIXME("(%p,0x%08x,%p)\n", PolicyHandle
, InformationClass
, Buffer
);
816 return STATUS_NOT_IMPLEMENTED
;
825 LsaQueryForestTrustInformation(
826 LSA_HANDLE PolicyHandle
,
827 PLSA_UNICODE_STRING TrustedDomainName
,
828 PLSA_FOREST_TRUST_INFORMATION
* ForestTrustInfo
)
830 FIXME("(%p,%p,%p) stub\n", PolicyHandle
, TrustedDomainName
, ForestTrustInfo
);
831 return STATUS_NOT_IMPLEMENTED
;
840 LsaQueryInformationPolicy(IN LSA_HANDLE PolicyHandle
,
841 IN POLICY_INFORMATION_CLASS InformationClass
,
844 PLSAPR_POLICY_INFORMATION PolicyInformation
= NULL
;
847 TRACE("(%p,0x%08x,%p)\n", PolicyHandle
, InformationClass
, Buffer
);
851 Status
= LsarQueryInformationPolicy((LSAPR_HANDLE
)PolicyHandle
,
854 *Buffer
= PolicyInformation
;
856 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
858 if (PolicyInformation
!= NULL
)
859 MIDL_user_free(PolicyInformation
);
861 Status
= I_RpcMapWin32Status(RpcExceptionCode());
865 TRACE("Done (Status: 0x%08x)\n", Status
);
876 LsaQueryTrustedDomainInfo(
877 LSA_HANDLE PolicyHandle
,
878 PSID TrustedDomainSid
,
879 TRUSTED_INFORMATION_CLASS InformationClass
,
882 FIXME("(%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainSid
, InformationClass
, Buffer
);
883 return STATUS_OBJECT_NAME_NOT_FOUND
;
892 LsaQueryTrustedDomainInfoByName(IN LSA_HANDLE PolicyHandle
,
893 IN PLSA_UNICODE_STRING TrustedDomainName
,
894 IN TRUSTED_INFORMATION_CLASS InformationClass
,
899 TRACE("(%p,%p,%d,%p)\n", PolicyHandle
, TrustedDomainName
, InformationClass
, Buffer
);
901 if (InformationClass
== TrustedDomainAuthInformationInternal
||
902 InformationClass
== TrustedDomainFullInformationInternal
)
903 return STATUS_INVALID_INFO_CLASS
;
907 Status
= LsarQueryTrustedDomainInfoByName((LSAPR_HANDLE
)PolicyHandle
,
908 (PRPC_UNICODE_STRING
)TrustedDomainName
,
910 (unsigned long *)Buffer
); // Shuld be: (PLSAPR_POLICY_INFORMATION *)Buffer
912 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
914 Status
= I_RpcMapWin32Status(RpcExceptionCode());
927 LsaRemoveAccountRights(IN LSA_HANDLE PolicyHandle
,
929 IN BOOLEAN AllRights
,
930 IN PLSA_UNICODE_STRING UserRights
,
931 IN ULONG CountOfRights
)
933 LSAPR_USER_RIGHT_SET UserRightSet
;
935 TRACE("(%p,%p,%d,%p,0x%08x) stub\n", PolicyHandle
, AccountSid
, AllRights
, UserRights
, CountOfRights
);
937 UserRightSet
.Entries
= CountOfRights
;
938 UserRightSet
.UserRights
= (PRPC_UNICODE_STRING
)UserRights
;
942 LsarRemoveAccountRights((LSAPR_HANDLE
)PolicyHandle
,
943 (PRPC_SID
)AccountSid
,
947 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
949 I_RpcMapWin32Status(RpcExceptionCode());
953 return STATUS_SUCCESS
;
962 LsaRetrievePrivateData(
963 LSA_HANDLE PolicyHandle
,
964 PLSA_UNICODE_STRING KeyName
,
965 PLSA_UNICODE_STRING
*PrivateData
)
967 FIXME("(%p,%p,%p) stub\n", PolicyHandle
, KeyName
, PrivateData
);
968 return STATUS_OBJECT_NAME_NOT_FOUND
;
976 LsaSetDomainInformationPolicy(
977 LSA_HANDLE PolicyHandle
,
978 POLICY_DOMAIN_INFORMATION_CLASS InformationClass
,
981 FIXME("(%p,0x%08x,%p) stub\n", PolicyHandle
, InformationClass
, Buffer
);
982 return STATUS_UNSUCCESSFUL
;
991 LsaSetInformationPolicy(IN LSA_HANDLE PolicyHandle
,
992 IN POLICY_INFORMATION_CLASS InformationClass
,
997 TRACE("(%p,0x%08x,%p)\n", PolicyHandle
, InformationClass
, Buffer
);
1001 Status
= LsarSetInformationPolicy((LSAPR_HANDLE
)PolicyHandle
,
1003 (PLSAPR_POLICY_INFORMATION
)Buffer
);
1005 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
1007 Status
= I_RpcMapWin32Status(RpcExceptionCode());
1018 NTSTATUS WINAPI
LsaSetSecret(
1019 IN LSA_HANDLE SecretHandle
,
1020 IN PLSA_UNICODE_STRING EncryptedCurrentValue
,
1021 IN PLSA_UNICODE_STRING EncryptedOldValue
)
1023 FIXME("(%p,%p,%p) stub\n", SecretHandle
, EncryptedCurrentValue
,
1025 return STATUS_SUCCESS
;
1033 LsaSetForestTrustInformation(
1034 LSA_HANDLE PolicyHandle
,
1035 PLSA_UNICODE_STRING TrustedDomainName
,
1036 PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo
,
1038 PLSA_FOREST_TRUST_COLLISION_INFORMATION
*CollisionInfo
)
1040 FIXME("(%p,%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainName
, ForestTrustInfo
, CheckOnly
, CollisionInfo
);
1041 return STATUS_NOT_IMPLEMENTED
;
1049 LsaSetTrustedDomainInfoByName(
1050 LSA_HANDLE PolicyHandle
,
1051 PLSA_UNICODE_STRING TrustedDomainName
,
1052 TRUSTED_INFORMATION_CLASS InformationClass
,
1055 FIXME("(%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainName
, InformationClass
, Buffer
);
1056 return STATUS_SUCCESS
;
1062 NTSTATUS WINAPI
LsaRegisterPolicyChangeNotification(
1063 POLICY_NOTIFICATION_INFORMATION_CLASS
class,
1066 FIXME("(%d,%p) stub\n", class, event
);
1067 return STATUS_UNSUCCESSFUL
;
1075 LsaSetTrustedDomainInformation(
1076 LSA_HANDLE PolicyHandle
,
1077 PSID TrustedDomainSid
,
1078 TRUSTED_INFORMATION_CLASS InformationClass
,
1081 FIXME("(%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainSid
, InformationClass
, Buffer
);
1082 return STATUS_SUCCESS
;
1090 LsaStorePrivateData(
1091 LSA_HANDLE PolicyHandle
,
1092 PLSA_UNICODE_STRING KeyName
,
1093 PLSA_UNICODE_STRING PrivateData
)
1095 FIXME("(%p,%p,%p) stub\n", PolicyHandle
, KeyName
, PrivateData
);
1096 return STATUS_OBJECT_NAME_NOT_FOUND
;
1102 NTSTATUS WINAPI
LsaUnregisterPolicyChangeNotification(
1103 POLICY_NOTIFICATION_INFORMATION_CLASS
class,
1106 FIXME("(%d,%p) stub\n", class, event
);
1107 return STATUS_SUCCESS
;
1116 PUNICODE_STRING
*UserName
,
1117 PUNICODE_STRING
*DomainName
)
1119 FIXME("(%p,%p) stub\n", UserName
, DomainName
);
1120 return STATUS_NOT_IMPLEMENTED
;
1128 LsaQueryInfoTrustedDomain (DWORD Unknonw0
,
1132 FIXME("(%d,%d,%d) stub\n", Unknonw0
, Unknonw1
, Unknonw2
);
1133 return STATUS_NOT_IMPLEMENTED
;