다음을 통해 공유


SetUnhandledExceptionFilter 함수(errhandlingapi.h)

애플리케이션이 프로세스의 각 스레드에 대한 최상위 예외 처리기를 대체하도록 설정합니다.

이 함수를 호출한 후 디버깅되지 않는 프로세스에서 예외가 발생하고 예외가 처리되지 않은 예외 필터로 만드는 경우 해당 필터는 lpTopLevelExceptionFilter 매개 변수로 지정된 예외 필터 함수를 호출합니다.

구문

LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
  [in] LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);

매개 변수

[in] lpTopLevelExceptionFilter

UnhandledExceptionFilter 함수가 제어를 가져오고 프로세스가 디버그되지 않을 때마다 호출되는 최상위 예외 필터 함수에 대한 포인터입니다. 이 매개 변수에 대한 NULL 값은 UnhandledExceptionFilter 내의 기본 처리를 지정합니다.

필터 함수에는 UnhandledExceptionFilter와 유사한 구문이 있습니다. LPEXCEPTION_POINTERS 형식의 단일 매개 변수를 사용하고 WINAPI 호출 규칙을 가지며 LONG 형식의 값을 반환합니다. 필터 함수는 다음 값 중 하나를 반환해야 합니다.

의미
EXCEPTION_EXECUTE_HANDLER
0x1
UnhandledExceptionFilter에서 반환하고 연결된 예외 처리기를 실행합니다. 이로 인해 일반적으로 프로세스 종료가 발생합니다.
EXCEPTION_CONTINUE_EXECUTION
0xffffffff
UnhandledExceptionFilter에서 반환하고 예외 지점에서 실행을 계속합니다. 필터 함수는 LPEXCEPTION_POINTERS 매개 변수를 통해 제공된 예외 정보를 수정하여 연속 상태를 자유롭게 수정할 있습니다.
EXCEPTION_CONTINUE_SEARCH
0x0
UnhandledExceptionFilter의 정상적인 실행을 진행합니다. 즉 , SetErrorMode 플래그를 준수하거나 애플리케이션 오류 팝업 메시지 상자를 호출합니다.

반환 값

SetUnhandledExceptionFilter 함수는 함수로 설정된 이전 예외 필터의 주소를 반환합니다. NULL 반환 값은 현재 최상위 예외 처리기가 없음을 의미합니다.

설명

SetUnhandledExceptionFilter를 발급하면 호출 프로세스의 모든 기존 스레드와 이후의 모든 스레드에 대한 기존 최상위 예외 필터가 대체됩니다.

lpTopLevelExceptionFilter로 지정된 예외 처리기는 오류를 발생시킨 스레드의 컨텍스트에서 실행됩니다. 이는 잘못된 스택과 같은 특정 예외에서 복구하는 예외 처리기의 기능에 영향을 줄 수 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 errhandlingapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

추가 정보

구조적 예외 처리 함수

구조적 예외 처리 개요

UnhandledExceptionFilter

VBS Enclave에서 사용할 수 있는 Vertdll API