Author: ekohl Date: Sun Dec 27 20:10:30 2009 New Revision: 44774
URL: http://svn.reactos.org/svn/reactos?rev=44774&view=rev Log: Move the client-side LSA functions from secur32.dll to the new static library lsalib because these functions will be shared between ntoskrnl.exe, advapi32.dll and secur32.dll.
Added: trunk/reactos/lib/lsalib/ (with props) trunk/reactos/lib/lsalib/lsa.c - copied, changed from r44761, trunk/reactos/dll/win32/secur32/lsa.c trunk/reactos/lib/lsalib/lsalib.rbuild (with props) Removed: trunk/reactos/dll/win32/secur32/lsa.c Modified: trunk/reactos/dll/win32/secur32/secur32.rbuild trunk/reactos/lib/lib.rbuild
Removed: trunk/reactos/dll/win32/secur32/lsa.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/secur32/lsa.c?rev... ============================================================================== --- trunk/reactos/dll/win32/secur32/lsa.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/secur32/lsa.c (removed) @@ -1,390 +1,0 @@ -/* $Id$ - * - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS system libraries - * FILE: lib/secur32/lsa.c - * PURPOSE: Client-side LSA functions - * UPDATE HISTORY: - * Created 05/08/00 - */ - -/* INCLUDES ******************************************************************/ - -#include <precomp.h> - -#define NDEBUG -#include <debug.h> - -/* GLOBALS *******************************************************************/ - -extern HANDLE Secur32Heap; - -/* FUNCTIONS *****************************************************************/ - -/* - * @implemented - */ -NTSTATUS WINAPI -LsaDeregisterLogonProcess(HANDLE LsaHandle) -{ - LSASS_REQUEST Request; - LSASS_REPLY Reply; - NTSTATUS Status; - - Request.Header.u1.s1.DataLength = 0; - Request.Header.u1.s1.TotalLength = sizeof(LSASS_REQUEST); - Request.Type = LSASS_REQUEST_DEREGISTER_LOGON_PROCESS; - Status = NtRequestWaitReplyPort(LsaHandle, - &Request.Header, - &Reply.Header); - if (!NT_SUCCESS(Status)) - { - return(Status); - } - - if (!NT_SUCCESS(Reply.Status)) - { - return(Reply.Status); - } - - return(Status); -} - -/* - * @unimplemented - */ -NTSTATUS WINAPI -LsaConnectUntrusted(PHANDLE LsaHandle) -{ - UNIMPLEMENTED; - return STATUS_UNSUCCESSFUL; -} - -/* - * @implemented - */ -NTSTATUS WINAPI -LsaCallAuthenticationPackage(HANDLE LsaHandle, - ULONG AuthenticationPackage, - PVOID ProtocolSubmitBuffer, - ULONG SubmitBufferLength, - PVOID* ProtocolReturnBuffer, - PULONG ReturnBufferLength, - PNTSTATUS ProtocolStatus) -{ - PLSASS_REQUEST Request; - PLSASS_REPLY Reply; - LSASS_REQUEST RawRequest; - LSASS_REPLY RawReply; - NTSTATUS Status; - ULONG OutBufferSize; - - Request = (PLSASS_REQUEST)&RawRequest; - Reply = (PLSASS_REPLY)&RawReply; - - Request->Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) + SubmitBufferLength - - sizeof(PORT_MESSAGE); - Request->Header.u1.s1.TotalLength = - Request->Header.u1.s1.DataLength + sizeof(PORT_MESSAGE); - Request->Type = LSASS_REQUEST_CALL_AUTHENTICATION_PACKAGE; - Request->d.CallAuthenticationPackageRequest.AuthenticationPackage = - AuthenticationPackage; - Request->d.CallAuthenticationPackageRequest.InBufferLength = - SubmitBufferLength; - memcpy(Request->d.CallAuthenticationPackageRequest.InBuffer, - ProtocolSubmitBuffer, - SubmitBufferLength); - - Status = NtRequestWaitReplyPort(LsaHandle, - &Request->Header, - &Reply->Header); - if (!NT_SUCCESS(Status)) - { - return(Status); - } - - if (!NT_SUCCESS(Reply->Status)) - { - return(Reply->Status); - } - - OutBufferSize = Reply->d.CallAuthenticationPackageReply.OutBufferLength; - *ProtocolReturnBuffer = RtlAllocateHeap(Secur32Heap, - 0, - OutBufferSize); - *ReturnBufferLength = OutBufferSize; - memcpy(*ProtocolReturnBuffer, - Reply->d.CallAuthenticationPackageReply.OutBuffer, - *ReturnBufferLength); - - return(Status); -} - - -/* - * @implemented - */ -NTSTATUS WINAPI -LsaFreeReturnBuffer(PVOID Buffer) -{ - return(RtlFreeHeap(Secur32Heap, 0, Buffer)); -} - - -/* - * @implemented - */ -NTSTATUS WINAPI -LsaLookupAuthenticationPackage(HANDLE LsaHandle, - PLSA_STRING PackageName, - PULONG AuthenticationPackage) -{ - NTSTATUS Status; - PLSASS_REQUEST Request; - LSASS_REQUEST RawRequest; - LSASS_REPLY Reply; - - Request = (PLSASS_REQUEST)&RawRequest; - Request->Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) + PackageName->Length - - sizeof(PORT_MESSAGE); - Request->Header.u1.s1.TotalLength = Request->Header.u1.s1.DataLength + - sizeof(PORT_MESSAGE); - Request->Type = LSASS_REQUEST_LOOKUP_AUTHENTICATION_PACKAGE; - - Status = NtRequestWaitReplyPort(LsaHandle, - &Request->Header, - &Reply.Header); - if (!NT_SUCCESS(Status)) - { - return(Status); - } - if (!NT_SUCCESS(Reply.Status)) - { - return(Reply.Status); - } - - *AuthenticationPackage = Reply.d.LookupAuthenticationPackageReply.Package; - - return(Reply.Status); -} - - -/* - * @implemented - */ -NTSTATUS WINAPI -LsaLogonUser(HANDLE LsaHandle, - PLSA_STRING OriginName, - SECURITY_LOGON_TYPE LogonType, - ULONG AuthenticationPackage, - PVOID AuthenticationInformation, - ULONG AuthenticationInformationLength, - PTOKEN_GROUPS LocalGroups, - PTOKEN_SOURCE SourceContext, - PVOID* ProfileBuffer, - PULONG ProfileBufferLength, - PLUID LogonId, - PHANDLE Token, - PQUOTA_LIMITS Quotas, - PNTSTATUS SubStatus) -{ - ULONG RequestLength; - ULONG CurrentLength; - PLSASS_REQUEST Request; - LSASS_REQUEST RawMessage; - PLSASS_REPLY Reply; - LSASS_REPLY RawReply; - NTSTATUS Status; - - RequestLength = sizeof(LSASS_REQUEST) - sizeof(PORT_MESSAGE); - RequestLength = RequestLength + (OriginName->Length * sizeof(WCHAR)); - RequestLength = RequestLength + AuthenticationInformationLength; - RequestLength = RequestLength + - (LocalGroups->GroupCount * sizeof(SID_AND_ATTRIBUTES)); - - CurrentLength = 0; - Request = (PLSASS_REQUEST)&RawMessage; - - Request->d.LogonUserRequest.OriginNameLength = OriginName->Length; - Request->d.LogonUserRequest.OriginName = (PWSTR)&RawMessage + CurrentLength; - memcpy((PWSTR)&RawMessage + CurrentLength, - OriginName->Buffer, - OriginName->Length * sizeof(WCHAR)); - CurrentLength = CurrentLength + (OriginName->Length * sizeof(WCHAR)); - - Request->d.LogonUserRequest.LogonType = LogonType; - - Request->d.LogonUserRequest.AuthenticationPackage = - AuthenticationPackage; - - Request->d.LogonUserRequest.AuthenticationInformation = - (PVOID)((ULONG_PTR)&RawMessage + CurrentLength); - Request->d.LogonUserRequest.AuthenticationInformationLength = - AuthenticationInformationLength; - memcpy((PVOID)((ULONG_PTR)&RawMessage + CurrentLength), - AuthenticationInformation, - AuthenticationInformationLength); - CurrentLength = CurrentLength + AuthenticationInformationLength; - - Request->d.LogonUserRequest.LocalGroupsCount = LocalGroups->GroupCount; - Request->d.LogonUserRequest.LocalGroups = - (PSID_AND_ATTRIBUTES)&RawMessage + CurrentLength; - memcpy((PSID_AND_ATTRIBUTES)&RawMessage + CurrentLength, - LocalGroups->Groups, - LocalGroups->GroupCount * sizeof(SID_AND_ATTRIBUTES)); - - Request->d.LogonUserRequest.SourceContext = *SourceContext; - - Request->Type = LSASS_REQUEST_LOGON_USER; - Request->Header.u1.s1.DataLength = RequestLength - sizeof(PORT_MESSAGE); - Request->Header.u1.s1.TotalLength = RequestLength + sizeof(PORT_MESSAGE); - - Reply = (PLSASS_REPLY)&RawReply; - - Status = NtRequestWaitReplyPort(LsaHandle, - &Request->Header, - &Reply->Header); - if (!NT_SUCCESS(Status)) - { - return(Status); - } - - *SubStatus = Reply->d.LogonUserReply.SubStatus; - - if (!NT_SUCCESS(Reply->Status)) - { - return(Status); - } - - *ProfileBuffer = RtlAllocateHeap(Secur32Heap, - 0, - Reply->d.LogonUserReply.ProfileBufferLength); - memcpy(*ProfileBuffer, - (PVOID)((ULONG)Reply->d.LogonUserReply.Data + - (ULONG)Reply->d.LogonUserReply.ProfileBuffer), - Reply->d.LogonUserReply.ProfileBufferLength); - *LogonId = Reply->d.LogonUserReply.LogonId; - *Token = Reply->d.LogonUserReply.Token; - memcpy(Quotas, - &Reply->d.LogonUserReply.Quotas, - sizeof(Reply->d.LogonUserReply.Quotas)); - - return(Status); -} - - -/* - * @implemented - */ -NTSTATUS WINAPI -LsaRegisterLogonProcess(PLSA_STRING LsaLogonProcessName, - PHANDLE Handle, - PLSA_OPERATIONAL_MODE OperationalMode) -{ - UNICODE_STRING Portname = RTL_CONSTANT_STRING(L"\SeLsaCommandPort"); - ULONG ConnectInfoLength; - NTSTATUS Status; - LSASS_REQUEST Request; - LSASS_REPLY Reply; - - ConnectInfoLength = 0; - Status = NtConnectPort(Handle, - &Portname, - NULL, - NULL, - NULL, - NULL, - NULL, - &ConnectInfoLength); - if (!NT_SUCCESS(Status)) - { - return(Status); - } - - Request.Type = LSASS_REQUEST_REGISTER_LOGON_PROCESS; - Request.Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) - - sizeof(PORT_MESSAGE); - Request.Header.u1.s1.TotalLength = sizeof(LSASS_REQUEST); - - Request.d.RegisterLogonProcessRequest.Length = LsaLogonProcessName->Length; - memcpy(Request.d.RegisterLogonProcessRequest.LogonProcessNameBuffer, - LsaLogonProcessName->Buffer, - Request.d.RegisterLogonProcessRequest.Length); - - Status = NtRequestWaitReplyPort(*Handle, - &Request.Header, - &Reply.Header); - if (!NT_SUCCESS(Status)) - { - NtClose(*Handle); - *Handle = INVALID_HANDLE_VALUE; - return(Status); - } - - if (!NT_SUCCESS(Reply.Status)) - { - NtClose(*Handle); - *Handle = INVALID_HANDLE_VALUE; - return(Status); - } - - *OperationalMode = Reply.d.RegisterLogonProcessReply.OperationalMode; - - return(Reply.Status); -} - -/* - * @unimplemented - */ -NTSTATUS -WINAPI -LsaEnumerateLogonSessions( -PULONG LogonSessionCount, -PLUID * LogonSessionList -) -{ - UNIMPLEMENTED; - return FALSE; -} - -/* - * @unimplemented - */ -NTSTATUS -WINAPI -LsaGetLogonSessionData( -PLUID LogonId, -PSECURITY_LOGON_SESSION_DATA * ppLogonSessionData -) -{ - UNIMPLEMENTED; - return FALSE; -} - -/* - * @unimplemented - */ -NTSTATUS -WINAPI -LsaRegisterPolicyChangeNotification( -POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass, -HANDLE NotificationEventHandle -) -{ - UNIMPLEMENTED; - return FALSE; -} - -/* - * @unimplemented - */ -NTSTATUS -WINAPI -LsaUnregisterPolicyChangeNotification( -POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass, -HANDLE NotificationEventHandle -) -{ - UNIMPLEMENTED; - return FALSE; -}
Modified: trunk/reactos/dll/win32/secur32/secur32.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/secur32/secur32.r... ============================================================================== --- trunk/reactos/dll/win32/secur32/secur32.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/win32/secur32/secur32.rbuild [iso-8859-1] Sun Dec 27 20:10:30 2009 @@ -3,10 +3,10 @@ <include base="secur32">.</include> <include base="ReactOS">include/reactos/subsys</include> <define name="__SECUR32__" /> + <library>lsalib</library> <library>ntdll</library> <library>advapi32</library> <file>dllmain.c</file> - <file>lsa.c</file> <file>secext.c</file> <file>sspi.c</file> <file>secur32.rc</file>
Modified: trunk/reactos/lib/lib.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/lib.rbuild?rev=44774&am... ============================================================================== --- trunk/reactos/lib/lib.rbuild [iso-8859-1] (original) +++ trunk/reactos/lib/lib.rbuild [iso-8859-1] Sun Dec 27 20:10:30 2009 @@ -34,6 +34,9 @@ <directory name="inflib"> <xi:include href="inflib/inflib.rbuild" /> </directory> + <directory name="lsalib"> + <xi:include href="lsalib/lsalib.rbuild" /> + </directory> <directory name="nls"> <xi:include href="nls/nls.rbuild" /> </directory>
Propchange: trunk/reactos/lib/lsalib/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Sun Dec 27 20:10:30 2009 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+)
Propchange: trunk/reactos/lib/lsalib/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/reactos/lib/lsalib/ ------------------------------------------------------------------------------ bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/reactos/lib/lsalib/ ------------------------------------------------------------------------------ tsvn:logminsize = 10
Copied: trunk/reactos/lib/lsalib/lsa.c (from r44761, trunk/reactos/dll/win32/secur32/lsa.c) URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/lsalib/lsa.c?p2=trunk/r... ============================================================================== --- trunk/reactos/dll/win32/secur32/lsa.c [iso-8859-1] (original) +++ trunk/reactos/lib/lsalib/lsa.c [iso-8859-1] Sun Dec 27 20:10:30 2009 @@ -1,8 +1,7 @@ -/* $Id$ - * +/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries - * FILE: lib/secur32/lsa.c + * FILE: lib/lsalib/lsa.c * PURPOSE: Client-side LSA functions * UPDATE HISTORY: * Created 05/08/00 @@ -10,7 +9,9 @@
/* INCLUDES ******************************************************************/
-#include <precomp.h> +#include <ndk/ntndk.h> +#include <psdk/ntsecapi.h> +#include <lsass/lsass.h>
#define NDEBUG #include <debug.h> @@ -317,14 +318,14 @@ if (!NT_SUCCESS(Status)) { NtClose(*Handle); - *Handle = INVALID_HANDLE_VALUE; + *Handle = NULL; return(Status); }
if (!NT_SUCCESS(Reply.Status)) { NtClose(*Handle); - *Handle = INVALID_HANDLE_VALUE; + *Handle = NULL; return(Status); }
Added: trunk/reactos/lib/lsalib/lsalib.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/lsalib/lsalib.rbuild?re... ============================================================================== --- trunk/reactos/lib/lsalib/lsalib.rbuild (added) +++ trunk/reactos/lib/lsalib/lsalib.rbuild [iso-8859-1] Sun Dec 27 20:10:30 2009 @@ -1,0 +1,7 @@ +<?xml version="1.0"?> +<!DOCTYPE module SYSTEM "../../tools/rbuild/project.dtd"> +<module name="lsalib" type="staticlibrary"> + <include base="lsalib">.</include> + <include base="ReactOS">include/reactos/subsys</include> + <file>lsa.c</file> +</module>
Propchange: trunk/reactos/lib/lsalib/lsalib.rbuild ------------------------------------------------------------------------------ svn:eol-style = native