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?re…
==============================================================================
--- 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.…
==============================================================================
--- 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&a…
==============================================================================
--- 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/…
==============================================================================
--- 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?r…
==============================================================================
--- 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