次の方法で共有


KeRegisterBugCheckReasonCallback 関数 (wdm.h)

KeRegisterBugCheckReasonCallback 関数は、オペレーティング システムがバグ チェックを発行したときに実行されるコールバック ルーチンを登録します。

構文

BOOLEAN KeRegisterBugCheckReasonCallback(
  [out] PKBUGCHECK_REASON_CALLBACK_RECORD  CallbackRecord,
  [in]  PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
  [in]  KBUGCHECK_CALLBACK_REASON          Reason,
  [in]  PUCHAR                             Component
);

パラメーター

[out] CallbackRecord

Windows カーネル マクロで説明されている KeInitializeCallbackRecord ルーチンの呼び出しによって初期化されたKBUGCHECK_REASON_CALLBACK_RECORD構造体へのポインター。

[in] CallbackRoutine

登録する KBUGCHECK_REASON_CALLBACK_ROUTINE 型のコールバック ルーチンへのポインター。 このコールバック ルーチンを実装する方法については、「 バグ チェック コールバック ルーチンの記述」を参照してください。

[in] Reason

CallbackRoutineが指すコールバック ルーチンの型を指定する KBUGCHECK_CALLBACK_REASON 型の列挙体。

[in] Component

呼び出し元を識別する null で終わる ANSI 文字列へのポインター。 たとえば、デバイス ドライバーを記述する文字列、またはデバイス名を含む文字列を選択できます。 !bugdump デバッガー拡張機能を使用すると、この文字列に関連付けられているクラッシュ ダンプ データを表示できます。

戻り値

コールバック ルーチンが正常に登録された場合、KeRegisterBugCheckReasonCallbackTRUE を返します。それ以外の場合は、FALSE を返します

注釈

ドライバーは、KeRegisterBugCheckReasonCallback を使用して、システム バグ チェック中に実行されるルーチンを登録できます。

コールバックの各種類の説明については、「 KBUGCHECK_CALLBACK_REASON」を参照してください。

ドライバーは、KeDeregisterBugCheckReasonCallback ルーチンを使用して、コールバック登録チェックバグを削除できます。 アンロードできるドライバーは、 Unload ルーチン内 のすべてのコールバックの登録を削除する必要があります。

これらのコールバック ルーチンを実装する方法については、「 バグ チェック コールバック ルーチンの記述」を参照してください。

セカンダリ ダンプ データを表示するには、デバッガー拡張機能で IDebugDataSpaces3::ReadTagged** メソッドを使用します。 もう 1 つのオプションは、コールバック ルーチン自体チェックバグをデバッグすることです。 デバッガーとデバッガー拡張機能の詳細については、「 Windows デバッグ」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP Service Pack 1 (SP1)、Windows Server 2003、およびそれ以降のバージョンの Windows で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル

こちらもご覧ください

バグ チェック コールバック ルーチンの記述

KBUGCHECK_CALLBACK_REASON

KBUGCHECK_REASON_CALLBACK_RECORD

KeDeregisterBugCheckReasonCallback

KeInitializeCallbackRecord

KeRegisterBugCheckCallback