Función de devolución de llamada prototipo de controlador de eventos

[Las funciones prototipo del controlador de eventos ya no están disponibles para su uso a partir de Windows Server 2008 y Windows Vista. ]

Las funciones Prototipo del controlador de eventos se usan para todas las funciones que controlan eventos de notificación de Winlogon . El nombre de la función, representado a continuación por el marcador de posición Event_Handler_Function_Name, normalmente refleja el nombre del evento que controla la función. Por ejemplo, la función que controla los eventos de inicio de sesión podría denominarse: WLEventLogon.

Sintaxis

void Event_Handler_Function_Name(
  _In_ PWLX_NOTIFICATION_INFO pInfo
);

Parámetros

pInfo [in]

Puntero a una estructura WLX_NOTIFICATION_INFO que contiene los detalles del evento.

Valor devuelto

Esta función de devolución de llamada no devuelve un valor.

Comentarios

Si el controlador de eventos necesita crear procesos secundarios, debe llamar a la función CreateProcessAsUser . De lo contrario, el nuevo proceso se creará en el escritorio de Winlogon, no en el escritorio del usuario.

Ejemplos

En el ejemplo siguiente se muestra cómo implementar controladores de eventos para eventos de Winlogon. Por motivos de simplicidad, solo se muestran las implementaciones de los controladores de eventos Logon y Logoff. Puede implementar controladores para el resto de los eventos exactamente de la misma manera.

// 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"));
}

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Fin de compatibilidad de cliente
Windows XP
Fin de compatibilidad de servidor
Windows Server 2003