Compartilhar via


Função SetUnhandledExceptionFilter (errhandlingapi.h)

Permite que um aplicativo substitua o manipulador de exceção de nível superior de cada thread de um processo.

Depois de chamar essa função, se ocorrer uma exceção em um processo que não está sendo depurado e a exceção fizer isso para o filtro de exceção sem tratamento, esse filtro chamará a função de filtro de exceção especificada pelo parâmetro lpTopLevelExceptionFilter .

Sintaxe

LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
  [in] LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);

Parâmetros

[in] lpTopLevelExceptionFilter

Um ponteiro para uma função de filtro de exceção de nível superior que será chamada sempre que a função UnhandledExceptionFilter receber o controle e o processo não estiver sendo depurado. Um valor nulo para esse parâmetro especifica o tratamento padrão em UnhandledExceptionFilter.

A função de filtro tem uma sintaxe semelhante à de UnhandledExceptionFilter: ela usa um único parâmetro do tipo LPEXCEPTION_POINTERS, tem uma convenção de chamada WINAPI e retorna um valor do tipo LONG. A função de filtro deve retornar um dos valores a seguir.

Valor Significado
EXCEPTION_EXECUTE_HANDLER
0x1
Retorne de UnhandledExceptionFilter e execute o manipulador de exceção associado. Isso geralmente resulta em encerramento do processo.
EXCEPTION_CONTINUE_EXECUTION
0xffffffff
Retorne de UnhandledExceptionFilter e continue a execução do ponto da exceção. Observe que a função de filtro é livre para modificar o estado de continuação modificando as informações de exceção fornecidas por meio de seu parâmetro LPEXCEPTION_POINTERS .
EXCEPTION_CONTINUE_SEARCH
0x0
Prossiga com a execução normal de UnhandledExceptionFilter. Isso significa obedecer aos sinalizadores SetErrorMode ou invocar a caixa de mensagem pop-up Erro do Aplicativo.

Retornar valor

A função SetUnhandledExceptionFilter retorna o endereço do filtro de exceção anterior estabelecido com a função . Um valor retornado NULL significa que não há nenhum manipulador de exceção de nível superior atual.

Comentários

A emissão de SetUnhandledExceptionFilter substitui o filtro de exceção de nível superior existente para todos os threads existentes e futuros no processo de chamada.

O manipulador de exceção especificado por lpTopLevelExceptionFilter é executado no contexto do thread que causou a falha. Isso pode afetar a capacidade do manipulador de exceção de se recuperar de determinadas exceções, como uma pilha inválida.

Requisitos

   
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho errhandlingapi.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções do tratamento de exceções estruturado

Visão geral da manipulação de exceção estruturada

UnhandledExceptionFilter

APIs Vertdll disponíveis em enclaves de VBS