Freigeben über


SetUnhandledExceptionFilter-Funktion (errhandlingapi.h)

Ermöglicht es einer Anwendung, den Ausnahmehandler der obersten Ebene jedes Threads eines Prozesses abzulösen.

Wenn nach dem Aufrufen dieser Funktion eine Ausnahme in einem Prozess auftritt, der nicht gedebuggt wird, und die Ausnahme sie zum nicht behandelten Ausnahmefilter macht, ruft dieser Filter die Ausnahmefilterfunktion auf, die durch den lpTopLevelExceptionFilter-Parameter angegeben wird.

Syntax

LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
  [in] LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);

Parameter

[in] lpTopLevelExceptionFilter

Ein Zeiger auf eine Ausnahmefilterfunktion der obersten Ebene, die immer dann aufgerufen wird, wenn die UnhandledExceptionFilter-Funktion die Kontrolle erhält und der Prozess nicht debuggt wird. Der Wert NULL für diesen Parameter gibt die Standardbehandlung in UnhandledExceptionFilter an.

Die Filterfunktion weist eine Syntax auf, die der von UnhandledExceptionFilter ähnelt: Sie akzeptiert einen einzelnen Parameter vom Typ LPEXCEPTION_POINTERS, weist eine WINAPI-Aufrufkonvention auf und gibt einen Wert vom Typ LONG zurück. Die Filterfunktion sollte einen der folgenden Werte zurückgeben.

Wert Bedeutung
EXCEPTION_EXECUTE_HANDLER
0x1
Kehren Sie von UnhandledExceptionFilter zurück, und führen Sie den zugeordneten Ausnahmehandler aus. Dies führt in der Regel zum Beenden des Prozesses.
EXCEPTION_CONTINUE_EXECUTION
0xffffffff
Geben Sie von UnhandledExceptionFilter zurück, und setzen Sie die Ausführung ab dem Punkt der Ausnahme fort. Beachten Sie, dass die Filterfunktion den Fortsetzungszustand ändern kann, indem sie die Ausnahmeinformationen ändert, die über den parameter LPEXCEPTION_POINTERS bereitgestellt werden.
EXCEPTION_CONTINUE_SEARCH
0x0
Fahren Sie mit der normalen Ausführung von UnhandledExceptionFilter fort. Dies bedeutet, dass Sie den SetErrorMode-Flags folgen oder das Popupmeldungsfeld Anwendungsfehler aufrufen.

Rückgabewert

Die SetUnhandledExceptionFilter-Funktion gibt die Adresse des vorherigen Ausnahmefilters zurück, der mit der Funktion eingerichtet wurde. Ein NULL-Rückgabewert bedeutet, dass es keinen aktuellen Ausnahmehandler der obersten Ebene gibt.

Hinweise

Das Ausgeben von SetUnhandledExceptionFilter ersetzt den vorhandenen Ausnahmefilter der obersten Ebene für alle vorhandenen und zukünftigen Threads im aufrufenden Prozess.

Der von lpTopLevelExceptionFilter angegebene Ausnahmehandler wird im Kontext des Threads ausgeführt, der den Fehler verursacht hat. Dies kann sich auf die Fähigkeit des Ausnahmehandlers auswirken, nach bestimmten Ausnahmen wie einem ungültigen Stapel wiederherzustellen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile errhandlingapi.h (Windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Funktionen der strukturierten Ausnahmebehandlung

Übersicht über die strukturierte Ausnahmebehandlung

UnhandledExceptionFilter

In VBS-Enclaves verfügbare Vertdll-APIs