KeBugCheck 함수(ntddk.h)

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

통사론

void KeBugCheck(
  [in] ULONG BugCheckCode
);

매개 변수

[in] BugCheckCode

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

반환 값

없음

발언

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

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

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

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

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

버그 검사를 피할 수 없는 경우 대부분의 시스템 구성 요소는 KeBugCheckEx호출합니다. 이는 KeBugCheck보다 이러한 불일치의 원인에 대한 자세한 정보를 제공합니다.

요구 사항

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

참고 항목

IoAllocateErrorLogEntry

IoWriteErrorLogEntry

KeBugCheckEx

KeRegisterBugCheckCallback

KeRegisterBugCheckReasonCallback