次の方法で共有


バグ チェック 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 つの異なる原因があります。

  1. ドライバーが誤って、または意図的にクリティカルなカーネル コードまたはデータを変更した。 x64 ベースのコンピューター用の Service Pack 1 (SP1) 付き Microsoft Windows Server 2003 およびそれ以降のバージョンの Windows では、Microsoft が発行した承認済みのホット パッチを除き、カーネルにパッチを適用することはできません。

  2. 開発者が、システムの起動時にアタッチされなかったカーネル デバッガーを使用して、通常のカーネル ブレークポイントを設定しようとした。 通常のブレークポイント (bp) は、デバッガーが起動時にアタッチされている場合にのみ設定できます。 プロセッサ ブレークポイント (ba) はいつでも設定できます。

  3. ハードウェアの破損が発生した。 たとえば、カーネル コードまたはデータが、失敗したメモリに格納されている可能性があります。

解決方法

!analyze デバッグ拡張コマンドは、バグ チェックに関する情報を表示し、根本原因の特定に役立ちます。

開始するには、k、kb、kc、kd、kp、kP、kv (Display Stack Backtrace) コマンドを使用してスタック トレースを調べます。 プロセッサ番号を指定して、すべてのプロセッサのスタックを調べることができます。

また、この停止コードの前にあるコードにブレークポイントを設定し、エラーが発生したコードへのシングル ステップ フォワードを試行することもできます。

詳細については、以下のトピックを参照してください。

Windows デバッガー (WinDbg) を使用したクラッシュ ダンプ分析

Windows デバッガーを使用してこの問題に取り組む機能がない場合は、いくつかの基本的なトラブルシューティング手法を使用できます。

  • イベント ビューアーのシステム ログで、このバグ チェックの原因になっているデバイスまたはドライバーの特定に役立つ可能性がある追加のエラー メッセージを調べます。

  • バグ チェック メッセージでドライバーがわかる場合は、ドライバーを無効にするか、製造元にドライバーの更新プログラムを確認します。

  • Windows メモリ診断ツールを実行して、メモリをテストします。 コントロール パネルの検索ボックスに「メモリ」と入力し、[お使いのコンピューターのメモリの問題の診断] を選択します。テストの実行後、イベント ビューアーを使用して、システム ログの下に結果を表示します。 MemoryDiagnostics-Results エントリを探して、結果を表示します。

  • システムの製造元から提供されているハードウェア診断を実行してみることができます。

  • インストールされた新しいハードウェアが、インストールされている Windows のバージョンと互換性があることを確認します。 たとえば、Windows 10 の仕様で必要なハードウェアに関する情報を取得できます。

  • その他の一般的なトラブルシューティング情報については、「ブルー スクリーンのデータ」を参照してください。