次の方法で共有


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