Partager via


Fonction SetUnhandledExceptionFilter (errhandlingapi.h)

Permet à une application de remplacer le gestionnaire d’exceptions de niveau supérieur de chaque thread d’un processus.

Après avoir appelé cette fonction, si une exception se produit dans un processus qui n’est pas en cours de débogage et que l’exception arrive au filtre d’exception non géré, ce filtre appelle la fonction de filtre d’exception spécifiée par le paramètre lpTopLevelExceptionFilter .

Syntaxe

LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
  [in] LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);

Paramètres

[in] lpTopLevelExceptionFilter

Pointeur vers une fonction de filtre d’exceptions de niveau supérieur qui sera appelée chaque fois que la fonction UnhandledExceptionFilter obtient le contrôle et que le processus n’est pas débogué. La valeur NULL pour ce paramètre spécifie la gestion par défaut dans UnhandledExceptionFilter.

La fonction de filtre a une syntaxe similaire à celle de UnhandledExceptionFilter : elle prend un paramètre unique de type LPEXCEPTION_POINTERS, a une convention d’appel WINAPI et retourne une valeur de type LONG. La fonction de filtre doit retourner l’une des valeurs suivantes.

Valeur Signification
EXCEPTION_EXECUTE_HANDLER
0x1
Retournez à partir de UnhandledExceptionFilter et exécutez le gestionnaire d’exceptions associé. Cela entraîne généralement l’arrêt du processus.
EXCEPTION_CONTINUE_EXECUTION
0xffffffff
Retournez à partir de UnhandledExceptionFilter et poursuivez l’exécution à partir du point de l’exception. Notez que la fonction de filtre est libre de modifier l’état de continuation en modifiant les informations d’exception fournies via son paramètre LPEXCEPTION_POINTERS .
EXCEPTION_CONTINUE_SEARCH
0x0
Poursuivez l’exécution normale de UnhandledExceptionFilter. Cela signifie respecter les indicateurs SetErrorMode ou appeler le message contextuel Erreur d’application.

Valeur retournée

La fonction SetUnhandledExceptionFilter retourne l’adresse du filtre d’exception précédent établi avec la fonction . Une valeur de retour NULL signifie qu’il n’existe actuellement aucun gestionnaire d’exceptions de niveau supérieur.

Remarques

L’émission de SetUnhandledExceptionFilter remplace le filtre d’exception de niveau supérieur existant pour tous les threads existants et futurs dans le processus d’appel.

Le gestionnaire d’exceptions spécifié par lpTopLevelExceptionFilter est exécuté dans le contexte du thread à l’origine de l’erreur. Cela peut affecter la capacité du gestionnaire d’exceptions à récupérer à partir de certaines exceptions, telles qu’une pile non valide.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête errhandlingapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Fonctions de gestion structurée des exceptions

Vue d’ensemble de la gestion structurée des exceptions

UnhandledExceptionFilter

API Vertdll disponibles dans les enclaves VBS