最も分かりにくいブルースクリーン・オブ・デスの停止コードの一つであるSYSTEM_THREAD_EXCEPTION_NOT_HANDLEDは、通常のエラー処理のバックストップとして機能します。Microsoft Docsのページには、「このバグチェックは、システムスレッドがエラーハンドラーがキャッチできなかった例外を生成したことを示します」と記載されています。私見では、これは「謎のエラーまたは認識できないエラー」(エラーハンドラーが定義済みのエラー処理ルーチンにエラーを引き継げなかったため)または「エラーハンドラーエラー」(エラーハンドラーがエラーを処理せずに放置したため)のいずれかに相当します。
Windowsプログラミングドキュメントでは、SYSTEM_THREAD_EXCEPTION_NOT_HANDLEDには一般的に3つのよく知られた例外コードが含まれており、Windowsのバグチェックまたは停止コードエラーについてさらに詳しく説明すると説明されています。これらの例外コードは以下のとおりです。
- 0x80000002: STATUS_DATATYPE_MISALIGNMENT は、整列されていないデータ参照が検出されたことを示します。
- 0x80000003: STATUS_BREAKPOINT は、カーネル デバッガーがシステムに接続されていないときにブレークポイントまたは ASSERT が発生したことを示します。
- 0xC0000005: STATUS_ACCESS_VIOLATION は、メモリ アクセス違反が発生したことを示します。
これらのコードのうち、最もよく目にするのは3番目と最後の項目だけです。これは、他の2つのコードは、デバッグ用にインストルメントされたプレリリースコード、またはデバッガ内でコードを実行する場合にのみ発生するためです。
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED の処理
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED のクラッシュダンプを解析する際によく見られるもう1つの情報は、atikmdag.sys、igdkmd64.sys、nvldmkm.sys といったファイル名です。賢明な読者なら、これらの名前が AMD ATI、Intel グラフィックス回路、および NVIDIA GeForce グラフィックスドライバーのランタイム環境の一部であることに気付くでしょう。これらの名前、あるいは類似の名前が見つかった場合、このエラーコードがタグ付けされた BSOD の発生にグラフィックドライバーが関与していた可能性が非常に高いです。
その場合は、複雑さと難易度が増す順に、試してみるべき 3 つの基本戦略があります。
1.グラフィックドライバーの新しいバージョンが利用可能かどうかを確認してください。もし利用可能であればインストールしてください。多くの場合、これでグラフィックドライバーの問題は解決します。
2. それでも問題が解決しない場合は、デバイス マネージャーでドライバーを以前のバージョンにロールバックしてみてください(このオプションは、対応するディスプレイ アダプターのプロパティ ページのドライバー タブにあります)。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
ここで「ドライバーのロールバック」オプションがグレーアウトしていることにご注意ください。これは、このオプションが対象のPCでは利用できないことを意味します。
3. ロールバックが利用できない、または効果がない場合は、メーカーのドライバーダウンロードページを見つけて、一つ前のバージョンを試してください。動作するバージョンが見つかるまで繰り返してください。
もう一つのドライバートリックが役に立つかもしれない
既存のドライバー、特にグラフィックドライバーをいじっても状況が改善されない場合があります。その場合は、グラフィック環境を徹底的にクリーンアップし、新しいドライバーを「クリーンインストール」すると改善される可能性があります。そのためには、Guru3Dのツール「Display Driver Uninstaller」(別名DDU)が最適です。この記事を執筆時点での最新バージョンは18.0.4.0です。上記のリンクから最新バージョンにアクセスできます。
DDUはAMDとNVIDIAの両方のドライバーに対応しています(Intelグラフィックドライバーについては、Intelサポートページを参照する必要があるかもしれません)。私自身も何度も使用しており、対応可能な範囲で、以前にインストールされたグラフィックドライバーの痕跡を完全かつ徹底的に削除できることを実証しています。使用する前に、ツールの推奨使用手順を必ずお読みください。私の経験から言うと、これは時間、労力、そして潜在的なフラストレーションを節約することにつながります。
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED について他に何をすればよいですか?
上記の提案を試しても SYSTEM_THREAD_EXCEPTION_NOT_HANDLED の停止コードが解消されない場合は、クリーンブートをお試しください。これで問題が解決した場合、スタートアップソフトウェアの何らかの問題がこの停止コードの原因となっている可能性があり、原因を突き止めるために消去法を試してみる必要があります。
クリーンブートでも問題が解決しない場合は、システムをセーフモードで起動してください。セーフモードで起動したら、以下の手順に従って、組み込みのDISM(展開イメージのサービスと管理)コマンドを使用して、実行中のWindowsイメージを修復してください。
dism /オンライン /クリーンアップイメージ /復元ヘルス
多くの場合、これにより破損または消失したWindowsイメージファイルが修復されます。次に、以下の修復をお試しください。
sfc /scannow
このコマンドはWindowsシステムファイルチェッカー(SFC)を実行し、破損または疑わしいシステムファイルを発見した場合は置き換えます。これらのコマンドはどちらも完了までに時間がかかる場合がありますので、完了までに30分以上かかる場合もあります。
最新のレポートと情報を活用する
TenForums.com、BleepingComputer.com、Answers.Microsoft.com、またはTom's Hardwareフォーラムにアクセスして、SYSTEM_THREAD_EXCEPTION_NOT_HANDLEDエラー文字列を検索すると、このエラーが最近どれくらい発生しているかがわかります。また、他のユーザーが根本的な原因をどのように診断し、どのような解決策を試したか、あるいは使用したかについても知ることができます。
成功したとされる解決策を読むことは、あなたにも効果があるかもしれないので特に役立ちます。そうでない場合、失敗した解決策も参考になります。なぜなら、どの修正をすぐに試すべきか(あるいは全く試さないべきか)ではなく、後で試すべきかを教えてくれるからです。
Ed Tittelは長年ITライター、リサーチャー、コンサルタントとして活躍し、Tom's Hardwareにも時折寄稿しています。2018年からWindows Insider MVPを務めており、OS関連のドライバー、トラブルシューティング、セキュリティに関するトピックを好んで取り上げています。