Compartir a través de


Función SetUnhandledExceptionFilter (errhandlingapi.h)

Permite que una aplicación sustituya al controlador de excepciones de nivel superior de cada subproceso de un proceso.

Después de llamar a esta función, si se produce una excepción en un proceso que no se está depurando y la excepción la convierte en el filtro de excepciones no controlada, ese filtro llamará a la función de filtro de excepciones especificada por el parámetro lpTopLevelExceptionFilter .

Sintaxis

LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
  [in] LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);

Parámetros

[in] lpTopLevelExceptionFilter

Puntero a una función de filtro de excepciones de nivel superior que se llamará cada vez que la función UnhandledExceptionFilter obtiene el control y el proceso no se está depurando. Un valor de NULL para este parámetro especifica el control predeterminado en UnhandledExceptionFilter.

La función filter tiene una sintaxis similar a la de UnhandledExceptionFilter: toma un único parámetro de tipo LPEXCEPTION_POINTERS, tiene una convención de llamada de WINAPI y devuelve un valor de tipo LONG. La función filter debe devolver uno de los valores siguientes.

Valor Significado
EXCEPTION_EXECUTE_HANDLER
0x1
Vuelva desde UnhandledExceptionFilter y ejecute el controlador de excepciones asociado. Esto suele provocar la finalización del proceso.
EXCEPTION_CONTINUE_EXECUTION
0xffffffff
Devuelve desde UnhandledExceptionFilter y continúa la ejecución desde el punto de la excepción. Tenga en cuenta que la función de filtro es libre de modificar el estado de continuación modificando la información de excepción proporcionada a través de su parámetro LPEXCEPTION_POINTERS .
EXCEPTION_CONTINUE_SEARCH
0x0
Continúe con la ejecución normal de UnhandledExceptionFilter. Esto significa obedecer las marcas SetErrorMode o invocar el cuadro de mensaje emergente Error de aplicación.

Valor devuelto

La función SetUnhandledExceptionFilter devuelve la dirección del filtro de excepción anterior establecido con la función . Un valor devuelto NULL significa que no hay ningún controlador de excepciones de nivel superior actual.

Comentarios

La emisión de SetUnhandledExceptionFilter reemplaza el filtro de excepción de nivel superior existente para todos los subprocesos existentes y todos los subprocesos futuros del proceso de llamada.

El controlador de excepciones especificado por lpTopLevelExceptionFilter se ejecuta en el contexto del subproceso que provocó el error. Esto puede afectar a la capacidad del controlador de excepciones para recuperarse de determinadas excepciones, como una pila no válida.

Requisitos

   
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado errhandlingapi.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Consulte también

Funciones del control estructurado de excepciones

Información general del control de excepciones estructurado

UnhandledExceptionFilter

API de Vertdll disponibles en enclaves de VBS