Partager via


Fonction de gestionnaire d’événements Fonction Prototype, fonction de rappel

[Les fonctions prototype de gestionnaire d’événements ne sont plus disponibles à partir de Windows Server 2008 et Windows Vista. ]

Les fonctions prototype de gestionnaire d’événements sont utilisées pour toutes les fonctions qui gèrent les événements de notification Winlogon . Le nom de la fonction, représenté ci-dessous par l’espace réservé Event_Handler_Function_Name, reflète généralement le nom de l’événement géré par la fonction. Par exemple, la fonction qui gère les événements d’ouverture de session peut être nommée : WLEventLogon.

Syntaxe

void Event_Handler_Function_Name(
  _In_ PWLX_NOTIFICATION_INFO pInfo
);

Paramètres

pInfo [in]

Pointeur vers une structure de WLX_NOTIFICATION_INFO qui contient les détails de l’événement.

Valeur retournée

Cette fonction de rappel ne retourne pas de valeur.

Notes

Si votre gestionnaire d’événements doit créer des processus enfants, il doit appeler la fonction CreateProcessAsUser . Dans le cas contraire, le nouveau processus sera créé sur le bureau Winlogon, et non sur le bureau de l’utilisateur.

Exemples

L’exemple suivant montre comment implémenter des gestionnaires d’événements pour les événements Winlogon. Par souci de simplicité, seules les implémentations des gestionnaires d’événements d’ouverture de session et de déconnexion sont affichées. Vous pouvez implémenter des gestionnaires pour le reste des événements de la même manière.

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

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2003 [applications de bureau uniquement]
Fin de la prise en charge des clients
Windows XP
Fin de la prise en charge des serveurs
Windows Server 2003