다음을 통해 공유


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 또는 해당 드라이버에서 이미 사용 중인 코드와 구별되어야 합니다. 이러한 코드 목록은 버그 검사 코드참조하세요.

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

요구 사항

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

참고 항목

IoAllocateErrorLogEntry

IoWriteErrorLogEntry

KeBugCheck

KeRegisterBugCheckCallback

KeRegisterBugCheckReasonCallback