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 #include "wine/debug.h"
15 #include "wine/unicode.h"
17 WINE_DEFAULT_DEBUG_CHANNEL(advapi
);
20 static BOOL
LsapIsLocalComputer(PLSA_UNICODE_STRING ServerName
)
22 DWORD dwSize
= MAX_COMPUTERNAME_LENGTH
+ 1;
26 if (ServerName
== NULL
|| ServerName
->Length
== 0 || ServerName
->Buffer
== NULL
)
29 buf
= HeapAlloc(GetProcessHeap(), 0, dwSize
* sizeof(WCHAR
));
30 Result
= GetComputerNameW(buf
, &dwSize
);
31 if (Result
&& (ServerName
->Buffer
[0] == '\\') && (ServerName
->Buffer
[1] == '\\'))
33 Result
= Result
&& !lstrcmpW(ServerName
->Buffer
, buf
);
34 HeapFree(GetProcessHeap(), 0, buf
);
41 PLSAPR_SERVER_NAME_bind(PLSAPR_SERVER_NAME pszSystemName
)
43 handle_t hBinding
= NULL
;
44 LPWSTR pszStringBinding
;
47 TRACE("PLSAPR_SERVER_NAME_bind() called\n");
49 status
= RpcStringBindingComposeW(NULL
,
57 TRACE("RpcStringBindingCompose returned 0x%x\n", status
);
61 /* Set the binding handle that will be used to bind to the server. */
62 status
= RpcBindingFromStringBindingW(pszStringBinding
,
66 TRACE("RpcBindingFromStringBinding returned 0x%x\n", status
);
69 status
= RpcStringFreeW(&pszStringBinding
);
72 TRACE("RpcStringFree returned 0x%x\n", status
);
80 PLSAPR_SERVER_NAME_unbind(PLSAPR_SERVER_NAME pszSystemName
,
85 TRACE("PLSAPR_SERVER_NAME_unbind() called\n");
87 status
= RpcBindingFree(&hBinding
);
90 TRACE("RpcBindingFree returned 0x%x\n", status
);
100 LsaClose(IN LSA_HANDLE ObjectHandle
)
104 TRACE("LsaClose(0x%p) called\n", ObjectHandle
);
108 Status
= LsarClose((PLSAPR_HANDLE
)&ObjectHandle
);
110 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
112 Status
= I_RpcMapWin32Status(RpcExceptionCode());
125 LsaDelete(IN LSA_HANDLE ObjectHandle
)
129 TRACE("LsaDelete(0x%p) called\n", ObjectHandle
);
133 Status
= LsarDelete((LSAPR_HANDLE
)ObjectHandle
);
135 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
137 Status
= I_RpcMapWin32Status(RpcExceptionCode());
150 LsaAddAccountRights(IN LSA_HANDLE PolicyHandle
,
152 IN PLSA_UNICODE_STRING UserRights
,
153 IN ULONG CountOfRights
)
155 LSAPR_USER_RIGHT_SET UserRightSet
;
158 TRACE("(%p,%p,%p,0x%08x) stub\n", PolicyHandle
, AccountSid
, UserRights
, CountOfRights
);
160 UserRightSet
.Entries
= CountOfRights
;
161 UserRightSet
.UserRights
= (PRPC_UNICODE_STRING
)UserRights
;
165 Status
= LsarAddAccountRights((LSAPR_HANDLE
)PolicyHandle
,
166 (PRPC_SID
)AccountSid
,
170 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
172 Status
= I_RpcMapWin32Status(RpcExceptionCode());
185 LsaAddPrivilegesToAccount(IN LSA_HANDLE AccountHandle
,
186 IN PPRIVILEGE_SET PrivilegeSet
)
190 TRACE("(%p,%p) stub\n", AccountHandle
, PrivilegeSet
);
194 Status
= LsarAddPrivilegesToAccount((LSAPR_HANDLE
)AccountHandle
,
195 (PLSAPR_PRIVILEGE_SET
)PrivilegeSet
);
197 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
199 Status
= I_RpcMapWin32Status(RpcExceptionCode());
212 LsaCreateAccount(IN LSA_HANDLE PolicyHandle
,
215 OUT PLSA_HANDLE AccountHandle
)
219 TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle
, AccountSid
, Flags
, AccountHandle
);
223 Status
= LsarCreateAccount((LSAPR_HANDLE
)PolicyHandle
,
228 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
230 Status
= I_RpcMapWin32Status(RpcExceptionCode());
243 LsaCreateTrustedDomain(IN LSA_HANDLE PolicyHandle
,
244 IN PLSA_TRUST_INFORMATION TrustedDomainInformation
,
245 IN ACCESS_MASK DesiredAccess
,
246 OUT PLSA_HANDLE TrustedDomainHandle
)
250 TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle
, TrustedDomainInformation
,
251 DesiredAccess
, TrustedDomainHandle
);
255 Status
= LsarCreateTrustedDomain((LSAPR_HANDLE
)PolicyHandle
,
256 (PLSAPR_TRUST_INFORMATION
)TrustedDomainInformation
,
258 (PLSAPR_HANDLE
)TrustedDomainHandle
);
260 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
262 Status
= I_RpcMapWin32Status(RpcExceptionCode());
275 LsaCreateTrustedDomainEx(
276 LSA_HANDLE PolicyHandle
,
277 PTRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation
,
278 PTRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation
,
279 ACCESS_MASK DesiredAccess
,
280 PLSA_HANDLE TrustedDomainHandle
)
282 FIXME("(%p,%p,%p,0x%08x,%p) stub\n", PolicyHandle
, TrustedDomainInformation
, AuthenticationInformation
,
283 DesiredAccess
, TrustedDomainHandle
);
284 return STATUS_SUCCESS
;
293 LsaDeleteTrustedDomain(IN LSA_HANDLE PolicyHandle
,
294 IN PSID TrustedDomainSid
)
298 TRACE("(%p,%p)\n", PolicyHandle
, TrustedDomainSid
);
302 Status
= LsarDeleteTrustedDomain((LSAPR_HANDLE
)PolicyHandle
,
305 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
307 Status
= I_RpcMapWin32Status(RpcExceptionCode());
320 LsaEnumerateAccountRights(IN LSA_HANDLE PolicyHandle
,
322 OUT PLSA_UNICODE_STRING
*UserRights
,
323 OUT PULONG CountOfRights
)
325 LSAPR_USER_RIGHT_SET UserRightsSet
;
328 TRACE("(%p,%p,%p,%p) stub\n", PolicyHandle
, AccountSid
, UserRights
, CountOfRights
);
330 UserRightsSet
.Entries
= 0;
331 UserRightsSet
.UserRights
= NULL
;
335 Status
= LsarEnmuerateAccountRights((LSAPR_HANDLE
)PolicyHandle
,
339 *CountOfRights
= UserRightsSet
.Entries
;
340 *UserRights
= (PUNICODE_STRING
)UserRightsSet
.UserRights
;
342 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
344 Status
= I_RpcMapWin32Status(RpcExceptionCode());
346 if (UserRightsSet
.UserRights
!= NULL
)
348 MIDL_user_free(UserRightsSet
.UserRights
);
362 LsaEnumerateAccountsWithUserRight(
363 LSA_HANDLE PolicyHandle
,
364 OPTIONAL PLSA_UNICODE_STRING UserRights
,
365 PVOID
*EnumerationBuffer
,
366 PULONG CountReturned
)
368 FIXME("(%p,%p,%p,%p) stub\n", PolicyHandle
, UserRights
, EnumerationBuffer
, CountReturned
);
369 return STATUS_NO_MORE_ENTRIES
;
377 LsaEnumerateTrustedDomains(
378 LSA_HANDLE PolicyHandle
,
379 PLSA_ENUMERATION_HANDLE EnumerationContext
,
381 ULONG PreferedMaximumLength
,
382 PULONG CountReturned
)
384 FIXME("(%p,%p,%p,0x%08x,%p) stub\n", PolicyHandle
, EnumerationContext
,
385 Buffer
, PreferedMaximumLength
, CountReturned
);
387 if (CountReturned
) *CountReturned
= 0;
388 return STATUS_SUCCESS
;
396 LsaEnumerateTrustedDomainsEx(
397 LSA_HANDLE PolicyHandle
,
398 PLSA_ENUMERATION_HANDLE EnumerationContext
,
400 ULONG PreferedMaximumLength
,
401 PULONG CountReturned
)
403 FIXME("(%p,%p,%p,0x%08x,%p) stub\n", PolicyHandle
, EnumerationContext
, Buffer
,
404 PreferedMaximumLength
, CountReturned
);
405 if (CountReturned
) *CountReturned
= 0;
406 return STATUS_SUCCESS
;
415 LsaFreeMemory(IN PVOID Buffer
)
417 TRACE("(%p)\n", Buffer
);
418 return RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer
);
427 LsaLookupNames(IN LSA_HANDLE PolicyHandle
,
429 IN PLSA_UNICODE_STRING Names
,
430 OUT PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
431 OUT PLSA_TRANSLATED_SID
*Sids
)
433 LSAPR_TRANSLATED_SIDS TranslatedSids
= {0, NULL
};
434 ULONG MappedCount
= 0;
437 TRACE("(%p,0x%08x,%p,%p,%p)\n", PolicyHandle
, Count
, Names
,
438 ReferencedDomains
, Sids
);
440 if (ReferencedDomains
== NULL
|| Sids
== NULL
)
441 return STATUS_INVALID_PARAMETER
;
445 *ReferencedDomains
= NULL
;
448 TranslatedSids
.Entries
= Count
;
450 Status
= LsarLookupNames((LSAPR_HANDLE
)PolicyHandle
,
452 (PRPC_UNICODE_STRING
)Names
,
453 (PLSAPR_REFERENCED_DOMAIN_LIST
*)ReferencedDomains
,
458 *Sids
= (PLSA_TRANSLATED_SID
)TranslatedSids
.Sids
;
460 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
462 if (TranslatedSids
.Sids
!= NULL
)
463 MIDL_user_free(TranslatedSids
.Sids
);
465 Status
= I_RpcMapWin32Status(RpcExceptionCode());
478 LsaLookupNames2(IN LSA_HANDLE PolicyHandle
,
481 IN PLSA_UNICODE_STRING Names
,
482 OUT PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
483 OUT PLSA_TRANSLATED_SID2
*Sids
)
485 LSAPR_TRANSLATED_SIDS_EX2 TranslatedSids
= {0, NULL
};
486 ULONG MappedCount
= 0;
489 TRACE("(%p,0x%08x,0x%08x,%p,%p,%p) stub\n", PolicyHandle
, Flags
,
490 Count
, Names
, ReferencedDomains
, Sids
);
492 if (ReferencedDomains
== NULL
|| Sids
== NULL
)
493 return STATUS_INVALID_PARAMETER
;
497 *ReferencedDomains
= NULL
;
500 TranslatedSids
.Entries
= Count
;
502 Status
= LsarLookupNames3((LSAPR_HANDLE
)PolicyHandle
,
504 (PRPC_UNICODE_STRING
)Names
,
505 (PLSAPR_REFERENCED_DOMAIN_LIST
*)ReferencedDomains
,
512 *Sids
= (PLSA_TRANSLATED_SID2
)TranslatedSids
.Sids
;
514 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
516 if (TranslatedSids
.Sids
!= NULL
)
517 MIDL_user_free(TranslatedSids
.Sids
);
519 Status
= I_RpcMapWin32Status(RpcExceptionCode());
532 LsaLookupPrivilegeName(IN LSA_HANDLE PolicyHandle
,
534 OUT PUNICODE_STRING
*Name
)
536 PRPC_UNICODE_STRING NameBuffer
= NULL
;
539 TRACE("(%p,%p,%p)\n", PolicyHandle
, Value
, Name
);
543 Status
= LsarLookupPrivilegeName(PolicyHandle
,
547 *Name
= (PUNICODE_STRING
)NameBuffer
;
549 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
551 if (NameBuffer
!= NULL
)
552 MIDL_user_free(NameBuffer
);
554 Status
= I_RpcMapWin32Status(RpcExceptionCode());
567 LsaLookupPrivilegeValue(IN LSA_HANDLE PolicyHandle
,
568 IN PLSA_UNICODE_STRING Name
,
574 TRACE("(%p,%p,%p)\n", PolicyHandle
, Name
, Value
);
578 Status
= LsarLookupPrivilegeValue(PolicyHandle
,
579 (PRPC_UNICODE_STRING
)Name
,
581 if (Status
== STATUS_SUCCESS
)
584 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
586 Status
= I_RpcMapWin32Status(RpcExceptionCode());
599 LsaLookupSids(IN LSA_HANDLE PolicyHandle
,
602 OUT PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
603 OUT PLSA_TRANSLATED_NAME
*Names
)
605 LSAPR_SID_ENUM_BUFFER SidEnumBuffer
;
606 LSAPR_TRANSLATED_NAMES TranslatedNames
;
607 ULONG MappedCount
= 0;
610 TRACE("(%p,%u,%p,%p,%p)\n", PolicyHandle
, Count
, Sids
,
611 ReferencedDomains
, Names
);
614 return STATUS_INVALID_PARAMETER
;
616 SidEnumBuffer
.Entries
= Count
;
617 SidEnumBuffer
.SidInfo
= (PLSAPR_SID_INFORMATION
)Sids
;
621 *ReferencedDomains
= NULL
;
624 TranslatedNames
.Entries
= 0;
625 TranslatedNames
.Names
= NULL
;
627 Status
= LsarLookupSids((LSAPR_HANDLE
)PolicyHandle
,
629 (PLSAPR_REFERENCED_DOMAIN_LIST
*)ReferencedDomains
,
634 *Names
= (PLSA_TRANSLATED_NAME
)TranslatedNames
.Names
;
636 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
638 if (TranslatedNames
.Names
!= NULL
)
640 MIDL_user_free(TranslatedNames
.Names
);
643 Status
= I_RpcMapWin32Status(RpcExceptionCode());
651 /******************************************************************************
652 * LsaNtStatusToWinError
661 LsaNtStatusToWinError(IN NTSTATUS Status
)
663 TRACE("(%lx)\n", Status
);
664 return RtlNtStatusToDosError(Status
);
673 LsaOpenAccount(IN LSA_HANDLE PolicyHandle
,
676 OUT PLSA_HANDLE AccountHandle
)
680 TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle
, AccountSid
, Flags
, AccountHandle
);
684 Status
= LsarOpenAccount((LSAPR_HANDLE
)PolicyHandle
,
689 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
691 Status
= I_RpcMapWin32Status(RpcExceptionCode());
699 /******************************************************************************
712 LsaOpenPolicy(IN PLSA_UNICODE_STRING SystemName
,
713 IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes
,
714 IN ACCESS_MASK DesiredAccess
,
715 OUT PLSA_HANDLE PolicyHandle
)
719 TRACE("LsaOpenPolicy (%s,%p,0x%08x,%p)\n",
720 SystemName
? debugstr_w(SystemName
->Buffer
) : "(null)",
721 ObjectAttributes
, DesiredAccess
, PolicyHandle
);
723 /* FIXME: RPC should take care of this */
724 if (!LsapIsLocalComputer(SystemName
))
725 return RPC_NT_SERVER_UNAVAILABLE
;
729 *PolicyHandle
= NULL
;
731 Status
= LsarOpenPolicy(SystemName
? SystemName
->Buffer
: NULL
,
732 (PLSAPR_OBJECT_ATTRIBUTES
)ObjectAttributes
,
736 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
738 Status
= I_RpcMapWin32Status(RpcExceptionCode());
742 TRACE("LsaOpenPolicy() done (Status: 0x%08lx)\n", Status
);
753 LsaOpenTrustedDomainByName(IN LSA_HANDLE PolicyHandle
,
754 IN PLSA_UNICODE_STRING TrustedDomainName
,
755 IN ACCESS_MASK DesiredAccess
,
756 OUT PLSA_HANDLE TrustedDomainHandle
)
760 TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle
, TrustedDomainName
,
761 DesiredAccess
, TrustedDomainHandle
);
765 Status
= LsarOpenTrustedDomainByName((LSAPR_HANDLE
)PolicyHandle
,
766 (PRPC_UNICODE_STRING
)TrustedDomainName
,
768 TrustedDomainHandle
);
770 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
772 Status
= I_RpcMapWin32Status(RpcExceptionCode());
785 LsaQueryDomainInformationPolicy(
786 LSA_HANDLE PolicyHandle
,
787 POLICY_DOMAIN_INFORMATION_CLASS InformationClass
,
790 FIXME("(%p,0x%08x,%p)\n", PolicyHandle
, InformationClass
, Buffer
);
791 return STATUS_NOT_IMPLEMENTED
;
800 LsaQueryForestTrustInformation(
801 LSA_HANDLE PolicyHandle
,
802 PLSA_UNICODE_STRING TrustedDomainName
,
803 PLSA_FOREST_TRUST_INFORMATION
* ForestTrustInfo
)
805 FIXME("(%p,%p,%p) stub\n", PolicyHandle
, TrustedDomainName
, ForestTrustInfo
);
806 return STATUS_NOT_IMPLEMENTED
;
815 LsaQueryInformationPolicy(IN LSA_HANDLE PolicyHandle
,
816 IN POLICY_INFORMATION_CLASS InformationClass
,
819 PLSAPR_POLICY_INFORMATION PolicyInformation
= NULL
;
822 TRACE("(%p,0x%08x,%p)\n", PolicyHandle
, InformationClass
, Buffer
);
826 Status
= LsarQueryInformationPolicy((LSAPR_HANDLE
)PolicyHandle
,
829 *Buffer
= PolicyInformation
;
831 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
833 if (PolicyInformation
!= NULL
)
834 MIDL_user_free(PolicyInformation
);
836 Status
= I_RpcMapWin32Status(RpcExceptionCode());
840 TRACE("Done (Status: 0x%08x)\n", Status
);
851 LsaQueryTrustedDomainInfo(
852 LSA_HANDLE PolicyHandle
,
853 PSID TrustedDomainSid
,
854 TRUSTED_INFORMATION_CLASS InformationClass
,
857 FIXME("(%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainSid
, InformationClass
, Buffer
);
858 return STATUS_OBJECT_NAME_NOT_FOUND
;
867 LsaQueryTrustedDomainInfoByName(IN LSA_HANDLE PolicyHandle
,
868 IN PLSA_UNICODE_STRING TrustedDomainName
,
869 IN TRUSTED_INFORMATION_CLASS InformationClass
,
874 TRACE("(%p,%p,%d,%p)\n", PolicyHandle
, TrustedDomainName
, InformationClass
, Buffer
);
876 if (InformationClass
== TrustedDomainAuthInformationInternal
||
877 InformationClass
== TrustedDomainFullInformationInternal
)
878 return STATUS_INVALID_INFO_CLASS
;
882 Status
= LsarQueryTrustedDomainInfoByName((LSAPR_HANDLE
)PolicyHandle
,
883 (PRPC_UNICODE_STRING
)TrustedDomainName
,
885 (unsigned long *)Buffer
); // Shuld be: (PLSAPR_POLICY_INFORMATION *)Buffer
887 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
889 Status
= I_RpcMapWin32Status(RpcExceptionCode());
902 LsaRemoveAccountRights(IN LSA_HANDLE PolicyHandle
,
904 IN BOOLEAN AllRights
,
905 IN PLSA_UNICODE_STRING UserRights
,
906 IN ULONG CountOfRights
)
908 LSAPR_USER_RIGHT_SET UserRightSet
;
911 TRACE("(%p,%p,%d,%p,0x%08x) stub\n", PolicyHandle
, AccountSid
, AllRights
, UserRights
, CountOfRights
);
913 UserRightSet
.Entries
= CountOfRights
;
914 UserRightSet
.UserRights
= (PRPC_UNICODE_STRING
)UserRights
;
918 Status
= LsarRemoveAccountRights((LSAPR_HANDLE
)PolicyHandle
,
919 (PRPC_SID
)AccountSid
,
923 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
925 Status
= I_RpcMapWin32Status(RpcExceptionCode());
929 return STATUS_SUCCESS
;
938 LsaRetrievePrivateData(
939 LSA_HANDLE PolicyHandle
,
940 PLSA_UNICODE_STRING KeyName
,
941 PLSA_UNICODE_STRING
*PrivateData
)
943 FIXME("(%p,%p,%p) stub\n", PolicyHandle
, KeyName
, PrivateData
);
944 return STATUS_OBJECT_NAME_NOT_FOUND
;
952 LsaSetDomainInformationPolicy(
953 LSA_HANDLE PolicyHandle
,
954 POLICY_DOMAIN_INFORMATION_CLASS InformationClass
,
957 FIXME("(%p,0x%08x,%p) stub\n", PolicyHandle
, InformationClass
, Buffer
);
958 return STATUS_UNSUCCESSFUL
;
967 LsaSetInformationPolicy(IN LSA_HANDLE PolicyHandle
,
968 IN POLICY_INFORMATION_CLASS InformationClass
,
973 TRACE("(%p,0x%08x,%p)\n", PolicyHandle
, InformationClass
, Buffer
);
977 Status
= LsarSetInformationPolicy((LSAPR_HANDLE
)PolicyHandle
,
979 (PLSAPR_POLICY_INFORMATION
)Buffer
);
981 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
983 Status
= I_RpcMapWin32Status(RpcExceptionCode());
994 NTSTATUS WINAPI
LsaSetSecret(
995 IN LSA_HANDLE SecretHandle
,
996 IN PLSA_UNICODE_STRING EncryptedCurrentValue
,
997 IN PLSA_UNICODE_STRING EncryptedOldValue
)
999 FIXME("(%p,%p,%p) stub\n", SecretHandle
, EncryptedCurrentValue
,
1001 return STATUS_SUCCESS
;
1009 LsaSetForestTrustInformation(
1010 LSA_HANDLE PolicyHandle
,
1011 PLSA_UNICODE_STRING TrustedDomainName
,
1012 PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo
,
1014 PLSA_FOREST_TRUST_COLLISION_INFORMATION
*CollisionInfo
)
1016 FIXME("(%p,%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainName
, ForestTrustInfo
, CheckOnly
, CollisionInfo
);
1017 return STATUS_NOT_IMPLEMENTED
;
1025 LsaSetTrustedDomainInfoByName(
1026 LSA_HANDLE PolicyHandle
,
1027 PLSA_UNICODE_STRING TrustedDomainName
,
1028 TRUSTED_INFORMATION_CLASS InformationClass
,
1031 FIXME("(%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainName
, InformationClass
, Buffer
);
1032 return STATUS_SUCCESS
;
1038 NTSTATUS WINAPI
LsaRegisterPolicyChangeNotification(
1039 POLICY_NOTIFICATION_INFORMATION_CLASS
class,
1042 FIXME("(%d,%p) stub\n", class, event
);
1043 return STATUS_UNSUCCESSFUL
;
1051 LsaSetTrustedDomainInformation(
1052 LSA_HANDLE PolicyHandle
,
1053 PSID TrustedDomainSid
,
1054 TRUSTED_INFORMATION_CLASS InformationClass
,
1057 FIXME("(%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainSid
, InformationClass
, Buffer
);
1058 return STATUS_SUCCESS
;
1066 LsaStorePrivateData(
1067 LSA_HANDLE PolicyHandle
,
1068 PLSA_UNICODE_STRING KeyName
,
1069 PLSA_UNICODE_STRING PrivateData
)
1071 FIXME("(%p,%p,%p) stub\n", PolicyHandle
, KeyName
, PrivateData
);
1072 return STATUS_OBJECT_NAME_NOT_FOUND
;
1078 NTSTATUS WINAPI
LsaUnregisterPolicyChangeNotification(
1079 POLICY_NOTIFICATION_INFORMATION_CLASS
class,
1082 FIXME("(%d,%p) stub\n", class, event
);
1083 return STATUS_SUCCESS
;
1092 PUNICODE_STRING
*UserName
,
1093 PUNICODE_STRING
*DomainName
)
1095 FIXME("(%p,%p) stub\n", UserName
, DomainName
);
1096 return STATUS_NOT_IMPLEMENTED
;
1104 LsaQueryInfoTrustedDomain (DWORD Unknonw0
,
1108 FIXME("(%d,%d,%d) stub\n", Unknonw0
, Unknonw1
, Unknonw2
);
1109 return STATUS_NOT_IMPLEMENTED
;