Fix indentation. No code changes.

svn path=/trunk/; revision=44776
This commit is contained in:
Eric Kohl 2009-12-27 19:46:13 +00:00
parent e50eff1409
commit 2db30d58d2

View file

@ -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;
} }