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 appelées par le système lorsque le processus reçoit un signal Ctrl+C, Ctrl+Break ou Ctrl+Close . Initialement, la liste des gestionnaires de contrôle pour chaque processus contient uniquement 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 pour d’autres processus. Lorsqu’un processus de console reçoit l’un des signaux de contrôle, il appelle les fonctions du gestionnaire sur une base de type last-registered, appelée d’abord jusqu’à ce qu’un des gestionnaires retourne TRUE. Si aucun des gestionnaires ne retourne TRUE, 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 de retour indique si le signal a été géré.

Un nouveau thread est démarré à l’intérieur du processus client de ligne de commande pour exécuter les routines de gestionnaire. Vous trouverez plus d’informations sur les valeurs de délai d’attente et l’action de ce thread dans la documentation de la fonction HandlerRoutine .

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

Notez que l’appel de AttachConsole, AllocConsole ou FreeConsole réinitialise la table des gestionnaires de contrôles dans le processus client à son état initial.