Author: ekohl
Date: Wed Sep 21 07:27:18 2016
New Revision: 72755

URL: http://svn.reactos.org/svn/reactos?rev=72755&view=rev
Log:
[LSASRV]
Open/Create and set the \\SECURITY\\LSA_AUTHENTICATION_INITIALIZED event after 
the LsaAuthenticationPort has been created.

Modified:
    trunk/reactos/dll/win32/lsasrv/authport.c
    trunk/reactos/dll/win32/lsasrv/lsasrv.h

Modified: trunk/reactos/dll/win32/lsasrv/authport.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/lsasrv/authport.c?rev=72755&r1=72754&r2=72755&view=diff
==============================================================================
--- trunk/reactos/dll/win32/lsasrv/authport.c   [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/lsasrv/authport.c   [iso-8859-1] Wed Sep 21 
07:27:18 2016
@@ -262,7 +262,11 @@
     OBJECT_ATTRIBUTES ObjectAttributes;
     UNICODE_STRING PortName;
     DWORD ThreadId;
+    UNICODE_STRING EventName;
+    HANDLE EventHandle;
     NTSTATUS Status;
+
+    TRACE("StartAuthenticationPort()\n");
 
     /* Initialize the logon context list */
     InitializeListHead(&LsapLogonContextList);
@@ -283,7 +287,41 @@
                           sizeof(LSA_API_MSG) * 32);
     if (!NT_SUCCESS(Status))
     {
-        TRACE("NtCreatePort() failed (Status %lx)\n", Status);
+        WARN("NtCreatePort() failed (Status %lx)\n", Status);
+        return Status;
+    }
+
+    RtlInitUnicodeString(&EventName,
+                         L"\\SECURITY\\LSA_AUTHENTICATION_INITIALIZED");
+    InitializeObjectAttributes(&ObjectAttributes,
+                               &EventName,
+                               OBJ_CASE_INSENSITIVE | OBJ_PERMANENT,
+                               NULL,
+                               NULL);
+    Status = NtOpenEvent(&EventHandle,
+                         EVENT_MODIFY_STATE,
+                         &ObjectAttributes);
+    if (!NT_SUCCESS(Status))
+    {
+        TRACE("NtOpenEvent failed (Status 0x%08lx)\n", Status);
+
+        Status = NtCreateEvent(&EventHandle,
+                               EVENT_MODIFY_STATE,
+                               &ObjectAttributes,
+                               NotificationEvent,
+                               FALSE);
+        if (!NT_SUCCESS(Status))
+        {
+            WARN("NtCreateEvent failed (Status 0x%08lx)\n", Status);
+            return Status;
+        }
+    }
+
+    Status = NtSetEvent(EventHandle, NULL);
+    NtClose(EventHandle);
+    if (!NT_SUCCESS(Status))
+    {
+        WARN("NtSetEvent failed (Status 0x%08lx)\n", Status);
         return Status;
     }
 

Modified: trunk/reactos/dll/win32/lsasrv/lsasrv.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/lsasrv/lsasrv.h?rev=72755&r1=72754&r2=72755&view=diff
==============================================================================
--- trunk/reactos/dll/win32/lsasrv/lsasrv.h     [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/lsasrv/lsasrv.h     [iso-8859-1] Wed Sep 21 
07:27:18 2016
@@ -22,6 +22,7 @@
 
 #define NTOS_MODE_USER
 #include <ndk/cmfuncs.h>
+#include <ndk/exfuncs.h>
 #include <ndk/kefuncs.h>
 #include <ndk/mmfuncs.h>
 #include <ndk/obfuncs.h>


Reply via email to