Add lsasrv.dll stub. Modified: trunk/reactos/Makefile Added: trunk/reactos/include/lsass/lsasrv.h Added: trunk/reactos/lib/lsasrv/ Added: trunk/reactos/lib/lsasrv/lsaport.c Added: trunk/reactos/lib/lsasrv/lsasrv.c Added: trunk/reactos/lib/lsasrv/lsasrv.def Added: trunk/reactos/lib/lsasrv/lsasrv.rc Added: trunk/reactos/lib/lsasrv/makefile _____
Modified: trunk/reactos/Makefile --- trunk/reactos/Makefile 2005-02-16 21:07:55 UTC (rev 13604) +++ trunk/reactos/Makefile 2005-02-16 21:59:00 UTC (rev 13605) @@ -63,7 +63,7 @@
msgina msi msimg32 msvcrt20 msvideo mswsock netapi32 ntdll ole32 oleaut32 oledlg olepro32 opengl32 \ packet psapi riched20 richedit rpcrt4 samlib secur32 setupapi shell32 shlwapi smdll snmpapi syssetup \ twain user32 userenv version wininet winmm winspool ws2help ws2_32 wsock32 wshirda dnsapi \ - urlmon shdocvw dinput dinput8 dxdiagn devenum dsound $(DLLS_KBD) $(DLLS_CPL) $(DLLS_SHELLEXT) + urlmon shdocvw dinput dinput8 dxdiagn devenum dsound lsasrv $(DLLS_KBD) $(DLLS_CPL) $(DLLS_SHELLEXT)
SUBSYS = smss win32k csrss ntvdm
_____
Added: trunk/reactos/include/lsass/lsasrv.h --- trunk/reactos/include/lsass/lsasrv.h 2005-02-16 21:07:55 UTC (rev 13604) +++ trunk/reactos/include/lsass/lsasrv.h 2005-02-16 21:59:00 UTC (rev 13605) @@ -0,0 +1,8 @@
+ +#ifndef __LSASRV_H +#define __LSASRV_H + +NTSTATUS STDCALL +LsapInitLsa(VOID); + +#endif /* __LSASRV_H */ _____
Added: trunk/reactos/lib/lsasrv/lsaport.c --- trunk/reactos/lib/lsasrv/lsaport.c 2005-02-16 21:07:55 UTC (rev 13604) +++ trunk/reactos/lib/lsasrv/lsaport.c 2005-02-16 21:59:00 UTC (rev 13605) @@ -0,0 +1,178 @@
+/* + */ + +#define NTOS_MODE_USER +#include <ntos.h> +#include <windows.h> + +//#define NDEBUG +#include <debug.h> + + +HANDLE PortThreadHandle = NULL; +HANDLE ConnectPortHandle = NULL; +HANDLE MessagePortHandle = NULL; + + +static NTSTATUS +InitializeLsaPort(VOID) +{ + OBJECT_ATTRIBUTES ObjectAttributes; + UNICODE_STRING PortName; + LPC_MAX_MESSAGE Request; + NTSTATUS Status; + + ConnectPortHandle = NULL; + MessagePortHandle = NULL; + + RtlInitUnicodeString(&PortName, + L"\SeLsaCommandPort"); + + InitializeObjectAttributes(&ObjectAttributes, + &PortName, + 0, + NULL, + NULL); + + Status = NtCreatePort(&ConnectPortHandle, + &ObjectAttributes, + 0, + 0x100, + 0x2000); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtCreatePort() failed (Status %lx)\n", Status); + goto ByeBye; + } + + Status = NtListenPort(ConnectPortHandle, + &Request.Header); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtListenPort() failed (Status %lx)\n", Status); + goto ByeBye; + } + + Status = NtAcceptConnectPort(&MessagePortHandle, + ConnectPortHandle, + NULL, + TRUE, + NULL, + NULL); + if (!NT_SUCCESS (Status)) + { + DPRINT1("NtAcceptConnectPort() failed (Status %lx)\n", Status); + goto ByeBye; + } + + Status = NtCompleteConnectPort (MessagePortHandle); + if (!NT_SUCCESS (Status)) + { + DPRINT1("NtCompleteConnectPort() failed (Status %lx)\n", Status); + goto ByeBye; + } + +ByeBye: + if (!NT_SUCCESS (Status)) + { + if (ConnectPortHandle != NULL) + NtClose (ConnectPortHandle); + + if (MessagePortHandle != NULL) + NtClose (MessagePortHandle); + } + + return Status; +} + + +static NTSTATUS +ProcessPortMessage(VOID) +{ + LPC_MAX_MESSAGE Request; +// LPC_MAX_MESSAGE Reply; + NTSTATUS Status; + + + DPRINT1("ProcessPortMessage() called\n"); + + Status = STATUS_SUCCESS; + + for (;;) + { + Status = NtReplyWaitReceivePort(MessagePortHandle, + 0, + NULL, + &Request.Header); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtReplyWaitReceivePort() failed (Status %lx)\n", Status); + break; + } + + DPRINT("Received message\n"); + + if (Request.Header.MessageType == LPC_PORT_CLOSED) + { + DPRINT("Port closed\n"); + +// return STATUS_UNSUCCESSFUL; + } + if (Request.Header.MessageType == LPC_REQUEST) + { + DPRINT("Received request\n"); + + } + else if (Request.Header.MessageType == LPC_DATAGRAM) + { + DPRINT("Received datagram\n"); + +// Message = (PIO_ERROR_LOG_MESSAGE)&Request.Data; + + } + } + + return Status; +} + + +static NTSTATUS STDCALL +PortThreadRoutine(PVOID Param) +{ + NTSTATUS Status = STATUS_SUCCESS; + + Status = InitializeLsaPort(); + if (!NT_SUCCESS(Status)) + return Status; + + while (NT_SUCCESS(Status)) + { + Status = ProcessPortMessage(); + } + + if (ConnectPortHandle != NULL) + NtClose (ConnectPortHandle); + + if (MessagePortHandle != NULL) + NtClose (MessagePortHandle); + + return Status; +} + + +BOOLEAN +StartLsaPortThread(VOID) +{ + DWORD ThreadId; + + PortThreadHandle = CreateThread(NULL, + 0x1000, + (LPTHREAD_START_ROUTINE)PortThreadRoutine, + NULL, + 0, + &ThreadId); + + return (PortThreadHandle != NULL); +} + +/* EOF */ _____
Added: trunk/reactos/lib/lsasrv/lsasrv.c --- trunk/reactos/lib/lsasrv/lsasrv.c 2005-02-16 21:07:55 UTC (rev 13604) +++ trunk/reactos/lib/lsasrv/lsasrv.c 2005-02-16 21:59:00 UTC (rev 13605) @@ -0,0 +1,24 @@
+ +#define NTOS_MODE_USER +#include <ntos.h> +#include <windows.h> + +#include <lsass/lsasrv.h> + +#define NDEBUG +#include <debug.h> + +VOID StartLsaPortThread(VOID); + + +NTSTATUS STDCALL +LsapInitLsa(VOID) +{ + DPRINT1("LsapInitLsa() called\n"); + + StartLsaPortThread(); + + return STATUS_SUCCESS; +} + +/* EOF */ _____
Added: trunk/reactos/lib/lsasrv/lsasrv.def --- trunk/reactos/lib/lsasrv/lsasrv.def 2005-02-16 21:07:55 UTC (rev 13604) +++ trunk/reactos/lib/lsasrv/lsasrv.def 2005-02-16 21:59:00 UTC (rev 13605) @@ -0,0 +1,68 @@
+; $Id: lsasrv.def 12852 2005-01-06 13:58:04Z mf $ +LIBRARY lsasrv +EXPORTS +;LsaIAuditNotifyPackageLoad +;LsaIAuditSamEvent +;LsaIEnumerateSecrets +;LsaIFree_LSAI_PRIVATE_DATA +;LsaIFree_LSAI_SECRET_ENUM_BUFFER +;LsaIFree_LSAPR_ACCOUNT_ENUM_BUFFER +;LsaIFree_LSAPR_CR_CIPHER_VALUE +;LsaIFree_LSAPR_POLICY_INFORMATION +;LsaIFree_LSAPR_PRIVILEGE_ENUM_BUFFER +;LsaIFree_LSAPR_PRIVILEGE_SET +;LsaIFree_LSAPR_REFERENCED_DOMAIN_LIST +;LsaIFree_LSAPR_SR_SECURITY_DESCRIPTOR +;LsaIFree_LSAPR_TRANSLATED_NAMES +;LsaIFree_LSAPR_TRANSLATED_SIDS +;LsaIFree_LSAPR_TRUSTED_DOMAIN_INFO +;LsaIFree_LSAPR_TRUSTED_ENUM_BUFFER +;LsaIFree_LSAPR_TRUST_INFORMATION +;LsaIFree_LSAPR_UNICODE_STRING +;LsaIGetPrivateData +;LsaIGetSerialNumberPolicy +;LsaIGetSerialNumberPolicy2 +;LsaIHealthCheck +;LsaIInitializeWellKnownSids +;LsaIOpenPolicyTrusted +;LsaIQueryInformationPolicyTrusted +;LsaISetPrivateData +;LsaISetSerialNumberPolicy +;LsaISetTimesSecret +;LsaISetupWasRun +;LsapAuOpenSam +LsapInitLsa@0 +;LsarAddPrivilegesToAccount +;LsarClose +;LsarCreateAccount +;LsarCreateSecret +;LsarCreateTrustedDomain +;LsarDelete +;LsarEnumerateAccounts +;LsarEnumeratePrivileges +;LsarEnumeratePrivilegesAccount +;LsarEnumerateTrustedDomains +;LsarGetQuotasForAccount +;LsarGetSystemAccessAccount +;LsarLookupNames +;LsarLookupPrivilegeDisplayName +;LsarLookupPrivilegeName +;LsarLookupPrivilegeValue +;LsarLookupSids +;LsarOpenAccount +;LsarOpenPolicy +;LsarOpenSecret +;LsarOpenTrustedDomain +;LsarQueryInfoTrustedDomain +;LsarQueryInformationPolicy +;LsarQuerySecret +;LsarQuerySecurityObject +;LsarRemovePrivilegesFromAccount +;LsarSetInformationPolicy +;LsarSetInformationTrustedDomain +;LsarSetQuotasForAccount +;LsarSetSecret +;LsarSetSecurityObject +;LsarSetSystemAccessAccount +;ServiceInit +; EOF \ No newline at end of file _____
Added: trunk/reactos/lib/lsasrv/lsasrv.rc --- trunk/reactos/lib/lsasrv/lsasrv.rc 2005-02-16 21:07:55 UTC (rev 13604) +++ trunk/reactos/lib/lsasrv/lsasrv.rc 2005-02-16 21:59:00 UTC (rev 13605) @@ -0,0 +1,5 @@
+#define REACTOS_VERSION_DLL +#define REACTOS_STR_FILE_DESCRIPTION "LSA server DLL\0" +#define REACTOS_STR_INTERNAL_NAME "lsasrv\0" +#define REACTOS_STR_ORIGINAL_FILENAME "lsasrv.dll\0" +#include <reactos/version.rc> _____
Added: trunk/reactos/lib/lsasrv/makefile --- trunk/reactos/lib/lsasrv/makefile 2005-02-16 21:07:55 UTC (rev 13604) +++ trunk/reactos/lib/lsasrv/makefile 2005-02-16 21:59:00 UTC (rev 13605) @@ -0,0 +1,28 @@
+# $Id$ + +PATH_TO_TOP = ../.. + +TARGET_TYPE = dynlink + +TARGET_NAME = lsasrv + +TARGET_BASE = $(TARGET_BASE_LIB_LSASRV) + +TARGET_ENTRY = 0x0 + +TARGET_CFLAGS += -Wall -Werror + +TARGET_LFLAGS = -nostartfiles -nostdlib + +TARGET_SDKLIBS = ntdll.a kernel32.a + +TARGET_OBJECTS = lsasrv.o lsaport.o + +DEP_OBJECTS = $(TARGET_OBJECTS) + + +include $(PATH_TO_TOP)/rules.mak + +include $(TOOLS_PATH)/helper.mk + +include $(TOOLS_PATH)/depend.mk