Share via


Funzione SetUnhandledExceptionFilter (errhandlingapi.h)

Consente a un'applicazione di sostituire il gestore di eccezioni di primo livello di ogni thread di un processo.

Dopo aver chiamato questa funzione, se si verifica un'eccezione in un processo che non viene sottoposto a debug e l'eccezione lo imposta sul filtro delle eccezioni non gestito, tale filtro chiamerà la funzione di filtro delle eccezioni specificata dal parametro lpTopLevelExceptionFilter .

Sintassi

LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
  [in] LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);

Parametri

[in] lpTopLevelExceptionFilter

Puntatore a una funzione di filtro eccezioni di primo livello che verrà chiamata ogni volta che la funzione UnhandledExceptionFilter ottiene il controllo e il processo non viene sottoposto a debug. Il valore NULL per questo parametro specifica la gestione predefinita all'interno di UnhandledExceptionFilter.

La funzione di filtro ha una sintassi simile a quella di UnhandledExceptionFilter: accetta un singolo parametro di tipo LPEXCEPTION_POINTERS, ha una convenzione di chiamata WINAPI e restituisce un valore di tipo LONG. La funzione di filtro deve restituire uno dei valori seguenti.

Valore Significato
EXCEPTION_EXECUTE_HANDLER
0x1
Restituire da UnhandledExceptionFilter ed eseguire il gestore eccezioni associato. Ciò comporta in genere la terminazione del processo.
EXCEPTION_CONTINUE_EXECUTION
0xffffffff
Restituire da UnhandledExceptionFilter e continuare l'esecuzione dal punto dell'eccezione. Si noti che la funzione di filtro è libera di modificare lo stato di continuazione modificando le informazioni sull'eccezione fornite tramite il relativo parametro LPEXCEPTION_POINTERS .
EXCEPTION_CONTINUE_SEARCH
0x0
Procedere con l'esecuzione normale di UnhandledExceptionFilter. Ciò significa obbedire ai flag SetErrorMode o richiamare la finestra di messaggio popup Errore applicazione.

Valore restituito

La funzione SetUnhandledExceptionFilter restituisce l'indirizzo del filtro di eccezione precedente stabilito con la funzione . Un valore restituito NULL indica che non è presente alcun gestore di eccezioni di primo livello corrente.

Commenti

L'emissione di SetUnhandledExceptionFilter sostituisce il filtro eccezioni di primo livello esistente per tutti i thread esistenti e tutti i thread futuri nel processo chiamante.

Il gestore eccezioni specificato da lpTopLevelExceptionFilter viene eseguito nel contesto del thread che ha causato l'errore. Ciò può influire sulla capacità del gestore eccezioni di eseguire il ripristino da determinate eccezioni, ad esempio uno stack non valido.

Requisiti

   
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione errhandlingapi.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Funzioni di gestione delle eccezioni strutturate

Cenni preliminari sulla gestione delle eccezioni strutturate

UnhandledExceptionFilter

API Vertdll disponibili nelle enclave VBS