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
;
434 ULONG MappedCount
= 0;
437 TRACE("(%p,0x%08x,%p,%p,%p)\n", PolicyHandle
, Count
, Names
,
438 ReferencedDomains
, Sids
);
442 *ReferencedDomains
= NULL
;
445 TranslatedSids
.Entries
= Count
;
446 TranslatedSids
.Sids
= *Sids
;
448 Status
= LsarLookupNames((LSAPR_HANDLE
)PolicyHandle
,
450 (PRPC_UNICODE_STRING
)Names
,
451 (PLSAPR_REFERENCED_DOMAIN_LIST
*)ReferencedDomains
,
456 *Sids
= (PLSA_TRANSLATED_SID
)TranslatedSids
.Sids
;
458 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
460 if (TranslatedSids
.Sids
!= NULL
)
462 MIDL_user_free(TranslatedSids
.Sids
);
465 Status
= I_RpcMapWin32Status(RpcExceptionCode());
479 LSA_HANDLE PolicyHandle
,
482 PLSA_UNICODE_STRING Names
,
483 PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
484 PLSA_TRANSLATED_SID2
*Sids
)
486 FIXME("(%p,0x%08x,0x%08x,%p,%p,%p) stub\n", PolicyHandle
, Flags
,
487 Count
, Names
, ReferencedDomains
, Sids
);
488 if (Names
!= NULL
&& Count
> 0)
490 *ReferencedDomains
= RtlAllocateHeap(RtlGetProcessHeap(), 0, sizeof(LSA_REFERENCED_DOMAIN_LIST
));
491 *Sids
= RtlAllocateHeap(RtlGetProcessHeap(), 0, Count
* sizeof(LSA_TRANSLATED_SID2
));
492 return STATUS_SOME_NOT_MAPPED
;
494 return STATUS_NONE_MAPPED
;
503 LsaLookupPrivilegeName(IN LSA_HANDLE PolicyHandle
,
505 OUT PUNICODE_STRING
*Name
)
507 PRPC_UNICODE_STRING NameBuffer
= NULL
;
510 TRACE("(%p,%p,%p)\n", PolicyHandle
, Value
, Name
);
514 Status
= LsarLookupPrivilegeName(PolicyHandle
,
518 *Name
= (PUNICODE_STRING
)NameBuffer
;
520 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
522 if (NameBuffer
!= NULL
)
523 MIDL_user_free(NameBuffer
);
525 Status
= I_RpcMapWin32Status(RpcExceptionCode());
538 LsaLookupPrivilegeValue(IN LSA_HANDLE PolicyHandle
,
539 IN PLSA_UNICODE_STRING Name
,
545 TRACE("(%p,%p,%p)\n", PolicyHandle
, Name
, Value
);
549 Status
= LsarLookupPrivilegeValue(PolicyHandle
,
550 (PRPC_UNICODE_STRING
)Name
,
552 if (Status
== STATUS_SUCCESS
)
555 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
557 Status
= I_RpcMapWin32Status(RpcExceptionCode());
570 LsaLookupSids(IN LSA_HANDLE PolicyHandle
,
573 OUT PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
574 OUT PLSA_TRANSLATED_NAME
*Names
)
576 LSAPR_SID_ENUM_BUFFER SidEnumBuffer
;
577 LSAPR_TRANSLATED_NAMES TranslatedNames
;
578 ULONG MappedCount
= 0;
581 TRACE("(%p,%u,%p,%p,%p)\n", PolicyHandle
, Count
, Sids
,
582 ReferencedDomains
, Names
);
585 return STATUS_INVALID_PARAMETER
;
587 SidEnumBuffer
.Entries
= Count
;
588 SidEnumBuffer
.SidInfo
= (PLSAPR_SID_INFORMATION
)Sids
;
592 *ReferencedDomains
= NULL
;
595 TranslatedNames
.Entries
= 0;
596 TranslatedNames
.Names
= NULL
;
598 Status
= LsarLookupSids((LSAPR_HANDLE
)PolicyHandle
,
600 (PLSAPR_REFERENCED_DOMAIN_LIST
*)ReferencedDomains
,
605 *Names
= (PLSA_TRANSLATED_NAME
)TranslatedNames
.Names
;
607 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
609 if (TranslatedNames
.Names
!= NULL
)
611 MIDL_user_free(TranslatedNames
.Names
);
614 Status
= I_RpcMapWin32Status(RpcExceptionCode());
622 /******************************************************************************
623 * LsaNtStatusToWinError
632 LsaNtStatusToWinError(IN NTSTATUS Status
)
634 TRACE("(%lx)\n", Status
);
635 return RtlNtStatusToDosError(Status
);
644 LsaOpenAccount(IN LSA_HANDLE PolicyHandle
,
647 OUT PLSA_HANDLE AccountHandle
)
651 TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle
, AccountSid
, Flags
, AccountHandle
);
655 Status
= LsarOpenAccount((LSAPR_HANDLE
)PolicyHandle
,
660 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
662 Status
= I_RpcMapWin32Status(RpcExceptionCode());
670 /******************************************************************************
683 LsaOpenPolicy(IN PLSA_UNICODE_STRING SystemName
,
684 IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes
,
685 IN ACCESS_MASK DesiredAccess
,
686 OUT PLSA_HANDLE PolicyHandle
)
690 TRACE("LsaOpenPolicy (%s,%p,0x%08x,%p)\n",
691 SystemName
? debugstr_w(SystemName
->Buffer
) : "(null)",
692 ObjectAttributes
, DesiredAccess
, PolicyHandle
);
694 /* FIXME: RPC should take care of this */
695 if (!LsapIsLocalComputer(SystemName
))
696 return RPC_NT_SERVER_UNAVAILABLE
;
700 *PolicyHandle
= NULL
;
702 Status
= LsarOpenPolicy(SystemName
? SystemName
->Buffer
: NULL
,
703 (PLSAPR_OBJECT_ATTRIBUTES
)ObjectAttributes
,
707 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
709 Status
= I_RpcMapWin32Status(RpcExceptionCode());
713 TRACE("LsaOpenPolicy() done (Status: 0x%08lx)\n", Status
);
724 LsaOpenTrustedDomainByName(IN LSA_HANDLE PolicyHandle
,
725 IN PLSA_UNICODE_STRING TrustedDomainName
,
726 IN ACCESS_MASK DesiredAccess
,
727 OUT PLSA_HANDLE TrustedDomainHandle
)
731 TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle
, TrustedDomainName
,
732 DesiredAccess
, TrustedDomainHandle
);
736 Status
= LsarOpenTrustedDomainByName((LSAPR_HANDLE
)PolicyHandle
,
737 (PRPC_UNICODE_STRING
)TrustedDomainName
,
739 TrustedDomainHandle
);
741 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
743 Status
= I_RpcMapWin32Status(RpcExceptionCode());
756 LsaQueryDomainInformationPolicy(
757 LSA_HANDLE PolicyHandle
,
758 POLICY_DOMAIN_INFORMATION_CLASS InformationClass
,
761 FIXME("(%p,0x%08x,%p)\n", PolicyHandle
, InformationClass
, Buffer
);
762 return STATUS_NOT_IMPLEMENTED
;
770 LsaQueryForestTrustInformation(
771 LSA_HANDLE PolicyHandle
,
772 PLSA_UNICODE_STRING TrustedDomainName
,
773 PLSA_FOREST_TRUST_INFORMATION
* ForestTrustInfo
)
775 FIXME("(%p,%p,%p) stub\n", PolicyHandle
, TrustedDomainName
, ForestTrustInfo
);
776 return STATUS_NOT_IMPLEMENTED
;
785 LsaQueryInformationPolicy(IN LSA_HANDLE PolicyHandle
,
786 IN POLICY_INFORMATION_CLASS InformationClass
,
789 PLSAPR_POLICY_INFORMATION PolicyInformation
= NULL
;
792 TRACE("(%p,0x%08x,%p)\n", PolicyHandle
, InformationClass
, Buffer
);
796 Status
= LsarQueryInformationPolicy((LSAPR_HANDLE
)PolicyHandle
,
799 *Buffer
= PolicyInformation
;
801 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
803 if (PolicyInformation
!= NULL
)
804 MIDL_user_free(PolicyInformation
);
806 Status
= I_RpcMapWin32Status(RpcExceptionCode());
810 TRACE("Done (Status: 0x%08x)\n", Status
);
821 LsaQueryTrustedDomainInfo(
822 LSA_HANDLE PolicyHandle
,
823 PSID TrustedDomainSid
,
824 TRUSTED_INFORMATION_CLASS InformationClass
,
827 FIXME("(%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainSid
, InformationClass
, Buffer
);
828 return STATUS_OBJECT_NAME_NOT_FOUND
;
837 LsaQueryTrustedDomainInfoByName(IN LSA_HANDLE PolicyHandle
,
838 IN PLSA_UNICODE_STRING TrustedDomainName
,
839 IN TRUSTED_INFORMATION_CLASS InformationClass
,
844 TRACE("(%p,%p,%d,%p)\n", PolicyHandle
, TrustedDomainName
, InformationClass
, Buffer
);
846 if (InformationClass
== 9 /*TrustedDomainAuthInformationInternal*/ ||
847 InformationClass
== 10 /*TrustedDomainFullInformationInternal*/)
848 return STATUS_INVALID_INFO_CLASS
;
852 Status
= LsarQueryTrustedDomainInfoByName((LSAPR_HANDLE
)PolicyHandle
,
853 (PRPC_UNICODE_STRING
)TrustedDomainName
,
855 (unsigned long *)Buffer
); // Shuld be: (PLSAPR_POLICY_INFORMATION *)Buffer
857 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
859 Status
= I_RpcMapWin32Status(RpcExceptionCode());
872 LsaRemoveAccountRights(IN LSA_HANDLE PolicyHandle
,
874 IN BOOLEAN AllRights
,
875 IN PLSA_UNICODE_STRING UserRights
,
876 IN ULONG CountOfRights
)
878 LSAPR_USER_RIGHT_SET UserRightSet
;
881 TRACE("(%p,%p,%d,%p,0x%08x) stub\n", PolicyHandle
, AccountSid
, AllRights
, UserRights
, CountOfRights
);
883 UserRightSet
.Entries
= CountOfRights
;
884 UserRightSet
.UserRights
= (PRPC_UNICODE_STRING
)UserRights
;
888 Status
= LsarRemoveAccountRights((LSAPR_HANDLE
)PolicyHandle
,
889 (PRPC_SID
)AccountSid
,
893 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
895 Status
= I_RpcMapWin32Status(RpcExceptionCode());
899 return STATUS_SUCCESS
;
908 LsaRetrievePrivateData(
909 LSA_HANDLE PolicyHandle
,
910 PLSA_UNICODE_STRING KeyName
,
911 PLSA_UNICODE_STRING
*PrivateData
)
913 FIXME("(%p,%p,%p) stub\n", PolicyHandle
, KeyName
, PrivateData
);
914 return STATUS_OBJECT_NAME_NOT_FOUND
;
922 LsaSetDomainInformationPolicy(
923 LSA_HANDLE PolicyHandle
,
924 POLICY_DOMAIN_INFORMATION_CLASS InformationClass
,
927 FIXME("(%p,0x%08x,%p) stub\n", PolicyHandle
, InformationClass
, Buffer
);
928 return STATUS_UNSUCCESSFUL
;
937 LsaSetInformationPolicy(IN LSA_HANDLE PolicyHandle
,
938 IN POLICY_INFORMATION_CLASS InformationClass
,
943 TRACE("(%p,0x%08x,%p)\n", PolicyHandle
, InformationClass
, Buffer
);
947 Status
= LsarSetInformationPolicy((LSAPR_HANDLE
)PolicyHandle
,
949 (PLSAPR_POLICY_INFORMATION
)Buffer
);
951 RpcExcept(EXCEPTION_EXECUTE_HANDLER
)
953 Status
= I_RpcMapWin32Status(RpcExceptionCode());
964 NTSTATUS WINAPI
LsaSetSecret(
965 IN LSA_HANDLE SecretHandle
,
966 IN PLSA_UNICODE_STRING EncryptedCurrentValue
,
967 IN PLSA_UNICODE_STRING EncryptedOldValue
)
969 FIXME("(%p,%p,%p) stub\n", SecretHandle
, EncryptedCurrentValue
,
971 return STATUS_SUCCESS
;
979 LsaSetForestTrustInformation(
980 LSA_HANDLE PolicyHandle
,
981 PLSA_UNICODE_STRING TrustedDomainName
,
982 PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo
,
984 PLSA_FOREST_TRUST_COLLISION_INFORMATION
*CollisionInfo
)
986 FIXME("(%p,%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainName
, ForestTrustInfo
, CheckOnly
, CollisionInfo
);
987 return STATUS_NOT_IMPLEMENTED
;
995 LsaSetTrustedDomainInfoByName(
996 LSA_HANDLE PolicyHandle
,
997 PLSA_UNICODE_STRING TrustedDomainName
,
998 TRUSTED_INFORMATION_CLASS InformationClass
,
1001 FIXME("(%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainName
, InformationClass
, Buffer
);
1002 return STATUS_SUCCESS
;
1008 NTSTATUS WINAPI
LsaRegisterPolicyChangeNotification(
1009 POLICY_NOTIFICATION_INFORMATION_CLASS
class,
1012 FIXME("(%d,%p) stub\n", class, event
);
1013 return STATUS_UNSUCCESSFUL
;
1021 LsaSetTrustedDomainInformation(
1022 LSA_HANDLE PolicyHandle
,
1023 PSID TrustedDomainSid
,
1024 TRUSTED_INFORMATION_CLASS InformationClass
,
1027 FIXME("(%p,%p,%d,%p) stub\n", PolicyHandle
, TrustedDomainSid
, InformationClass
, Buffer
);
1028 return STATUS_SUCCESS
;
1036 LsaStorePrivateData(
1037 LSA_HANDLE PolicyHandle
,
1038 PLSA_UNICODE_STRING KeyName
,
1039 PLSA_UNICODE_STRING PrivateData
)
1041 FIXME("(%p,%p,%p) stub\n", PolicyHandle
, KeyName
, PrivateData
);
1042 return STATUS_OBJECT_NAME_NOT_FOUND
;
1048 NTSTATUS WINAPI
LsaUnregisterPolicyChangeNotification(
1049 POLICY_NOTIFICATION_INFORMATION_CLASS
class,
1052 FIXME("(%d,%p) stub\n", class, event
);
1053 return STATUS_SUCCESS
;
1062 PUNICODE_STRING
*UserName
,
1063 PUNICODE_STRING
*DomainName
)
1065 FIXME("(%p,%p) stub\n", UserName
, DomainName
);
1066 return STATUS_NOT_IMPLEMENTED
;
1074 LsaQueryInfoTrustedDomain (DWORD Unknonw0
,
1078 FIXME("(%d,%d,%d) stub\n", Unknonw0
, Unknonw1
, Unknonw2
);
1079 return STATUS_NOT_IMPLEMENTED
;