バグ チェック 0x109: CRITICAL_STRUCTURE_CORRUPTION
CRITICAL_STRUCTURE_CORRUPTION バグ チェックの値は 0x00000109 です。 これは、カーネルがクリティカルなカーネル コードまたはデータの破損を検出したことを示します。
重要
この記事は、プログラマー向けです。 コンピューターを使用中に、ブルー スクリーン エラーが表示された場合は、「ブルー スクリーン エラーのトラブルシューティング」を参照してください。
CRITICAL_STRUCTURE_CORRUPTION パラメーター
パラメーター | 説明 |
---|---|
1 |
予約済み |
2 |
予約済み |
3 |
予約済み |
4 |
破損したリージョンの種類。 (このページの後の表を参照してください)。 |
パラメーター 4 の値は、破損したリージョンの種類を示します。
パラメーター 4 | 破損したリージョンの種類、破損の種類、または破損の原因となったアクションの種類 |
---|---|
0x0 |
汎用データ リージョン |
0x1 |
関数変更 |
0x2 |
プロセッサ割り込みディスパッチ テーブル (IDT) |
0x3 |
プロセッサ グローバル記述子テーブル (GDT) |
0x4 |
タイプ-1 プロセス リストの破損 |
0x5 |
タイプ-2 プロセス リストの破損 |
0x6 |
デバッグ ルーチンの変更 |
0x7 |
クリティカルな MSR の変更 |
0x8 |
オブジェクトの種類 |
0x9 |
プロセッサ IVT |
0xA |
システム サービス機能の変更 |
0xB |
汎用セッション データ リージョン |
0xC |
セッション関数または .pdata の変更 |
0xD |
インポート テーブルの変更 |
0xE |
セッション インポート テーブルの変更 |
0xF |
Ps Win32 コールアウトの変更 |
0x10 |
スイッチ ルーチンの変更をデバッグ |
0x11 |
IRP アロケーターの変更 |
0x12 |
ドライバー呼び出しディスパッチャーの変更 |
0x13 |
IRP 完了ディスパッチャーの変更 |
0x14 |
IRP デアロケーターの変更 |
0x15 |
プロセッサ コントロール レジスタ (PCR) |
0x16 |
クリティカルな浮動小数点コントロール レジスタの変更 |
0x17 |
ローカル APIC の変更 |
0x18 |
カーネル通知コールアウトの変更 |
0x19 |
読み込まれたモジュール リストの変更 |
0x1A |
タイプ 3 プロセス リストの破損 |
0x1B |
タイプ 4 プロセス リストの破損 |
0x1C |
ドライバー オブジェクトの破損 |
0x1D |
エグゼクティブ コールバック オブジェクトの変更 |
0x1E |
モジュール パディングの変更 |
0x1F |
保護されたプロセスの変更 |
0x20 |
汎用データ リージョン |
0x21 |
ページ ハッシュの不一致 |
0x22 |
セッション ページ ハッシュの不一致 |
0x23 |
構成ディレクトリの変更の読み込み |
0x24 |
反転関数テーブルの変更 |
0x25 |
セッション構成の変更 |
0x26 |
拡張プロセッサ コントロール レジスタ |
0x27 |
タイプ 1 プールの破損 |
0x28 |
タイプ 2 プールの破損 |
0x29 |
タイプ 3 プールの破損 |
0x101 |
一般的なプールの破損 |
0x102 |
win32k.sys の変更 |
原因
このバグ チェックには、一般的に 3 つの異なる原因があります。
ドライバーが誤って、または意図的にクリティカルなカーネル コードまたはデータを変更した。 x64 ベースのコンピューター用の Service Pack 1 (SP1) 付き Microsoft Windows Server 2003 およびそれ以降のバージョンの Windows では、Microsoft が発行した承認済みのホット パッチを除き、カーネルにパッチを適用することはできません。
開発者が、システムの起動時にアタッチされなかったカーネル デバッガーを使用して、通常のカーネル ブレークポイントを設定しようとした。 通常のブレークポイント (bp) は、デバッガーが起動時にアタッチされている場合にのみ設定できます。 プロセッサ ブレークポイント (ba) はいつでも設定できます。
ハードウェアの破損が発生した。 たとえば、カーネル コードまたはデータが、失敗したメモリに格納されている可能性があります。
解決方法
!analyze デバッグ拡張コマンドは、バグ チェックに関する情報を表示し、根本原因の特定に役立ちます。
開始するには、k、kb、kc、kd、kp、kP、kv (Display Stack Backtrace) コマンドを使用してスタック トレースを調べます。 プロセッサ番号を指定して、すべてのプロセッサのスタックを調べることができます。
また、この停止コードの前にあるコードにブレークポイントを設定し、エラーが発生したコードへのシングル ステップ フォワードを試行することもできます。
詳細については、以下のトピックを参照してください。
Windows デバッガー (WinDbg) を使用したクラッシュ ダンプ分析
Windows デバッガーを使用してこの問題に取り組む機能がない場合は、いくつかの基本的なトラブルシューティング手法を使用できます。
イベント ビューアーのシステム ログで、このバグ チェックの原因になっているデバイスまたはドライバーの特定に役立つ可能性がある追加のエラー メッセージを調べます。
バグ チェック メッセージでドライバーがわかる場合は、ドライバーを無効にするか、製造元にドライバーの更新プログラムを確認します。
Windows メモリ診断ツールを実行して、メモリをテストします。 コントロール パネルの検索ボックスに「Memory」と入力し、[コンピューターのメモリの問題を診断する] を選択します。テストの実行後、イベント ビューアーを使用して、システム ログの下に結果を表示します。 MemoryDiagnostics-Results エントリを探して、結果を表示します。
システムの製造元から提供されているハードウェア診断を実行してみることができます。
インストールされた新しいハードウェアが、インストールされている Windows のバージョンと互換性があることを確認します。 たとえば、 Windows 10 の仕様で必要なハードウェアに関する情報を取得できます。
その他の一般的なトラブルシューティング情報については、バグ チェックのブルー スクリーン データの分析に関する記述を参照してください。