Author: ekohl
Date: Sat Aug 29 15:50:02 2015
New Revision: 68862
URL: 
http://svn.reactos.org/svn/reactos?rev=68862&view=rev
Log:
[WINLOGON]
- Read notification DLL parameters.
- Use the Enabled value.
Modified:
    trunk/reactos/base/system/winlogon/notify.c
Modified: trunk/reactos/base/system/winlogon/notify.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/winlogon/notif…
==============================================================================
--- trunk/reactos/base/system/winlogon/notify.c [iso-8859-1] (original)
+++ trunk/reactos/base/system/winlogon/notify.c [iso-8859-1] Sat Aug 29 15:50:02 2015
@@ -37,6 +37,12 @@
     LIST_ENTRY ListEntry;
     HINSTANCE hInstance;
+    BOOL bEnabled;
+    BOOL bAsynchronous;
+    BOOL bSafe;
+    BOOL bImpersonate;
+    BOOL bSmartCardLogon;
+    DWORD dwMaxWait;
     PWLX_NOTIFY_HANDLER Handler[LastHandler];
 } NOTIFICATION_ITEM, *PNOTIFICATION_ITEM;
@@ -117,7 +123,57 @@
         if (NotificationDll == NULL)
             return;
+        NotificationDll->bEnabled = TRUE;
+        NotificationDll->dwMaxWait = 30; /* FIXME: ??? */
         NotificationDll->hInstance = hInstance;
+
+        dwSize = sizeof(BOOL);
+        RegQueryValueExW(hDllKey,
+                         L"Asynchronous",
+                         NULL,
+                         &dwType,
+                         (PBYTE)&NotificationDll->bAsynchronous,
+                         &dwSize);
+
+        dwSize = sizeof(BOOL);
+        RegQueryValueExW(hDllKey,
+                         L"Enabled",
+                         NULL,
+                         &dwType,
+                         (PBYTE)&NotificationDll->bEnabled,
+                         &dwSize);
+
+        dwSize = sizeof(BOOL);
+        RegQueryValueExW(hDllKey,
+                         L"Impersonate",
+                         NULL,
+                         &dwType,
+                         (PBYTE)&NotificationDll->bImpersonate,
+                         &dwSize);
+
+        dwSize = sizeof(BOOL);
+        RegQueryValueExW(hDllKey,
+                         L"Safe",
+                         NULL,
+                         &dwType,
+                         (PBYTE)&NotificationDll->bSafe,
+                         &dwSize);
+
+        dwSize = sizeof(BOOL);
+        RegQueryValueExW(hDllKey,
+                         L"SmartCardLogonNotify",
+                         NULL,
+                         &dwType,
+                         (PBYTE)&NotificationDll->bSmartCardLogon,
+                         &dwSize);
+
+        dwSize = sizeof(DWORD);
+        RegQueryValueExW(hDllKey,
+                         L"MaxWait",
+                         NULL,
+                         &dwType,
+                         (PBYTE)&NotificationDll->dwMaxWait,
+                         &dwSize);
         for (i = LogonHandler; i < LastHandler; i++)
         {
@@ -243,7 +299,7 @@
                                             NOTIFICATION_ITEM,
                                             ListEntry);
 TRACE("NotificationDll: %p\n", NotificationDll);
-        if (NotificationDll != NULL)
+        if (NotificationDll != NULL && NotificationDll->bEnabled)
         {
 TRACE("NotificationDll->Handler: %p\n", NotificationDll->Handler[Type]);
             if (NotificationDll->Handler[Type] != NULL)