身份验证) (注册表项
为了使包能够接收来自 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”。 |