KeBugCheck function (ntddk.h)

The KeBugCheck routine brings down the system in a controlled manner when the caller discovers an unrecoverable inconsistency that would corrupt the system if the caller continued to run.

Syntax

void KeBugCheck(
  [in] ULONG BugCheckCode
);

Parameters

[in] BugCheckCode

Specifies a value that indicates the reason for the bug check.

Return value

None

Remarks

A bug check is a system-detected error that causes an immediate, controlled shutdown of the system. Various kernel-mode components perform run-time consistency checking. When such a component discovers an unrecoverable inconsistency, it causes a bug check to be generated.

Whenever possible, all kernel-mode components should log an error and continue to run, rather than calling KeBugCheck. For example, if a driver is unable to allocate required resources, it should log an error so that the system continues to run; it must not generate a bug check.

A driver or other kernel-mode component should call this routine only in cases of a fatal, unrecoverable error that could corrupt the system itself.

KeBugCheck can be useful in the early stages of developing a driver, or while it is undergoing testing. In these circumstances, the BugCheckCode passed to this routine should be distinct from those codes already in use by Windows or its drivers. For a list of these codes, see Bug Check Codes.

However, even during driver development, this routine is of only limited utility, since it results in a complete system shutdown. A more effective debugging method is to attach a kernel debugger to the system and then use routines that send messages to the debugger or break into the debugger. For further information, see Get started with WinDbg (kernel-mode).

When a bug check is unavoidable, most system components call KeBugCheckEx, which provides more information about the cause of such an inconsistency than KeBugCheck.

Requirements

Requirement Value
Minimum supported client Available starting with Windows 2000.
Target Platform Universal
Header ntddk.h (include Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Any level

See also

IoAllocateErrorLogEntry

IoWriteErrorLogEntry

KeBugCheckEx

KeRegisterBugCheckCallback

KeRegisterBugCheckReasonCallback