新しいPCを購入してしばらくすると、スリープ状態から復帰したときに高頻度でブルースクリーンが発生するようになりました。
数ヶ月の間、悩んでいたのですが、とうとう原因がわかったのでメモしておきます。
ブルースクリーンのエラー発生元
ブルースクリーンが表示されると、どのファイルが原因でエラーが発生したか表示されます。
そのときによってエラーが発生しているファイルやコードが異なっているときがありましたが、観測した限りでは以下のファイルやコードで問題が発生しているようでした。
- Wdf01000.sys
- USBXHCI.sys
- kernel heap mode corruption
まず試したこと
ネットの情報によれば、上記のようなエラーが発生している場合、以下の対策があるようです。
- Windows Update
- デバイスドライバの更新
- コンピュータウィルスのチェック
- 問題が発生しているソフトウェアの再インストール
これらの対策をして再起動しても、ブルースクリーンが出る状態は変わりませんでした。
ちなみに、他にも以下の対策が有効とのことです。
- ディスクエラーの修復
- システムファイルの修復 など
原因と対策
Wdf01000.sys
OSのバージョンもドライバのバージョンも最新で、原因がわからなかったのですが、kernel heap mode corruptionという表示から一つ思い当たる節がありました。
私はGALLERIAのタワーPCを使っているのですが、もともと内蔵されていたメモリ8GBx2に加えて、他のPCで使っていたメモリ8GBx2を追加していました。
メモリを追加して普通に使えていましたが、もしかしたらこれが原因かと思って抜いてみると、ブルースクリーンが表示されることはなくなりました。
USBXHCI.sys
メモリを抜いてからしばらくブルースクリーンは発生していませんでしたが、先日また発生。
メモリじゃなかったのか…と思いながら使っていると、モニターに接続しているUSBスピーカーが認識していないことに気づきました。
モニターのUSBポートに挿し直しても認識しなかったのですが、パソコンのUSBポートでは認識するため、もしやこれが本当の原因では?と思い至りました。
モニターとPCを接続しているUSBケーブルを抜いたところ、一切ブルースクリーンが出ないようになりました。
PCをスリープ状態にしたときにもモニターの電源を常時ONにしていて、PCをスタンバイ状態から復帰させたときにうまく接続できないと、ブルースクリーンが発生していたのだと考えられます。