KMODE_EXCEPTION_NOT_HANDLED(0x1E)の原因と直し方|メモリ不良を疑うブルースクリーン診断【2026年版】
本記事にはアフィリエイト広告(Amazon・楽天市場等)のリンクが含まれています。
ゲーム中に突然ブルースクリーンで再起動する場合の診断ガイド
ゲーム中に突然画面が真っ青になり、「KMODE_EXCEPTION_NOT_HANDLED」というエラーメッセージとともにPCが再起動する。GPUドライバーを何度入れ直しても直らず、原因が分からないままメモリやマザーボードの交換まで検討してしまいがちです。
Microsoft公式ドキュメントによると、この停止コード(バグチェックコード0x0000001E)は、カーネルモードで動作するプログラムが、エラーハンドラーで捕捉されない例外を発生させたことを示します。特定の種類のドライバーに絞り込んだ説明ではなく、原因になり得る範囲はかなり広いのが特徴です。一方で公式ドキュメントは、原因調査の手段として「システムメーカー提供のハードウェア診断、特にメモリスキャナーを実行する」ことを名指しで案内しており、これは同じサイトで扱っているSYSTEM_SERVICE_EXCEPTION(0x3B)やDPC_WATCHDOG_VIOLATION(0x133)の公式ドキュメントには見られない記述です。
この記事では仕組みの解説だけで終わらせず、似た名前・似た症状の停止コードとの違いを整理したうえで、イベントビューアーとミニダンプから原因ドライバーを特定する手順、そしてこのコードならではの分岐点である「メモリ不良を疑うべきかどうか」の見分け方までを順番に案内します。
目次
定義KMODE_EXCEPTION_NOT_HANDLED(0x1E)とは|似た停止コードとの違い
Microsoft公式ドキュメント「Bug Check 0x1E KMODE_EXCEPTION_NOT_HANDLED」によると、この停止コードは値0x0000001Eを持ち、「カーネルモードのプログラムが、エラーハンドラーによって捕捉されない例外を発生させたこと」を示します。パラメーター1が捕捉されなかった例外コード、パラメーター2がその例外が発生したアドレス、パラメーター3とパラメーター4はいずれも公式ドキュメント上で「例外レコードの例外情報パラメーター0」として説明されています。
この停止コードを解釈するには、まずどの例外が発生したかを特定する必要があるとされ、代表的な例外コードとして次の3つが挙げられています。カーネルデバッガーが接続されていない状態でブレークポイントやASSERTに達したことを示す0x80000003(STATUS_BREAKPOINT)、アライメントされていないデータ参照を示す0x80000002(STATUS_DATATYPE_MISALIGNMENT)、そしてメモリアクセス違反を示す0xC0000005(STATUS_ACCESS_VIOLATION)です。STATUS_ACCESS_VIOLATIONの場合、パラメーター4はドライバーが実際にアクセスしようとしたアドレスに置き換わるとも説明されています。
Microsoft公式ドキュメントには、この停止コードの解析手順を示す実例が掲載されていますが、そこで表示されている原因ドライバーはQIC117.SYS、つまりQIC-117規格のテープバックアップドライブ用ドライバーです。QIC-117は主に1990年代のPCでバックアップ用途に使われていた古い規格で、現行のゲーミングPCではまず目にすることのないハードウェアです。公式のリファレンス文書がいまだにこの解析例を掲載し続けていること自体、KMODE_EXCEPTION_NOT_HANDLED(0x1E)がWindowsのカーネルデバッグ文書の中でも特に古くから存在する、いわば「古典的な」停止コードであることを物語っています。
KMODE_EXCEPTION_NOT_HANDLEDは、名前や症状が似ている他の停止コードと混同されがちです。発動の仕組みが異なるため、該当する場合はそれぞれの専用記事を参照してください。
特権を持たないコードから特権コードへ遷移するルーチン、つまりシステムサービスの呼び出しを実行している最中に例外が発生した場合に発動します。KMODE_EXCEPTION_NOT_HANDLEDが例外の発生経路を問わない広い括りの停止コードであるのに対し、こちらはシステムサービス呼び出し中という条件に絞られています。仕組みの詳細はSYSTEM_SERVICE_EXCEPTION(0x3B)の原因と直し方で解説しています。
ドライバーが担当するDPC(Deferred Procedure Call)という処理が異常に長時間かかったことを検知して発動します。例外の発生ではなく処理時間の超過を検知する仕組みで、KMODE_EXCEPTION_NOT_HANDLEDとは発動のトリガー自体が異なります。仕組みの詳細はDPC_WATCHDOG_VIOLATION(0x133)の原因と直し方で解説しています。
WindowsのTDR(Timeout Detection and Recovery)というディスプレイドライバー専用の保護・復旧の仕組みが、GPUの応答復旧に失敗した場合に発動します。KMODE_EXCEPTION_NOT_HANDLEDがGPUに限らず任意のカーネルモードコードを対象にするのに対し、TDRはグラフィックドライバーのタイムアウトだけを扱う点が異なります。仕組みは「ディスプレイドライバーが応答を停止したため」の原因と直し方で解説しています。
メモリのXMP・EXPOオーバークロックを有効にした際に報告されることが多い停止コード群です。KMODE_EXCEPTION_NOT_HANDLEDも後述の通りメモリ不良との関連が語られやすいコードですが、こちらはオーバークロックの不安定化という原因軸に特化して扱います。判別方法や電圧の目安はXMP・EXPOを有効にしたら不安定・ブルースクリーンになる原因と対処法で解説しています。
原因原因|Microsoft公式情報からわかること
Microsoft公式ドキュメントは、この停止コードの原因について次のように説明しています。まず「新しくインストールしたハードウェアが、インストール済みのWindowsのバージョンと互換性があるか確認すること」というハードウェアの非互換性を挙げ、続けて「不良なデバイスドライバーまたはシステムサービス」もこのエラーの原因になり得るとしています。さらに、BIOSの非互換性・メモリの競合・IRQの競合といったハードウェアの問題もこの停止コードを発生させる場合があると明記されています。
公式ドキュメントは調査手順として「イベントビューアーのシステムログで、原因のデバイスやドライバーを特定する助けになる他のエラーメッセージを確認する」ことに加え、「システムメーカーが提供するハードウェア診断、特にメモリスキャナーを実行する」ことを案内しています。同じサイトで扱っているSYSTEM_SERVICE_EXCEPTION(0x3B)・DPC_WATCHDOG_VIOLATION(0x133)の公式ドキュメントには、メモリ診断を名指しで勧める記述はありません。KMODE_EXCEPTION_NOT_HANDLEDで停止コードが表示された場合、他の2つの停止コードよりもメモリの物理的な不良を疑う優先度を上げてよい、公式ドキュメント自身の裏付けがあるということです。
Microsoftが過去に公開した修正プログラムを見ても、原因は多岐にわたります。Windows 8.1/Windows Server 2012 R2向けの修正プログラムは、USB 3.0デバイス用ドライバーが、静的ストリームを本来は動的に閉じるべきところを、エンドポイントオブジェクトの破棄処理の一環として誤ったタイミングで閉じてしまう不具合への対応でした。一方Windows Vista SP2/Windows Server 2008 SP2向けの修正プログラムは、再起動時やRDP接続時に発生する事例への対応として、Windowsのコア部分であるNtoskrnl.exe自体を更新するもので、原因となった特定のドライバー名は公開されていません。特定のドライバーに決め打ちせず、後述の方法で自分の環境の原因を直接特定するのが結局は一番早い近道です。
とはいえ、ゲーミングPCのトラブル診断で実際によく報告されるカテゴリはあります。あくまで報告例が多い分野であり、必ずこの中に原因があるとは限らない前提で、順に見ていきます。
これらはあくまで報告例が多いカテゴリであり、Microsoft公式が「この4つが原因」と断定しているわけではありません。次の診断手順で、実際に自分の環境で何が原因になっているかを直接確認してください。
診断診断|原因ドライバーの特定とメモリ診断をあわせて行う
Microsoft公式ドキュメントが想定する本来の特定方法は、WinDbgというデバッガーでダンプファイルを解析し、例外アドレス(パラメーター2)から問題のドライバーや関数を特定するという、ドライバー開発者向けの手順です。ただし一般のPCユーザーでも、次の手順で自分の環境の原因ドライバー名まで十分に特定できます。
eventvwr.mscと入力してEnterを押します。左ペインの「Windowsログ」→「システム」を開き、ソース「Microsoft-Windows-WER-SystemErrorReporting」・イベントID「1001」の記録を探してください。発生時刻がブルースクリーンの時刻と一致するイベントの詳細に、バグチェックコード(0x1E)とミニダンプファイルの保存場所が記載されています。%SystemRoot%\Minidump、つまり通常はC:\Windows\Minidumpフォルダーに一覧として保存します。ブルースクリーンの日時と一致するファイルがあれば解析に使えます。C:\Windows\Minidumpフォルダーを自動でスキャンし、クラッシュ時に読み込まれていたドライバーの一覧とともに、原因と推定されるドライバーをピンク色でハイライト表示してくれます。公式サイトから入手すれば、読み取り専用でシステム設定を変更しない安全なツールです。ntoskrnl.exeやhal.dllのようなWindowsのコア部分ばかりで、疑わしい第三者製ドライバーが見当たらない場合は、前述の通り公式ドキュメントがメモリスキャナーの実行を名指しで案内しているコードであることを踏まえ、次に案内するWindowsメモリ診断を先に実行することをおすすめします。対処法対処法|実行しやすい順に試す
原因ドライバーが特定できた場合はそのカテゴリの対処から、特定できなかった場合や原因がメモリに疑わしい場合は上から順に試してください。
mdsched.exeと入力してEnterを押すと「Windows メモリ診断」が起動します。「今すぐ再開して問題を確認する(推奨)」を選ぶとPCが再起動し、5〜15分ほど(構成によっては最大30分程度)かけてメモリをテストします。結果はイベントビューアーの「Windowsログ」→「システム」で、ソース「MemoryDiagnostics-Results」のイベントとして記録されます。sfc /scannowを実行し、システムファイルの破損を検出・修復します。それでも解決しない場合はDISM /Online /Cleanup-Image /RestoreHealthを実行してWindowsの構成イメージ自体を修復してから、改めてsfc /scannowを実行してください。疑問点よくある質問
まとめドライバー名が出なければメモリ診断を優先する
KMODE_EXCEPTION_NOT_HANDLED(0x1E)は、特定の種類のドライバーに限らず、カーネルモードのコードが捕捉されない例外を起こしたことをWindowsが検知して発動するキャッチオール型のブルースクリーンです。まずイベントビューアーで発生時刻を確認したうえで、C:\Windows\MinidumpのミニダンプファイルをBlueScreenViewのような無料ツールで解析し、原因ドライバー名を特定するところから始めてください。
サードパーティ製の具体的なドライバー名が表示された場合はそのカテゴリの対処から。ntoskrnl.exeのようなコア部分しか表示されない、あるいはドライバー名自体が特定できない場合は、Microsoft公式ドキュメントがメモリスキャナーの実行を名指しで案内しているこのコードならではの分岐点として、Windowsメモリ診断(mdsched.exe)を先に試すことをおすすめします。似た名前・似た症状の停止コードであるSYSTEM_SERVICE_EXCEPTION(0x3B)・DPC_WATCHDOG_VIOLATION(0x133)・TDR(0x116)・メモリ関連の停止コードは、それぞれ専用記事で解説しています。
あわせて読みたい
- Microsoft Learn「Bug Check 0x1E KMODE_EXCEPTION_NOT_HANDLED」
- Microsoft Support「”KMODE_EXCEPTION_NOT_HANDLED” Stop error when a driver tries to close static streams for USB 3.0 devices in Windows RT 8.1, Windows 8.1, or Windows Server 2012 R2」
- Microsoft Support「”0x0000001E” Stop error on a computer that is running an x64-based version of Windows Vista SP2 or of Windows Server 2008 SP2」
- Microsoft Learn「Read small memory dump files」
- NirSoft「BlueScreenView」
- PassMark「MemTest86」
- Windows公式「Troubleshoot blue screen errors」




