99
KMODE例外処理されないBSODを修正する方法
KMODE 例外が処理されません BSOD
(画像提供:Tom's Hardware)

Windowsの様々な停止エラーやバグチェック(BSOD、いわゆる「ブルースクリーン・オブ・デス」)を掘り下げる連載シリーズの最新回となる今回は、KMODE EXCEPTION NOT HANDLEDエラーについて詳しく解説します。このエラーのエラーコードは0X0000001E(Xとそれより大きい数字の間の先頭のゼロを削除した0X1Eと表記されることもあります)です。このエラーは、ある意味では包括的なものです。実際、Microsoft Learnのページでは、このエラーが発生すると「カーネルモードプログラムがエラーハンドラーがキャッチできなかった例外を生成したことを示す」と説明されています。つまり、これは予期しない、あるいは計画外の例外が発生したことを通知するフォールバックエラーハンドラーを表しています。

 WindowsカーネルモードはOSの動作が行われる場所です

まず、カーネルモードの定義から始めましょう。「……プロセッサにおける実行モードの一つで、システムメモリ全体とCPU命令へのアクセスを許可するもの」です。つまり、カーネルモードアクセスは、ランタイム環境、CPU、メモリ、接続されたすべてのリソースなどに対して、一切の制約なく、何でもありのアクセスと制御を提供します。簡単に言えば、このレベルのアクセスは、Windows OSの重要かつ信頼できるコンポーネントのみが使用できるものです。

さらに、本書の同じセクションで述べられているように、「カーネルモードOSとデバイスドライバコードは単一の仮想アドレス空間を共有します」。つまり、すべてが単一の共有アドレス空間内で連携して動作し、利用可能なリソースは統合されたモノリシックなビューで管理されます。これは、BSODの議論でドライバが頻繁に話題になる理由を説明しています。Windowsには数千ものドライバが含まれており、それぞれが潜在的な問題の原因となる可能性があります。この可能性が現実のものとなったとき、BSODが発生する可能性があります。そして、実際に頻繁に発生するのです。

Windows Internals では、「サードパーティ製のデバイスドライバーをロードする際、特に署名されていないドライバーをロードする際は、カーネルモードに入るとドライバーがすべての OS データに完全にアクセスできるため、常に注意を払う必要がある」と強調しています。さらに、この明らかな弱点が Windows 10 で署名済みの Windows ドライバーの使用を強制するようになった理由(Windows 11 も同様)であり、ユーザーが署名されていないドライバーをインストールしようとすると警告またはブロックが表示されると説明しています。

ドライバーによりKMODE例外が処理されない場合があります 

このBSODを引き起こすすべてのエラーが直接的または間接的にドライバーの問題を示しているわけではありませんが、そのほとんどはデバイスまたはファームウェアの問題に関連しています。そのため、「KMODE EXCEPTION NOT HANDLED」というラベルのBSODが発生した場合、その後に追加の説明テキストが続くことがあります。これらのテキスト項目は、発生した場合の詳細な調査の方向性を示しています。

  • ファイル名(例:ntfs.sys、netio.sys、ndis.sys、tcpip.sys、iastora.sys など)。これは、エラーの原因となったファイルの名前に関する情報を提供します。これは、システムの側面またはコンポーネントを指しており、さらに調査を進めることで解決できる可能性があります。ntfs.sys は NT ファイル システムを指し、ディスク ドライブとファイル アクセスを指します。ndis.sys は Windows ネットワーク ドライバー インターフェイス仕様を指し、ネットワーク インターフェイスとアクセスを指します。TCP/IP は、Windows ネットワークおよびインターネット アクセスでよく使用されるネットワーク プロトコルです。iastora は Intel の Rapid Storage Technology (RST) の一部であり、ドライブ アレイやハイエンドの高速ストレージ デバイスで使用されることがよくあります。
  •  オーバークロック: PCのベースクロック、CPUクロック、またはメモリクロックレートに関連する障害を示します(通常、意図的にオーバークロックされたシステムでのみ発生します)。通常、CPUオーバークロックをオフにするか、現在のタイミングレベルを下げることで、最適な対処が可能です。
  • RAM:メモリ障害がエラーの原因である可能性があることを示します。多くの場合、修復には1つまたは複数のメモリモジュールの交換が必要です。
  • USB: USBドライバの不具合(クラス、コントローラ、またはデバイスレベルで発生する可能性があります)またはUSBデバイスの故障または不具合を示している可能性があります。マウスとキーボード以外のすべてのUSBデバイスを取り外すことで簡単に確認できます。マウスとキーボードが正常に動作している場合は、エラーが再発するまで他のUSBデバイスを1つずつ接続してください。
  • インストール中に処理されませんでした: PC で動作しない破損したまたは無効なドライバーに関連する、OS インストール中の障害を示します。
  • ループ:一般的には、グラフィックカードのドライバーが読み込まれないことに関連し、OS がドライバーの読み込みを何度も試行して失敗する(エラーテキスト自体の意味でループしている)状態を指します。通常はグラフィックカードのドライバー(または場合によってはグラフィックカード自体)の交換が必要になります。 

デバイスドライバが破損または不足していると、KMODE例外が処理されない場合があります 

ドライバーが見つからない場合、デバイスマネージャーでは「不明なデバイス」として表示されます。Windowsはドライバーを検出できないため、このようなデバイスの「詳細」タブで詳細を確認する必要があります。ハードウェアID情報(次のスクリーンショットを参照)を使用してデバイスを検索し、関連するドライバーを見つけることができます。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

devman-usb4-devids

(画像提供:Tom's Hardware)

通常、BSODに関する情報は、特定のデバイスまたはドライバを指し示します。最善策は、システムのイメージバックアップを作成し(状況が悪化した場合にいつでも復元できます)、新しいバージョンが入手できない場合は、既存のドライバを同じバージョンの正常に動作する既知のコピーに置き換えることです。

一方、新しいドライバーでも問題が解決しない場合(古いシステムの場合によくあることですが)、新しいドライバーではなく古いドライバーをインストールする必要があるかもしれません。Station Driversなどのウェブサイトでは、5年以上前のドライバーのアーカイブが保存されています。OEMサイトで見つかるものよりも新しいドライバーだけでなく、OEMが提供を終了した古いドライバーも見つかる、優れた情報源です。 

KMODE 例外が処理されないネットワーク ドライバー エラーと修正 

netio.sys、ndis.sys、tcpip.sys などを含むテキスト文字列が表示された場合、これらはすべてネットワークの問題を示しています。NDIS はすべてのネットワーク インターフェイス ドライバーの基盤であり、netio はネットワーク経由でデータを送受信する機能を指します。TCP/IP は、Windows ネットワーク経由で情報を送受信するために使用される主要なネットワーク プロトコル スタックです。

これらの問題が発生した場合、デバイスマネージャーで現在のネットワークインターフェースドライバーをアンインストールし、PCを再起動するのが最善策です。起動時にWindowsが自動的に最新の(動作する)ネットワークドライバーを検出し、インストールしてくれるはずです。それでも問題が解決しない場合は、前述のリンク先のStation Driversなどのサイト(またはIntel、Broadcomm、Realtekなどのベンダーサイト)で、お使いのPCで動作するドライバーを探す必要があります。 

注意:  PCが古ければ古いほど、この作業は面白く、やりがいのあるものになります。この修正方法を簡単にまとめると、ネットワークドライバーを更新してください!

ウイルス対策の競合によりKMODE例外が処理されない場合があります 

一部の報告では、特定のウイルス対策プログラムが「KMODE EXCEPTION NOT HANDLED」というBSODの原因になっているとされています。上記の解決策を試しても改善しない場合は、Windows Defender以外のウイルス対策ソフトウェアを停止またはアンインストールして、症状が改善するかどうかを確認してください。 

もしそれが役に立つなら、Windows Defenderを頼りになるアンチウイルス対策ソフトとして避ける理由はもうありません。AV -ComparativesVirus Bulletinといった評価サイトでは、Windows Defenderはほとんどのサードパーティ製商用パッケージと同等の高い評価を得ています。 

まだ問題が解決しない場合は、修復手順をお試しください 

前述の提案のいずれも状況の改善に役立たない場合 (読者の 90 パーセント以上にとっては役立つはずです)、コマンド ラインで次のコマンドを実行することをお勧めします。 

DISM /online /cleanup-image /restorehealth SFC /Scannow

それでも問題が解決しない場合は、 Windowsの修復インストールを実行してください。それでも問題が解決しない場合は、Windows(バージョンに関係なく、Windows 10またはWindows 11)をクリーンインストールするしか選択肢はありません。これで問題が解決することを期待しましょう。

Ed Tittelは長年ITライター、リサーチャー、コンサルタントとして活躍し、Tom's Hardwareにも時折寄稿しています。2018年からWindows Insider MVPを務めており、OS関連のドライバー、トラブルシューティング、セキュリティに関するトピックを好んで取り上げています。