Функция обратного вызова прототипа функции обработчика событий
[Функции прототипа обработчика событий больше не доступны для использования в 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 |