Partager via


Gestionnaires de contrôle d’une console

Chaque processus de console possède sa propre liste de fonctions de gestionnaire de contrôle qui sont appelées par le système lorsque le processus reçoit un signal CTRL+C, CTRL+PAUSE ou CTRL+FERMER. À la base, la liste des gestionnaires de contrôle de chaque processus contient seulement une fonction de gestionnaire par défaut qui appelle la fonction ExitProcess. Un processus de console peut ajouter ou supprimer des fonctions HandlerRoutine supplémentaires en appelant la fonction SetConsoleCtrlHandler. Cette fonction n’affecte pas les listes de gestionnaires de contrôle des autres processus. Quand un processus de console reçoit un des signaux de contrôle, il appelle les fonctions de gestionnaire selon le principe « dernier enregistré, premier appelé », jusqu’à ce qu’un des gestionnaires renvoie VRAI. Si aucun des gestionnaires ne renvoie VRAI, le gestionnaire par défaut est appelé.

Le paramètre dwCtrlType de la fonction identifie le signal de contrôle reçu et la valeur renvoyée indique si le signal a été géré.

Un nouveau thread est démarré dans le processus client de la ligne de commande pour exécuter les routines du gestionnaire. Vous trouverez plus d’informations sur les valeurs de délai d’expiration et l’action de ce thread dans la documentation de la fonctionHandlerRoutine.

Pour obtenir un exemple de fonction de gestionnaire de contrôle, consultez la section Inscription d’une fonction de gestionnaire de contrôle.

Notez que le fait d’appeler AttachConsole, AllocConsole ou FreeConsole rétablit l’état initial de la table des gestionnaires de contrôle dans le processus client.