2011/06/11 (土)
Windows 7 (64bit) でスリープから復帰時に USB Host Controller がエラーになる問題の解決
スリープから復帰時にマウスやキーボードが効かなくなることがあったのだけど、ようやく解決できたのでメモ。
方法:「AMD64 用の devcon」あるいは「デバイスマネージャ」を使ってデバイスを「無効」→「有効」にする。
- AMD64 用の devcon を入手する
- Windows Driver Kit (WDK) の入手方法 から WinDDK の ISO イメージを入手
- Tools のみをインストールする
- C:\WinDDK\7600.16385.1\Tools\devcon\amd64 から devcon.exe をコピーする
- USB機器をリセットするバッチファイルを作る
- devcon find pci\* や devcon find usb\* で該当デバイスを見つける
- リスタートさせるデバイスを列挙したバッチファイルを作っておく
- タスクに仕込む
- 休止・スリープ状態復帰時にUSB機器が反応しなくなる問題を解決 の手順通り
- コマンド直では無く、バッチファイルをつくっておいた方が、編集が楽
バッチファイルの記述例は以下の通り。スペースで ID を区切れば複数の指定が可能。たぶん restart = disable → enable だと思う。
C:\bin\devcon.exe restart "pci\ven_8086&dev_3a34" "pci\ven_8086&dev_3a35" "pci\ven_8086&dev_3a36" "pci\ven_8086&dev_3a37" "pci\ven_8086&dev_3a38" "pci\ven_8086&dev_3a39"
(うちの環境でこける「Intel ICH10 Family USB Universal Host Controller のうち、UHCI の奴ら」を指定しています。EHCI のはこけない様子)
備考: 32bit版の devcon では、disable/enable/restart がエラーになる。status などはなまじ動くので注意。
備考: 「Windows 7 ベースのコンピューターをスリープ状態から復帰する際に、USB キーボードのキーを押して復帰させた後パスワードを入力するとログオンできない場合がある」の方法では解決しなかった
[ツッコミを入れる]

