https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ea26bef01de20d5c140a426397627089892356a0

commit ea26bef01de20d5c140a426397627089892356a0
Author:     Eric Kohl <[email protected]>
AuthorDate: Fri Feb 19 21:53:00 2021 +0100
Commit:     Eric Kohl <[email protected]>
CommitDate: Fri Feb 19 21:53:00 2021 +0100

    [LSASRV] Add start code for the netlogon service
---
 boot/bootdata/hivesys.inf  | 12 ++++++------
 dll/win32/lsasrv/service.c | 37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/boot/bootdata/hivesys.inf b/boot/bootdata/hivesys.inf
index 586b4746633..7dc2c1141fd 100644
--- a/boot/bootdata/hivesys.inf
+++ b/boot/bootdata/hivesys.inf
@@ -1677,12 +1677,12 @@ 
HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Start",0x00010001,0x00000000
 HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Type",0x00010001,0x00000001
 
 ; NetLogon
-;HKLM,"SYSTEM\CurrentControlSet\Services\NetLogon","DisplayName",0x00000000,%NETLOGON_SERVICE%
-;HKLM,"SYSTEM\CurrentControlSet\Services\NetLogon","Description",0x00000000,%NETLOGON_SERVICE_DESCRIPTION%
-;HKLM,"SYSTEM\CurrentControlSet\Services\NetLogon","ErrorControl",0x00010001,0x00000001
-;HKLM,"SYSTEM\CurrentControlSet\Services\Netlogon","ImagePath",0x00020000,"%SystemRoot%\system32\lsass.exe"
-;HKLM,"SYSTEM\CurrentControlSet\Services\NetLogon","Start",0x00010001,0x00000003
-;HKLM,"SYSTEM\CurrentControlSet\Services\Netlogon","Type",0x00010001,0x00000020
+HKLM,"SYSTEM\CurrentControlSet\Services\NetLogon","DisplayName",0x00000000,%NETLOGON_SERVICE%
+HKLM,"SYSTEM\CurrentControlSet\Services\NetLogon","Description",0x00000000,%NETLOGON_SERVICE_DESCRIPTION%
+HKLM,"SYSTEM\CurrentControlSet\Services\NetLogon","ErrorControl",0x00010001,0x00000001
+HKLM,"SYSTEM\CurrentControlSet\Services\Netlogon","ImagePath",0x00020000,"%SystemRoot%\system32\lsass.exe"
+HKLM,"SYSTEM\CurrentControlSet\Services\NetLogon","Start",0x00010001,0x00000003
+HKLM,"SYSTEM\CurrentControlSet\Services\Netlogon","Type",0x00010001,0x00000020
 
 ; NTFS filesystem driver
 
HKLM,"SYSTEM\CurrentControlSet\Services\Ntfs","ErrorControl",0x00010001,0x00000000
diff --git a/dll/win32/lsasrv/service.c b/dll/win32/lsasrv/service.c
index 9c207811135..95fe262c7b2 100644
--- a/dll/win32/lsasrv/service.c
+++ b/dll/win32/lsasrv/service.c
@@ -11,12 +11,16 @@
 #include "lsasrv.h"
 #include <winsvc.h>
 
+typedef VOID (WINAPI *PNETLOGONMAIN)(INT ArgCount, PWSTR *ArgVector);
+
 VOID WINAPI I_ScIsSecurityProcess(VOID);
 
+static VOID WINAPI NetlogonServiceMain(DWORD dwArgc, PWSTR *pszArgv);
 static VOID WINAPI SamSsServiceMain(DWORD dwArgc, PWSTR *pszArgv);
 
 SERVICE_TABLE_ENTRYW ServiceTable[] =
 {
+    {L"NETLOGON", NetlogonServiceMain},
     {L"SAMSS", SamSsServiceMain},
     {NULL, NULL}
 };
@@ -24,6 +28,39 @@ SERVICE_TABLE_ENTRYW ServiceTable[] =
 
 /* FUNCTIONS ***************************************************************/
 
+static
+VOID
+WINAPI
+NetlogonServiceMain(
+    _In_ DWORD dwArgc,
+    _In_ PWSTR *pszArgv)
+{
+    HINSTANCE hNetlogon = NULL;
+    PNETLOGONMAIN pNetlogonMain = NULL;
+
+    TRACE("NetlogonServiceMain(%lu %p)\n", dwArgc, pszArgv);
+
+    hNetlogon = LoadLibraryW(L"Netlogon.dll");
+    if (hNetlogon == NULL)
+    {
+        ERR("LoadLibrary() failed!\n");
+        return;
+    }
+
+    pNetlogonMain = (PNETLOGONMAIN)GetProcAddress(hNetlogon, "NlNetlogonMain");
+    if (pNetlogonMain == NULL)
+    {
+        ERR("GetProcAddress(NlNetlogonMain) failed!\n");
+        FreeLibrary(hNetlogon);
+        return;
+    }
+
+    TRACE("NlNetlogonMain %p\n", pNetlogonMain);
+
+    pNetlogonMain(dwArgc, pszArgv);
+}
+
+
 static
 VOID
 WINAPI

Reply via email to