事件处理程序函数原型回调函数

[从 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