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)