最近、自宅のWindowsデスクトップPCでちょっとした地獄を見ました。スリープさせて、再び電源を入れると……毎回なぜか再起動。
デスクトップが立ち上がるたびに「Windows は正しくシャットダウンされませんでした」と出てくる。電源周りやマザボを疑い始めるところですが、真犯人は全然別のところにいました。
この記事では、「Windowsがスリープから復帰できず毎回再起動する」問題の原因と解決方法を詳しくまとめます。同じ現象で悩んでる人、ぜひ読んでください。
現象:スリープから復帰するとPCが再起動してしまう
- Windowsをスリープ状態にする
- しばらくして電源を入れる
- 通常の復帰ではなく、なぜか再起動状態になっている
- 起動後に「Windowsは正しくシャットダウンされませんでした」と表示
一見ハードウェアの問題に見えますが、ログを見ると意外な事実が隠れていました。
原因調査:イベントビューアー&ダンプ解析
イベントビューアーでチェック
Win + X → イベントビューアー
- 左メニューから
Windowsログ > システム
- スリープ復帰直後のログに
Kernel-Power (イベントID 41)
が記録されている - さらに
BugCheck
イベントで STOPコード0x0000010D
を確認
Minidumpファイルの解析(WinDbg)
ダンプファイル(例:C:\Windows\Minidump\xxxxx.dmp
)を WinDbg Preview
で開き、以下のコマンドを実行:
!analyze -v
すると、原因となったドライバとして ElcMouFilter.sys
の名前が。
犯人は「ElcMouFilter.sys」=ELECOMのマウスドライバ
このドライバは、ELECOM製のマウスまたはキーボードを使用しているとインストールされるもの。
多機能ボタンやユーティリティソフト(マウスアシスタント)で使用されることが多いですが、どうやらこのドライバがスリープ復帰時にOSのメモリ操作を誤ってクラッシュを引き起こしていたようです。
私が購入したマウスはこちら。
MX Master 3Sが2年で壊れてしまったので、その代替品にならないかと使い始めたマウスでした。
解決方法:ドライバを削除してWindows標準に戻す
ステップ1:デバイスマネージャーで削除
Win + X → デバイスマネージャー
- 「マウスとそのほかのポインティング デバイス」または「ヒューマン インターフェイス デバイス」にある
ELECOM
関連のデバイスを右クリック → アンインストール - 「このデバイスのドライバーソフトウェアを削除します」にチェックを入れる
ステップ2:ドライバファイルを無効化(任意)
C:\Windows\System32\drivers\ElcMouFilter.sys
上記ファイルをリネームまたは削除(管理者権限が必要):
ren C:\Windows\System32\drivers\ElcMouFilter.sys ElcMouFilter.sys.bak
ステップ3:ELECOMユーティリティソフトを削除
コントロールパネル → プログラムのアンインストール
から、ELECOMマウスアシスタントなども一緒に削除しておくと安全です。
解決後:スリープ復帰が正常に!
上記の対応をしたところ、スリープからの復帰が完全に安定。再起動することは一切なくなりました。
ELECOM製品を使っている方で、スリープ復帰に不具合がある場合は、真っ先にこのドライバを疑ってください。
おまけ:WinDbgで原因を調べる方法
- Microsoft Storeから
WinDbg Preview
をインストール C:\Windows\Minidump\xxxxx.dmp
を開く!analyze -v
を実行
これでクラッシュを起こしたドライバ名が表示されます。慣れると便利なので覚えておくと役立ちます。
おわりに
今回のように、スリープ復帰のトラブルはハードウェアではなくドライバが原因のケースも多いです。
Windowsの安定運用には、できるだけ標準ドライバに寄せるのが吉。多機能マウスや独自ユーティリティは便利だけど、安定性と天秤にかけて使いましょう。
同じ症状に困ってる人の助けになれば幸いです!