mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 18:35:41 +00:00
[lsalib]
Fix indentation. No code changes. svn path=/trunk/; revision=44776
This commit is contained in:
parent
e50eff1409
commit
2db30d58d2
1 changed files with 240 additions and 241 deletions
|
@ -28,97 +28,99 @@ extern HANDLE Secur32Heap;
|
||||||
NTSTATUS WINAPI
|
NTSTATUS WINAPI
|
||||||
LsaDeregisterLogonProcess(HANDLE LsaHandle)
|
LsaDeregisterLogonProcess(HANDLE LsaHandle)
|
||||||
{
|
{
|
||||||
LSASS_REQUEST Request;
|
LSASS_REQUEST Request;
|
||||||
LSASS_REPLY Reply;
|
LSASS_REPLY Reply;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
Request.Header.u1.s1.DataLength = 0;
|
Request.Header.u1.s1.DataLength = 0;
|
||||||
Request.Header.u1.s1.TotalLength = sizeof(LSASS_REQUEST);
|
Request.Header.u1.s1.TotalLength = sizeof(LSASS_REQUEST);
|
||||||
Request.Type = LSASS_REQUEST_DEREGISTER_LOGON_PROCESS;
|
Request.Type = LSASS_REQUEST_DEREGISTER_LOGON_PROCESS;
|
||||||
Status = NtRequestWaitReplyPort(LsaHandle,
|
Status = NtRequestWaitReplyPort(LsaHandle,
|
||||||
&Request.Header,
|
&Request.Header,
|
||||||
&Reply.Header);
|
&Reply.Header);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!NT_SUCCESS(Reply.Status))
|
if (!NT_SUCCESS(Reply.Status))
|
||||||
{
|
{
|
||||||
return(Reply.Status);
|
return Reply.Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI
|
NTSTATUS WINAPI
|
||||||
LsaConnectUntrusted(PHANDLE LsaHandle)
|
LsaConnectUntrusted(PHANDLE LsaHandle)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return STATUS_UNSUCCESSFUL;
|
return STATUS_UNSUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI
|
NTSTATUS WINAPI
|
||||||
LsaCallAuthenticationPackage(HANDLE LsaHandle,
|
LsaCallAuthenticationPackage(HANDLE LsaHandle,
|
||||||
ULONG AuthenticationPackage,
|
ULONG AuthenticationPackage,
|
||||||
PVOID ProtocolSubmitBuffer,
|
PVOID ProtocolSubmitBuffer,
|
||||||
ULONG SubmitBufferLength,
|
ULONG SubmitBufferLength,
|
||||||
PVOID* ProtocolReturnBuffer,
|
PVOID *ProtocolReturnBuffer,
|
||||||
PULONG ReturnBufferLength,
|
PULONG ReturnBufferLength,
|
||||||
PNTSTATUS ProtocolStatus)
|
PNTSTATUS ProtocolStatus)
|
||||||
{
|
{
|
||||||
PLSASS_REQUEST Request;
|
PLSASS_REQUEST Request;
|
||||||
PLSASS_REPLY Reply;
|
PLSASS_REPLY Reply;
|
||||||
LSASS_REQUEST RawRequest;
|
LSASS_REQUEST RawRequest;
|
||||||
LSASS_REPLY RawReply;
|
LSASS_REPLY RawReply;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
ULONG OutBufferSize;
|
ULONG OutBufferSize;
|
||||||
|
|
||||||
Request = (PLSASS_REQUEST)&RawRequest;
|
Request = (PLSASS_REQUEST)&RawRequest;
|
||||||
Reply = (PLSASS_REPLY)&RawReply;
|
Reply = (PLSASS_REPLY)&RawReply;
|
||||||
|
|
||||||
Request->Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) + SubmitBufferLength -
|
Request->Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) + SubmitBufferLength -
|
||||||
sizeof(PORT_MESSAGE);
|
sizeof(PORT_MESSAGE);
|
||||||
Request->Header.u1.s1.TotalLength =
|
Request->Header.u1.s1.TotalLength =
|
||||||
Request->Header.u1.s1.DataLength + sizeof(PORT_MESSAGE);
|
Request->Header.u1.s1.DataLength + sizeof(PORT_MESSAGE);
|
||||||
Request->Type = LSASS_REQUEST_CALL_AUTHENTICATION_PACKAGE;
|
Request->Type = LSASS_REQUEST_CALL_AUTHENTICATION_PACKAGE;
|
||||||
Request->d.CallAuthenticationPackageRequest.AuthenticationPackage =
|
Request->d.CallAuthenticationPackageRequest.AuthenticationPackage =
|
||||||
AuthenticationPackage;
|
AuthenticationPackage;
|
||||||
Request->d.CallAuthenticationPackageRequest.InBufferLength =
|
Request->d.CallAuthenticationPackageRequest.InBufferLength =
|
||||||
SubmitBufferLength;
|
SubmitBufferLength;
|
||||||
memcpy(Request->d.CallAuthenticationPackageRequest.InBuffer,
|
memcpy(Request->d.CallAuthenticationPackageRequest.InBuffer,
|
||||||
ProtocolSubmitBuffer,
|
ProtocolSubmitBuffer,
|
||||||
SubmitBufferLength);
|
SubmitBufferLength);
|
||||||
|
|
||||||
Status = NtRequestWaitReplyPort(LsaHandle,
|
Status = NtRequestWaitReplyPort(LsaHandle,
|
||||||
&Request->Header,
|
&Request->Header,
|
||||||
&Reply->Header);
|
&Reply->Header);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!NT_SUCCESS(Reply->Status))
|
if (!NT_SUCCESS(Reply->Status))
|
||||||
{
|
{
|
||||||
return(Reply->Status);
|
return Reply->Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
OutBufferSize = Reply->d.CallAuthenticationPackageReply.OutBufferLength;
|
OutBufferSize = Reply->d.CallAuthenticationPackageReply.OutBufferLength;
|
||||||
*ProtocolReturnBuffer = RtlAllocateHeap(Secur32Heap,
|
*ProtocolReturnBuffer = RtlAllocateHeap(Secur32Heap,
|
||||||
0,
|
0,
|
||||||
OutBufferSize);
|
OutBufferSize);
|
||||||
*ReturnBufferLength = OutBufferSize;
|
*ReturnBufferLength = OutBufferSize;
|
||||||
memcpy(*ProtocolReturnBuffer,
|
memcpy(*ProtocolReturnBuffer,
|
||||||
Reply->d.CallAuthenticationPackageReply.OutBuffer,
|
Reply->d.CallAuthenticationPackageReply.OutBuffer,
|
||||||
*ReturnBufferLength);
|
*ReturnBufferLength);
|
||||||
|
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -128,7 +130,7 @@ LsaCallAuthenticationPackage(HANDLE LsaHandle,
|
||||||
NTSTATUS WINAPI
|
NTSTATUS WINAPI
|
||||||
LsaFreeReturnBuffer(PVOID Buffer)
|
LsaFreeReturnBuffer(PVOID Buffer)
|
||||||
{
|
{
|
||||||
return(RtlFreeHeap(Secur32Heap, 0, Buffer));
|
return RtlFreeHeap(Secur32Heap, 0, Buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,36 +139,37 @@ LsaFreeReturnBuffer(PVOID Buffer)
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI
|
NTSTATUS WINAPI
|
||||||
LsaLookupAuthenticationPackage(HANDLE LsaHandle,
|
LsaLookupAuthenticationPackage(HANDLE LsaHandle,
|
||||||
PLSA_STRING PackageName,
|
PLSA_STRING PackageName,
|
||||||
PULONG AuthenticationPackage)
|
PULONG AuthenticationPackage)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PLSASS_REQUEST Request;
|
PLSASS_REQUEST Request;
|
||||||
LSASS_REQUEST RawRequest;
|
LSASS_REQUEST RawRequest;
|
||||||
LSASS_REPLY Reply;
|
LSASS_REPLY Reply;
|
||||||
|
|
||||||
Request = (PLSASS_REQUEST)&RawRequest;
|
Request = (PLSASS_REQUEST)&RawRequest;
|
||||||
Request->Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) + PackageName->Length -
|
Request->Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) + PackageName->Length -
|
||||||
sizeof(PORT_MESSAGE);
|
sizeof(PORT_MESSAGE);
|
||||||
Request->Header.u1.s1.TotalLength = Request->Header.u1.s1.DataLength +
|
Request->Header.u1.s1.TotalLength = Request->Header.u1.s1.DataLength +
|
||||||
sizeof(PORT_MESSAGE);
|
sizeof(PORT_MESSAGE);
|
||||||
Request->Type = LSASS_REQUEST_LOOKUP_AUTHENTICATION_PACKAGE;
|
Request->Type = LSASS_REQUEST_LOOKUP_AUTHENTICATION_PACKAGE;
|
||||||
|
|
||||||
Status = NtRequestWaitReplyPort(LsaHandle,
|
Status = NtRequestWaitReplyPort(LsaHandle,
|
||||||
&Request->Header,
|
&Request->Header,
|
||||||
&Reply.Header);
|
&Reply.Header);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
if (!NT_SUCCESS(Reply.Status))
|
|
||||||
{
|
|
||||||
return(Reply.Status);
|
|
||||||
}
|
|
||||||
|
|
||||||
*AuthenticationPackage = Reply.d.LookupAuthenticationPackageReply.Package;
|
if (!NT_SUCCESS(Reply.Status))
|
||||||
|
{
|
||||||
|
return Reply.Status;
|
||||||
|
}
|
||||||
|
|
||||||
return(Reply.Status);
|
*AuthenticationPackage = Reply.d.LookupAuthenticationPackageReply.Package;
|
||||||
|
|
||||||
|
return Reply.Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -175,102 +178,102 @@ LsaLookupAuthenticationPackage(HANDLE LsaHandle,
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI
|
NTSTATUS WINAPI
|
||||||
LsaLogonUser(HANDLE LsaHandle,
|
LsaLogonUser(HANDLE LsaHandle,
|
||||||
PLSA_STRING OriginName,
|
PLSA_STRING OriginName,
|
||||||
SECURITY_LOGON_TYPE LogonType,
|
SECURITY_LOGON_TYPE LogonType,
|
||||||
ULONG AuthenticationPackage,
|
ULONG AuthenticationPackage,
|
||||||
PVOID AuthenticationInformation,
|
PVOID AuthenticationInformation,
|
||||||
ULONG AuthenticationInformationLength,
|
ULONG AuthenticationInformationLength,
|
||||||
PTOKEN_GROUPS LocalGroups,
|
PTOKEN_GROUPS LocalGroups,
|
||||||
PTOKEN_SOURCE SourceContext,
|
PTOKEN_SOURCE SourceContext,
|
||||||
PVOID* ProfileBuffer,
|
PVOID *ProfileBuffer,
|
||||||
PULONG ProfileBufferLength,
|
PULONG ProfileBufferLength,
|
||||||
PLUID LogonId,
|
PLUID LogonId,
|
||||||
PHANDLE Token,
|
PHANDLE Token,
|
||||||
PQUOTA_LIMITS Quotas,
|
PQUOTA_LIMITS Quotas,
|
||||||
PNTSTATUS SubStatus)
|
PNTSTATUS SubStatus)
|
||||||
{
|
{
|
||||||
ULONG RequestLength;
|
ULONG RequestLength;
|
||||||
ULONG CurrentLength;
|
ULONG CurrentLength;
|
||||||
PLSASS_REQUEST Request;
|
PLSASS_REQUEST Request;
|
||||||
LSASS_REQUEST RawMessage;
|
LSASS_REQUEST RawMessage;
|
||||||
PLSASS_REPLY Reply;
|
PLSASS_REPLY Reply;
|
||||||
LSASS_REPLY RawReply;
|
LSASS_REPLY RawReply;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
RequestLength = sizeof(LSASS_REQUEST) - sizeof(PORT_MESSAGE);
|
RequestLength = sizeof(LSASS_REQUEST) - sizeof(PORT_MESSAGE);
|
||||||
RequestLength = RequestLength + (OriginName->Length * sizeof(WCHAR));
|
RequestLength = RequestLength + (OriginName->Length * sizeof(WCHAR));
|
||||||
RequestLength = RequestLength + AuthenticationInformationLength;
|
RequestLength = RequestLength + AuthenticationInformationLength;
|
||||||
RequestLength = RequestLength +
|
RequestLength = RequestLength +
|
||||||
(LocalGroups->GroupCount * sizeof(SID_AND_ATTRIBUTES));
|
(LocalGroups->GroupCount * sizeof(SID_AND_ATTRIBUTES));
|
||||||
|
|
||||||
CurrentLength = 0;
|
CurrentLength = 0;
|
||||||
Request = (PLSASS_REQUEST)&RawMessage;
|
Request = (PLSASS_REQUEST)&RawMessage;
|
||||||
|
|
||||||
Request->d.LogonUserRequest.OriginNameLength = OriginName->Length;
|
Request->d.LogonUserRequest.OriginNameLength = OriginName->Length;
|
||||||
Request->d.LogonUserRequest.OriginName = (PWSTR)&RawMessage + CurrentLength;
|
Request->d.LogonUserRequest.OriginName = (PWSTR)&RawMessage + CurrentLength;
|
||||||
memcpy((PWSTR)&RawMessage + CurrentLength,
|
memcpy((PWSTR)&RawMessage + CurrentLength,
|
||||||
OriginName->Buffer,
|
OriginName->Buffer,
|
||||||
OriginName->Length * sizeof(WCHAR));
|
OriginName->Length * sizeof(WCHAR));
|
||||||
CurrentLength = CurrentLength + (OriginName->Length * sizeof(WCHAR));
|
CurrentLength = CurrentLength + (OriginName->Length * sizeof(WCHAR));
|
||||||
|
|
||||||
Request->d.LogonUserRequest.LogonType = LogonType;
|
Request->d.LogonUserRequest.LogonType = LogonType;
|
||||||
|
|
||||||
Request->d.LogonUserRequest.AuthenticationPackage =
|
Request->d.LogonUserRequest.AuthenticationPackage =
|
||||||
AuthenticationPackage;
|
AuthenticationPackage;
|
||||||
|
|
||||||
Request->d.LogonUserRequest.AuthenticationInformation =
|
Request->d.LogonUserRequest.AuthenticationInformation =
|
||||||
(PVOID)((ULONG_PTR)&RawMessage + CurrentLength);
|
(PVOID)((ULONG_PTR)&RawMessage + CurrentLength);
|
||||||
Request->d.LogonUserRequest.AuthenticationInformationLength =
|
Request->d.LogonUserRequest.AuthenticationInformationLength =
|
||||||
AuthenticationInformationLength;
|
AuthenticationInformationLength;
|
||||||
memcpy((PVOID)((ULONG_PTR)&RawMessage + CurrentLength),
|
memcpy((PVOID)((ULONG_PTR)&RawMessage + CurrentLength),
|
||||||
AuthenticationInformation,
|
AuthenticationInformation,
|
||||||
AuthenticationInformationLength);
|
AuthenticationInformationLength);
|
||||||
CurrentLength = CurrentLength + AuthenticationInformationLength;
|
CurrentLength = CurrentLength + AuthenticationInformationLength;
|
||||||
|
|
||||||
Request->d.LogonUserRequest.LocalGroupsCount = LocalGroups->GroupCount;
|
Request->d.LogonUserRequest.LocalGroupsCount = LocalGroups->GroupCount;
|
||||||
Request->d.LogonUserRequest.LocalGroups =
|
Request->d.LogonUserRequest.LocalGroups =
|
||||||
(PSID_AND_ATTRIBUTES)&RawMessage + CurrentLength;
|
(PSID_AND_ATTRIBUTES)&RawMessage + CurrentLength;
|
||||||
memcpy((PSID_AND_ATTRIBUTES)&RawMessage + CurrentLength,
|
memcpy((PSID_AND_ATTRIBUTES)&RawMessage + CurrentLength,
|
||||||
LocalGroups->Groups,
|
LocalGroups->Groups,
|
||||||
LocalGroups->GroupCount * sizeof(SID_AND_ATTRIBUTES));
|
LocalGroups->GroupCount * sizeof(SID_AND_ATTRIBUTES));
|
||||||
|
|
||||||
Request->d.LogonUserRequest.SourceContext = *SourceContext;
|
Request->d.LogonUserRequest.SourceContext = *SourceContext;
|
||||||
|
|
||||||
Request->Type = LSASS_REQUEST_LOGON_USER;
|
Request->Type = LSASS_REQUEST_LOGON_USER;
|
||||||
Request->Header.u1.s1.DataLength = RequestLength - sizeof(PORT_MESSAGE);
|
Request->Header.u1.s1.DataLength = RequestLength - sizeof(PORT_MESSAGE);
|
||||||
Request->Header.u1.s1.TotalLength = RequestLength + sizeof(PORT_MESSAGE);
|
Request->Header.u1.s1.TotalLength = RequestLength + sizeof(PORT_MESSAGE);
|
||||||
|
|
||||||
Reply = (PLSASS_REPLY)&RawReply;
|
Reply = (PLSASS_REPLY)&RawReply;
|
||||||
|
|
||||||
Status = NtRequestWaitReplyPort(LsaHandle,
|
Status = NtRequestWaitReplyPort(LsaHandle,
|
||||||
&Request->Header,
|
&Request->Header,
|
||||||
&Reply->Header);
|
&Reply->Header);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
*SubStatus = Reply->d.LogonUserReply.SubStatus;
|
*SubStatus = Reply->d.LogonUserReply.SubStatus;
|
||||||
|
|
||||||
if (!NT_SUCCESS(Reply->Status))
|
if (!NT_SUCCESS(Reply->Status))
|
||||||
{
|
{
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
*ProfileBuffer = RtlAllocateHeap(Secur32Heap,
|
*ProfileBuffer = RtlAllocateHeap(Secur32Heap,
|
||||||
0,
|
0,
|
||||||
Reply->d.LogonUserReply.ProfileBufferLength);
|
Reply->d.LogonUserReply.ProfileBufferLength);
|
||||||
memcpy(*ProfileBuffer,
|
memcpy(*ProfileBuffer,
|
||||||
(PVOID)((ULONG)Reply->d.LogonUserReply.Data +
|
(PVOID)((ULONG)Reply->d.LogonUserReply.Data +
|
||||||
(ULONG)Reply->d.LogonUserReply.ProfileBuffer),
|
(ULONG)Reply->d.LogonUserReply.ProfileBuffer),
|
||||||
Reply->d.LogonUserReply.ProfileBufferLength);
|
Reply->d.LogonUserReply.ProfileBufferLength);
|
||||||
*LogonId = Reply->d.LogonUserReply.LogonId;
|
*LogonId = Reply->d.LogonUserReply.LogonId;
|
||||||
*Token = Reply->d.LogonUserReply.Token;
|
*Token = Reply->d.LogonUserReply.Token;
|
||||||
memcpy(Quotas,
|
memcpy(Quotas,
|
||||||
&Reply->d.LogonUserReply.Quotas,
|
&Reply->d.LogonUserReply.Quotas,
|
||||||
sizeof(Reply->d.LogonUserReply.Quotas));
|
sizeof(Reply->d.LogonUserReply.Quotas));
|
||||||
|
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -279,113 +282,109 @@ LsaLogonUser(HANDLE LsaHandle,
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI
|
NTSTATUS WINAPI
|
||||||
LsaRegisterLogonProcess(PLSA_STRING LsaLogonProcessName,
|
LsaRegisterLogonProcess(PLSA_STRING LsaLogonProcessName,
|
||||||
PHANDLE Handle,
|
PHANDLE Handle,
|
||||||
PLSA_OPERATIONAL_MODE OperationalMode)
|
PLSA_OPERATIONAL_MODE OperationalMode)
|
||||||
{
|
{
|
||||||
UNICODE_STRING Portname = RTL_CONSTANT_STRING(L"\\SeLsaCommandPort");
|
UNICODE_STRING Portname = RTL_CONSTANT_STRING(L"\\SeLsaCommandPort");
|
||||||
ULONG ConnectInfoLength;
|
ULONG ConnectInfoLength;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LSASS_REQUEST Request;
|
LSASS_REQUEST Request;
|
||||||
LSASS_REPLY Reply;
|
LSASS_REPLY Reply;
|
||||||
|
|
||||||
ConnectInfoLength = 0;
|
ConnectInfoLength = 0;
|
||||||
Status = NtConnectPort(Handle,
|
Status = NtConnectPort(Handle,
|
||||||
&Portname,
|
&Portname,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
&ConnectInfoLength);
|
&ConnectInfoLength);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
Request.Type = LSASS_REQUEST_REGISTER_LOGON_PROCESS;
|
Request.Type = LSASS_REQUEST_REGISTER_LOGON_PROCESS;
|
||||||
Request.Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) -
|
Request.Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) -
|
||||||
sizeof(PORT_MESSAGE);
|
sizeof(PORT_MESSAGE);
|
||||||
Request.Header.u1.s1.TotalLength = sizeof(LSASS_REQUEST);
|
Request.Header.u1.s1.TotalLength = sizeof(LSASS_REQUEST);
|
||||||
|
|
||||||
Request.d.RegisterLogonProcessRequest.Length = LsaLogonProcessName->Length;
|
Request.d.RegisterLogonProcessRequest.Length = LsaLogonProcessName->Length;
|
||||||
memcpy(Request.d.RegisterLogonProcessRequest.LogonProcessNameBuffer,
|
memcpy(Request.d.RegisterLogonProcessRequest.LogonProcessNameBuffer,
|
||||||
LsaLogonProcessName->Buffer,
|
LsaLogonProcessName->Buffer,
|
||||||
Request.d.RegisterLogonProcessRequest.Length);
|
Request.d.RegisterLogonProcessRequest.Length);
|
||||||
|
|
||||||
Status = NtRequestWaitReplyPort(*Handle,
|
Status = NtRequestWaitReplyPort(*Handle,
|
||||||
&Request.Header,
|
&Request.Header,
|
||||||
&Reply.Header);
|
&Reply.Header);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
NtClose(*Handle);
|
NtClose(*Handle);
|
||||||
*Handle = NULL;
|
*Handle = NULL;
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!NT_SUCCESS(Reply.Status))
|
if (!NT_SUCCESS(Reply.Status))
|
||||||
{
|
{
|
||||||
NtClose(*Handle);
|
NtClose(*Handle);
|
||||||
*Handle = NULL;
|
*Handle = NULL;
|
||||||
return(Status);
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
*OperationalMode = Reply.d.RegisterLogonProcessReply.OperationalMode;
|
*OperationalMode = Reply.d.RegisterLogonProcessReply.OperationalMode;
|
||||||
|
|
||||||
return(Reply.Status);
|
return Reply.Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
LsaEnumerateLogonSessions(
|
LsaEnumerateLogonSessions(PULONG LogonSessionCount,
|
||||||
PULONG LogonSessionCount,
|
PLUID *LogonSessionList)
|
||||||
PLUID * LogonSessionList
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
LsaGetLogonSessionData(
|
LsaGetLogonSessionData(PLUID LogonId,
|
||||||
PLUID LogonId,
|
PSECURITY_LOGON_SESSION_DATA *ppLogonSessionData)
|
||||||
PSECURITY_LOGON_SESSION_DATA * ppLogonSessionData
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
LsaRegisterPolicyChangeNotification(
|
LsaRegisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass,
|
||||||
POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass,
|
HANDLE NotificationEventHandle)
|
||||||
HANDLE NotificationEventHandle
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
LsaUnregisterPolicyChangeNotification(
|
LsaUnregisterPolicyChangeNotification(POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass,
|
||||||
POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass,
|
HANDLE NotificationEventHandle)
|
||||||
HANDLE NotificationEventHandle
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue