Condividi tramite


Gestori di controllo della console

Ogni processo della console ha un proprio elenco di funzioni del gestore di controllo chiamate dal sistema quando il processo riceve un segnale CTRL+C, CTRL+BREAK o CTRL+CLO edizione Standard. Inizialmente, l'elenco dei gestori di controllo per ogni processo contiene solo una funzione del gestore predefinita che chiama la funzione ExitProcess. Un processo della console può aggiungere o rimuovere altre funzioni HandlerRoutine chiamando la funzione SetConsoleCtrlHandler. Questa funzione non influisce sugli elenchi dei gestori di controllo per altri processi. Quando un processo della console riceve uno dei segnali di controllo, chiama le funzioni del gestore in base all'ultima registrazione, denominata per primo fino a quando uno dei gestori non restituisce TRUE. Se nessuno dei gestori restituisce TRUE, viene chiamato il gestore predefinito.

Il parametro dwCtrlType della funzione identifica il segnale di controllo ricevuto e il valore restituito indica se il segnale è stato gestito.

Viene avviato un nuovo thread all'interno del processo client della riga di comando per eseguire le routine del gestore. Altre informazioni sui valori di timeout e sull'azione di questo thread sono disponibili nella documentazione della funzione HandlerRoutine.

Per un esempio di funzione del gestore di controlli, vedere Registrazione di una funzione del gestore di controllo.

Si noti che la chiamata a AttachConsole, AllocConsole o FreeConsole reimposta la tabella dei gestori di controllo nel processo client allo stato iniziale.