KeBugCheck 関数 (ntddk.h)

呼び出し元が実行を継続した場合にシステムを破損させる回復不能な不整合を呼び出し元が検出すると、 KeBugCheck ルーチンは制御された方法でシステムをダウンします。

構文

void KeBugCheck(
  [in] ULONG BugCheckCode
);

パラメーター

[in] BugCheckCode

バグ チェックの理由を示す値を指定します。

戻り値

なし

解説

バグ チェックは、システムが即座に制御されたシャットダウンを引き起こすシステム検出エラーです。 さまざまなカーネル モード コンポーネントは、実行時の整合性チェックを実行します。 このようなコンポーネントが回復不能な不整合を検出すると、バグ チェックが生成されます。

可能な限り、すべてのカーネル モード コンポーネントは 、KeBugCheck を呼び出すのではなく、エラーをログに記録し、引き続き実行する必要があります。 たとえば、ドライバーが必要なリソースを割り当てることができない場合は、システムが引き続き実行されるようにエラーをログに記録する必要があります。バグ チェックを生成することはできません。

ドライバーまたはその他のカーネル モード コンポーネントは、システム自体を破損する可能性がある致命的で回復不可能なエラーが発生した場合にのみ、このルーチンを呼び出す必要があります。

KeBugCheck は、ドライバー開発の初期段階、またはテスト中に役立ちます。 このような状況では、このルーチンに渡される BugCheckCode は、Windows またはそのドライバーで既に使用されているコードとは異なる必要があります。 これらのコードの一覧については、「 バグ チェック コード」を参照してください。

ただし、ドライバーの開発中でも、このルーチンは、完全なシステムシャットダウンが発生するため、限られたユーティリティにすぎません。 より効果的なデバッグ方法は、システムにカーネル デバッガーをアタッチし、デバッガーにメッセージを送信するルーチンを使用するか、デバッガーに中断することです。 詳細については、「 ドライバーでのデバッグ コードの使用」を参照してください。

バグチェック避けられない場合、ほとんどのシステム コンポーネントは KeBugCheckEx を呼び出します。これにより、KeBugCheck よりもこのような不整合の原因に関する詳細情報が提供されます。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header ntddk.h (Ntddk.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル

こちらもご覧ください

IoAllocateErrorLogEntry

IoWriteErrorLogEntry

KeBugCheckEx

KeRegisterBugCheckCallback

KeRegisterBugCheckReasonCallback