Поделиться через


Функция обратного вызова прототипа функции обработчика событий

[Функции прототипа обработчика событий больше не доступны для использования в Windows Server 2008 и Windows Vista. ]

Функции прототипа обработчика событий используются для всех функций, обрабатывающих события уведомлений Winlogon . Имя функции, представленное ниже заполнитель Event_Handler_Function_Name, обычно отражает имя события, обрабатываемого функцией. Например, функция, обрабатывающая события входа в систему, может иметь имя WLEventLogon.

Синтаксис

void Event_Handler_Function_Name(
  _In_ PWLX_NOTIFICATION_INFO pInfo
);

Параметры

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