身份验证) (注册表项

为了使包能够接收来自 Winlogon 的事件通知,必须提供包的名称、包中事件处理程序函数的名称、负责实现包的 DLL,以及有关 DLL 是否支持异步事件和模拟的信息。

应创建通知包注册表项作为 的子项

\ HKEY_LOCAL_MACHINE软件\微软\\ Windows NT CurrentVersion\Winlogon\Notify

密钥的名称通常与 DLL 的名称相同;但是,这不是强制性的。 为包选择的名称不得与其他已安装的通知包的名称冲突。

“通知 注册表项”中,如果包中存在相关的事件处理程序函数,请创建以下注册表值。

值名称 [数据类型] 说明
异步[REG_DWORD]
指示包是否可以异步处理事件。 如果此值设置为 1,Winlogon 会在单独的线程中调用包函数。 否则,它不具有该属性。
DllName[REG_EXPAND_SZ]
实现通知包的 DLL 的名称,例如:“Notify.dll”。
Impersonate[REG_DWORD]
指示 Winlogon 在调用通知包函数时是否应模拟已登录用户的安全 上下文 。 如果此值设置为 1,则 Winlogon 使用模拟。 否则,它不具有该属性。
Lock[REG_SZ]
处理桌面锁事件的函数的名称,例如:“WLEventLock”。
Logoff[REG_SZ]
处理注销事件的函数的名称,例如:“WLEventLogoff”。
Logon[REG_SZ]
处理登录事件的函数的名称,例如:“WLEventLogon”。
Shutdown[REG_SZ]
处理关闭事件的函数的名称,例如:“WLEventShutdown”。
SmartCardLogonNotify[DWORD]
指示 Winlogon 是否应为智能卡中的登录事件生成通知。 如果此值设置为 1,则 Winlogon 允许智能卡通知。 否则,它不具有该属性。
StartScreenSaver[REG_SZ]
处理屏幕保护程序启动事件的函数的名称,例如:“WLEventStartScreenSaver”。
StartShell[REG_SZ]
处理 shell 启动事件的函数的名称,例如:“WLEventStartShell”。
shell 启动事件在用户登录后、桌面出现之前发生。 它与登录事件的不同之处在于,用户的安全 上下文 已建立,并且网络连接等资源可用。
Startup[REG_SZ]
处理系统启动事件的函数的名称,例如:“WLEventStartup”。
StopScreenSaver[REG_SZ]
处理屏幕保护程序停止事件的函数的名称,例如:“WLEventStopScreenSaver”。
解锁[REG_SZ]
处理桌面解锁事件的函数的名称,例如:“WLEventUnlock”。