KeBugCheckEx 함수(wdm.h)

KeBugCheckEx 루틴은 호출자가 호출자가 계속 실행될 경우 시스템을 손상시키는 복구할 수 없는 불일치를 발견할 때 제어된 방식으로 시스템을 다운합니다.

구문

void KeBugCheckEx(
  [in] ULONG     BugCheckCode,
  [in] ULONG_PTR BugCheckParameter1,
  [in] ULONG_PTR BugCheckParameter2,
  [in] ULONG_PTR BugCheckParameter3,
  [in] ULONG_PTR BugCheckParameter4
);

매개 변수

[in] BugCheckCode

버그 검사 이유를 나타내는 값을 지정합니다.

[in] BugCheckParameter1

[in] BugCheckParameter2

[in] BugCheckParameter3

[in] BugCheckParameter4

4개의 BugCheckParameterX 값은 BugCheckCode 값에 따라 메모리 손상 오류가 발생한 주소 및 데이터와 같은 추가 정보를 제공합니다.

반환 값

없음

설명

버그 검사 시스템의 즉시 제어된 종료를 유발하는 시스템 검색 오류입니다. 다양한 커널 모드 구성 요소는 런타임 일관성 검사를 수행합니다. 이러한 구성 요소가 복구할 수 없는 불일치를 발견하면 버그 검사 생성됩니다.

가능하면 모든 커널 모드 구성 요소는 KeBugCheckEx를 호출하는 대신 오류를 기록하고 계속 실행해야 합니다. 예를 들어 드라이버가 필요한 리소스를 할당할 수 없는 경우 시스템이 계속 실행되도록 오류를 기록해야 합니다. 버그 검사 생성하지 않아야 합니다.

드라이버 또는 다른 커널 모드 구성 요소는 시스템 자체를 손상시킬 수 있는 치명적이며 복구할 수 없는 오류의 경우에만 이 루틴을 호출해야 합니다.

KeBugCheckEx 는 드라이버를 개발하는 초기 단계 또는 테스트를 진행하는 동안 유용할 수 있습니다. 이러한 상황에서 이 루틴에 전달된 BugCheckCode 는 Windows 또는 해당 드라이버에서 이미 사용 중인 코드와 구별되어야 합니다. 이러한 코드 목록은 버그 검사 코드를 참조하세요.

그러나 드라이버 개발 중에도 이 루틴은 시스템이 완전히 종료되므로 제한된 유틸리티일 뿐입니다. 보다 효과적인 디버깅 방법은 커널 디버거를 시스템에 연결한 다음 디버거에 메시지를 보내거나 디버거에 침입하는 루틴을 사용하는 것입니다. 자세한 내용은 드라이버에서 디버깅 코드 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 이상 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준

추가 정보

IoAllocateErrorLogEntry

IoWriteErrorLogEntry

KeBugCheck

KeRegisterBugCheckCallback

KeRegisterBugCheckReasonCallback