mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 08:25:48 +00:00
[ADVAPI32]
Implement LsaAddPrivilegesToAccount(), LsaCreateTrustedDomain(), LsaDeleteTrustedDomain() and LsaOpenTrustedDomainByName(). svn path=/trunk/; revision=49174
This commit is contained in:
parent
36edd7ee75
commit
eccf8af929
3 changed files with 133 additions and 40 deletions
|
@ -345,12 +345,12 @@
|
||||||
@ stub LookupSecurityDescriptorPartsA
|
@ stub LookupSecurityDescriptorPartsA
|
||||||
@ stub LookupSecurityDescriptorPartsW
|
@ stub LookupSecurityDescriptorPartsW
|
||||||
@ stdcall LsaAddAccountRights(ptr ptr ptr long)
|
@ stdcall LsaAddAccountRights(ptr ptr ptr long)
|
||||||
@ stub LsaAddPrivilegesToAccount
|
@ stdcall LsaAddPrivilegesToAccount(ptr ptr)
|
||||||
@ stub LsaClearAuditLog
|
@ stub LsaClearAuditLog
|
||||||
@ stdcall LsaClose(ptr)
|
@ stdcall LsaClose(ptr)
|
||||||
@ stdcall LsaCreateAccount(ptr ptr long ptr)
|
@ stdcall LsaCreateAccount(ptr ptr long ptr)
|
||||||
@ stub LsaCreateSecret
|
@ stub LsaCreateSecret
|
||||||
@ stub LsaCreateTrustedDomain
|
@ stdcall LsaCreateTrustedDomain(ptr ptr long ptr)
|
||||||
@ stdcall LsaCreateTrustedDomainEx(ptr ptr ptr long ptr)
|
@ stdcall LsaCreateTrustedDomainEx(ptr ptr ptr long ptr)
|
||||||
@ stdcall LsaDelete(ptr)
|
@ stdcall LsaDelete(ptr)
|
||||||
@ stdcall LsaDeleteTrustedDomain(ptr ptr)
|
@ stdcall LsaDeleteTrustedDomain(ptr ptr)
|
||||||
|
@ -395,10 +395,9 @@
|
||||||
@ stdcall LsaRemoveAccountRights(ptr ptr long ptr long)
|
@ stdcall LsaRemoveAccountRights(ptr ptr long ptr long)
|
||||||
@ stub LsaRemovePrivilegesFromAccount
|
@ stub LsaRemovePrivilegesFromAccount
|
||||||
@ stdcall LsaRetrievePrivateData(ptr ptr ptr)
|
@ stdcall LsaRetrievePrivateData(ptr ptr ptr)
|
||||||
# @ stub LsaSetDomainInformationPolicy
|
@ stdcall LsaSetDomainInformationPolicy(ptr long ptr)
|
||||||
# @ stub LsaSetForestTrustInformation
|
|
||||||
@ stdcall LsaSetInformationPolicy(long long ptr)
|
|
||||||
@ stub LsaSetForestTrustInformation
|
@ stub LsaSetForestTrustInformation
|
||||||
|
@ stdcall LsaSetInformationPolicy(long long ptr)
|
||||||
@ stub LsaSetInformationTrustedDomain
|
@ stub LsaSetInformationTrustedDomain
|
||||||
@ stub LsaSetQuotasForAccount
|
@ stub LsaSetQuotasForAccount
|
||||||
@ stdcall LsaSetSecret(ptr ptr ptr)
|
@ stdcall LsaSetSecret(ptr ptr ptr)
|
||||||
|
|
|
@ -95,8 +95,9 @@ PLSAPR_SERVER_NAME_unbind(PLSAPR_SERVER_NAME pszSystemName,
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI
|
NTSTATUS
|
||||||
LsaClose(LSA_HANDLE ObjectHandle)
|
WINAPI
|
||||||
|
LsaClose(IN LSA_HANDLE ObjectHandle)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
@ -119,8 +120,9 @@ LsaClose(LSA_HANDLE ObjectHandle)
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI
|
NTSTATUS
|
||||||
LsaDelete(LSA_HANDLE ObjectHandle)
|
WINAPI
|
||||||
|
LsaDelete(IN LSA_HANDLE ObjectHandle)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
@ -156,6 +158,33 @@ LsaAddAccountRights(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
NTSTATUS
|
||||||
|
WINAPI
|
||||||
|
LsaAddPrivilegesToAccount(IN LSA_HANDLE AccountHandle,
|
||||||
|
IN PPRIVILEGE_SET PrivilegeSet)
|
||||||
|
{
|
||||||
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
TRACE("(%p,%p) stub\n", AccountHandle, PrivilegeSet);
|
||||||
|
|
||||||
|
RpcTryExcept
|
||||||
|
{
|
||||||
|
Status = LsarAddPrivilegesToAccount((LSAPR_HANDLE)AccountHandle,
|
||||||
|
(PLSAPR_PRIVILEGE_SET)PrivilegeSet);
|
||||||
|
}
|
||||||
|
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
Status = I_RpcMapWin32Status(RpcExceptionCode());
|
||||||
|
}
|
||||||
|
RpcEndExcept;
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -164,7 +193,7 @@ WINAPI
|
||||||
LsaCreateAccount(IN LSA_HANDLE PolicyHandle,
|
LsaCreateAccount(IN LSA_HANDLE PolicyHandle,
|
||||||
IN PSID AccountSid,
|
IN PSID AccountSid,
|
||||||
IN ULONG Flags,
|
IN ULONG Flags,
|
||||||
IN OUT PLSA_HANDLE AccountHandle)
|
OUT PLSA_HANDLE AccountHandle)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
@ -187,6 +216,38 @@ LsaCreateAccount(IN LSA_HANDLE PolicyHandle,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
NTSTATUS
|
||||||
|
WINAPI
|
||||||
|
LsaCreateTrustedDomain(IN LSA_HANDLE PolicyHandle,
|
||||||
|
IN PLSA_TRUST_INFORMATION TrustedDomainInformation,
|
||||||
|
IN ACCESS_MASK DesiredAccess,
|
||||||
|
OUT PLSA_HANDLE TrustedDomainHandle)
|
||||||
|
{
|
||||||
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle, TrustedDomainInformation,
|
||||||
|
DesiredAccess, TrustedDomainHandle);
|
||||||
|
|
||||||
|
RpcTryExcept
|
||||||
|
{
|
||||||
|
Status = LsarCreateTrustedDomain((LSAPR_HANDLE)PolicyHandle,
|
||||||
|
(PLSAPR_TRUST_INFORMATION)TrustedDomainInformation,
|
||||||
|
DesiredAccess,
|
||||||
|
(PLSAPR_HANDLE)TrustedDomainHandle);
|
||||||
|
}
|
||||||
|
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
Status = I_RpcMapWin32Status(RpcExceptionCode());
|
||||||
|
}
|
||||||
|
RpcEndExcept;
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
|
@ -205,16 +266,29 @@ LsaCreateTrustedDomainEx(
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
LsaDeleteTrustedDomain(
|
LsaDeleteTrustedDomain(IN LSA_HANDLE PolicyHandle,
|
||||||
LSA_HANDLE PolicyHandle,
|
IN PSID TrustedDomainSid)
|
||||||
PSID TrustedDomainSid)
|
|
||||||
{
|
{
|
||||||
FIXME("(%p,%p) stub\n", PolicyHandle, TrustedDomainSid);
|
NTSTATUS Status;
|
||||||
return STATUS_SUCCESS;
|
|
||||||
|
TRACE("(%p,%p)\n", PolicyHandle, TrustedDomainSid);
|
||||||
|
|
||||||
|
RpcTryExcept
|
||||||
|
{
|
||||||
|
Status = LsarDeleteTrustedDomain((LSAPR_HANDLE)PolicyHandle,
|
||||||
|
TrustedDomainSid);
|
||||||
|
}
|
||||||
|
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
Status = I_RpcMapWin32Status(RpcExceptionCode());
|
||||||
|
}
|
||||||
|
RpcEndExcept;
|
||||||
|
|
||||||
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -526,7 +600,7 @@ LsaLookupSids(IN LSA_HANDLE PolicyHandle,
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
ULONG WINAPI
|
ULONG WINAPI
|
||||||
LsaNtStatusToWinError(NTSTATUS Status)
|
LsaNtStatusToWinError(IN NTSTATUS Status)
|
||||||
{
|
{
|
||||||
TRACE("(%lx)\n", Status);
|
TRACE("(%lx)\n", Status);
|
||||||
return RtlNtStatusToDosError(Status);
|
return RtlNtStatusToDosError(Status);
|
||||||
|
@ -541,7 +615,7 @@ WINAPI
|
||||||
LsaOpenAccount(IN LSA_HANDLE PolicyHandle,
|
LsaOpenAccount(IN LSA_HANDLE PolicyHandle,
|
||||||
IN PSID AccountSid,
|
IN PSID AccountSid,
|
||||||
IN ULONG Flags,
|
IN ULONG Flags,
|
||||||
IN OUT PLSA_HANDLE AccountHandle)
|
OUT PLSA_HANDLE AccountHandle)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
@ -573,15 +647,14 @@ LsaOpenAccount(IN LSA_HANDLE PolicyHandle,
|
||||||
* x3 []
|
* x3 []
|
||||||
* x4 []
|
* x4 []
|
||||||
*
|
*
|
||||||
* @unimplemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
LsaOpenPolicy(
|
LsaOpenPolicy(IN PLSA_UNICODE_STRING SystemName,
|
||||||
IN PLSA_UNICODE_STRING SystemName,
|
IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes,
|
||||||
IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes,
|
IN ACCESS_MASK DesiredAccess,
|
||||||
IN ACCESS_MASK DesiredAccess,
|
OUT PLSA_HANDLE PolicyHandle)
|
||||||
IN OUT PLSA_HANDLE PolicyHandle)
|
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
@ -615,20 +688,37 @@ LsaOpenPolicy(
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
LsaOpenTrustedDomainByName(
|
LsaOpenTrustedDomainByName(IN LSA_HANDLE PolicyHandle,
|
||||||
LSA_HANDLE PolicyHandle,
|
IN PLSA_UNICODE_STRING TrustedDomainName,
|
||||||
PLSA_UNICODE_STRING TrustedDomainName,
|
IN ACCESS_MASK DesiredAccess,
|
||||||
ACCESS_MASK DesiredAccess,
|
OUT PLSA_HANDLE TrustedDomainHandle)
|
||||||
PLSA_HANDLE TrustedDomainHandle)
|
|
||||||
{
|
{
|
||||||
FIXME("(%p,%p,0x%08x,%p) stub\n", PolicyHandle, TrustedDomainName, DesiredAccess, TrustedDomainHandle);
|
NTSTATUS Status;
|
||||||
return STATUS_OBJECT_NAME_NOT_FOUND;
|
|
||||||
|
TRACE("(%p,%p,0x%08x,%p)\n", PolicyHandle, TrustedDomainName,
|
||||||
|
DesiredAccess, TrustedDomainHandle);
|
||||||
|
|
||||||
|
RpcTryExcept
|
||||||
|
{
|
||||||
|
Status = LsarOpenTrustedDomainByName((LSAPR_HANDLE)PolicyHandle,
|
||||||
|
(PRPC_UNICODE_STRING)TrustedDomainName,
|
||||||
|
DesiredAccess,
|
||||||
|
TrustedDomainHandle);
|
||||||
|
}
|
||||||
|
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
Status = I_RpcMapWin32Status(RpcExceptionCode());
|
||||||
|
}
|
||||||
|
RpcEndExcept;
|
||||||
|
|
||||||
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
|
@ -660,10 +750,11 @@ LsaQueryForestTrustInformation(
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI
|
NTSTATUS
|
||||||
LsaQueryInformationPolicy(LSA_HANDLE PolicyHandle,
|
WINAPI
|
||||||
POLICY_INFORMATION_CLASS InformationClass,
|
LsaQueryInformationPolicy(IN LSA_HANDLE PolicyHandle,
|
||||||
PVOID *Buffer)
|
IN POLICY_INFORMATION_CLASS InformationClass,
|
||||||
|
OUT PVOID *Buffer)
|
||||||
{
|
{
|
||||||
PLSAPR_POLICY_INFORMATION PolicyInformation = NULL;
|
PLSAPR_POLICY_INFORMATION PolicyInformation = NULL;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
|
@ -671,15 +671,16 @@ typedef struct _TRUSTED_DOMAIN_FULL_INFORMATION {
|
||||||
BOOLEAN WINAPI RtlGenRandom(PVOID,ULONG);
|
BOOLEAN WINAPI RtlGenRandom(PVOID,ULONG);
|
||||||
|
|
||||||
NTSTATUS NTAPI LsaAddAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING,ULONG);
|
NTSTATUS NTAPI LsaAddAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING,ULONG);
|
||||||
|
NTSTATUS NTAPI LsaAddPrivilegesToAccount(LSA_HANDLE, PPRIVILEGE_SET);
|
||||||
NTSTATUS NTAPI LsaCallAuthenticationPackage(HANDLE,ULONG,PVOID,ULONG,PVOID*,
|
NTSTATUS NTAPI LsaCallAuthenticationPackage(HANDLE,ULONG,PVOID,ULONG,PVOID*,
|
||||||
PULONG,PNTSTATUS);
|
PULONG,PNTSTATUS);
|
||||||
NTSTATUS NTAPI LsaClose(LSA_HANDLE);
|
NTSTATUS NTAPI LsaClose(LSA_HANDLE);
|
||||||
NTSTATUS NTAPI LsaConnectUntrusted(PHANDLE);
|
NTSTATUS NTAPI LsaConnectUntrusted(PHANDLE);
|
||||||
NTSTATUS NTAPI LsaCreateAccount(LSA_HANDLE, PSID, ULONG, PLSA_HANDLE);
|
NTSTATUS NTAPI LsaCreateAccount(LSA_HANDLE, PSID, ULONG, PLSA_HANDLE);
|
||||||
NTSTATUS NTAPI LsaCreateTrustedDomainEx(LSA_HANDLE,
|
NTSTATUS NTAPI LsaCreateTrustedDomain(LSA_HANDLE, PLSA_TRUST_INFORMATION,
|
||||||
PTRUSTED_DOMAIN_INFORMATION_EX,
|
ACCESS_MASK, PLSA_HANDLE);
|
||||||
PTRUSTED_DOMAIN_AUTH_INFORMATION,ACCESS_MASK,
|
NTSTATUS NTAPI LsaCreateTrustedDomainEx(LSA_HANDLE, PTRUSTED_DOMAIN_INFORMATION_EX,
|
||||||
PLSA_HANDLE);
|
PTRUSTED_DOMAIN_AUTH_INFORMATION, ACCESS_MASK, PLSA_HANDLE);
|
||||||
NTSTATUS NTAPI LsaDeleteTrustedDomain(LSA_HANDLE,PSID);
|
NTSTATUS NTAPI LsaDeleteTrustedDomain(LSA_HANDLE,PSID);
|
||||||
NTSTATUS NTAPI LsaDeregisterLogonProcess(HANDLE);
|
NTSTATUS NTAPI LsaDeregisterLogonProcess(HANDLE);
|
||||||
NTSTATUS NTAPI LsaEnumerateAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING*,PULONG);
|
NTSTATUS NTAPI LsaEnumerateAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING*,PULONG);
|
||||||
|
@ -707,6 +708,8 @@ ULONG NTAPI LsaNtStatusToWinError(NTSTATUS);
|
||||||
NTSTATUS NTAPI LsaOpenAccount(LSA_HANDLE, PSID, ULONG, PLSA_HANDLE);
|
NTSTATUS NTAPI LsaOpenAccount(LSA_HANDLE, PSID, ULONG, PLSA_HANDLE);
|
||||||
NTSTATUS NTAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,
|
NTSTATUS NTAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,
|
||||||
ACCESS_MASK,PLSA_HANDLE);
|
ACCESS_MASK,PLSA_HANDLE);
|
||||||
|
NTSTATUS NTAPI LsaOpenTrustedDomainByName(LSA_HANDLE, PLSA_UNICODE_STRING,
|
||||||
|
ACCESS_MASK, PLSA_HANDLE);
|
||||||
NTSTATUS NTAPI LsaQueryDomainInformationPolicy(LSA_HANDLE,
|
NTSTATUS NTAPI LsaQueryDomainInformationPolicy(LSA_HANDLE,
|
||||||
POLICY_DOMAIN_INFORMATION_CLASS,PVOID*);
|
POLICY_DOMAIN_INFORMATION_CLASS,PVOID*);
|
||||||
NTSTATUS NTAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
|
NTSTATUS NTAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue