事件处理程序函数原型回调函数
[从 Windows Server 2008 和 Windows Vista 起,事件处理程序原型函数不再可用。 ]
事件处理程序原型函数用于处理 Winlogon 通知事件的所有函数。 下面由占位符 Event_Handler_Function_Name表示的函数名称通常反映函数处理的事件的名称。 例如,处理登录事件的函数可能命名为: WLEventLogon。
语法
void Event_Handler_Function_Name(
_In_ PWLX_NOTIFICATION_INFO pInfo
);
parameters
-
pInfo [in]
-
指向包含事件详细信息 的 WLX_NOTIFICATION_INFO 结构的指针。
返回值
此回调函数不返回值。
备注
如果事件处理程序需要创建子进程,则应调用 CreateProcessAsUser 函数。 否则,将在 Winlogon 桌面上创建新进程,而不是在用户的桌面上创建。
示例
下面的示例演示如何实现 Winlogon 事件的事件处理程序。 为简单起见,仅显示 Logon 和 Logoff 事件处理程序的实现。 你可以以完全相同的方式为其余事件实现处理程序。
// Copyright (C) Microsoft. All rights reserved.
#include <windows.h>
// Here is the entrance function for the DLL.
BOOL WINAPI LibMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
{
// Disable DLL_THREAD_ATTACH & DLL_THREAD_DETACH
// notification calls. This is a performance optimization
// for multithreaded applications that do not need
// thread-level notifications of attachment or
// detachment.
DisableThreadLibraryCalls (hInstance);
}
break;
}
return TRUE;
}
// Here is the event handler for the Winlogon Logon event.
void WLEventLogon (PWLX_NOTIFICATION_INFO pInfo)
{
// Print the name of the handler to debug output.
// You can replace this with more useful functionality.
OutputDebugString (TEXT("NOTIFY: Entering WLEventLogon.\r\n"));
}
// Here is the event handler for the Winlogon Logoff event.
void WLEventLogoff (PWLX_NOTIFICATION_INFO pInfo)
{
// Print the name of the handler to debug output.
// You can replace this with more useful functionality.
OutputDebugString (TEXT("NOTIFY: Entering WLEventLogff.\r\n"));
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows XP [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2003 [仅限桌面应用] |
终止客户端支持 |
Windows XP |
终止服务器支持 |
Windows Server 2003 |