背景
私の自作PC(OS: Windows7 x64)は引越し後より無線LANアダプタ(PLANEX GW-USValue-EZ)を使ってインターネットに接続していました. が, このアダプタを接続するようになってからスリープに失敗するようになりました.スタートメニューからスリープを選んでも, ディスプレイの電源は落ちますが, パソコンのファンが回りっぱなしで止まりません. 暫く放置するとディスプレイの電源が再度入り, BSOD(ブルースクリーン)となります. エラーの種類はDRIVER_POWER_STATE_FAILURE (0x9f)です.
マイクロソフト公式のメモリダンプ解析ツールであるWinDbgでMEMORY.DMPの中身を見てみると, どうやらGW-USValue-EZのせいでスリープに入れていないことがわかりました.
以下は解析結果です.
0: kd> !analyze -v後半のFAILURE_BUCKET_ID等に, 「rtwlanu」というワードが出てくると思います. 予想ですが, RealTek Wireless Lan Utilityかなんかの略だと思います. 私はメモリダンプの解析には詳しくないですが, 以上のことからPLANEX GW-USValue-EZが怪しいと思うようになりました.
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DRIVER_POWER_STATE_FAILURE (9f)
A driver is causing an inconsistent power state.
Arguments:
Arg1: 0000000000000003, A device object has been blocking an Irp for too long a time
Arg2: fffffa80092bf060, Physical Device Object of the stack
Arg3: fffff80000b9c518, Functional Device Object of the stack
Arg4: fffffa800ca4ab40, The blocked IRP
Debugging Details:
------------------
DRVPOWERSTATE_SUBCODE: 3
IMAGE_NAME: usbhub.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4d8c0b08
MODULE_NAME: usbhub
FAULTING_MODULE: fffff88005800000 usbhub
DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT
BUGCHECK_STR: 0x9F
PROCESS_NAME: System
CURRENT_IRQL: 2
STACK_TEXT:
fffff800`00b9c4c8 fffff800`040eb702 : 00000000`0000009f 00000000`00000003 fffffa80`092bf060 fffff800`00b9c518 : nt!KeBugCheckEx
fffff800`00b9c4d0 fffff800`0408be4c : fffff800`00b9c600 fffff800`00b9c600 00000000`00000000 00000000`00000001 : nt! ?? ::FNODOBFM::`string'+0x34050
fffff800`00b9c570 fffff800`0408bce6 : fffff800`04228f20 00000000`001b973b 00000000`00000000 00000000`00000000 : nt!KiProcessTimerDpcTable+0x6c
fffff800`00b9c5e0 fffff800`0408bbce : 00000041`ad39b172 fffff800`00b9cc58 00000000`001b973b fffff800`041f69e8 : nt!KiProcessExpiredTimerList+0xc6
fffff800`00b9cc30 fffff800`0408b9b7 : 00000015`6d92b1c1 00000015`001b973b 00000015`6d92b170 00000000`0000003b : nt!KiTimerExpiration+0x1be
fffff800`00b9ccd0 fffff800`04078eca : fffff800`041f3e80 fffff800`04201cc0 00000000`00000002 fffffa80`00000000 : nt!KiRetireDpcList+0x277
fffff800`00b9cd80 00000000`00000000 : fffff800`00b9d000 fffff800`00b97000 fffff800`00b9cd40 00000000`00000000 : nt!KiIdleLoop+0x5a
STACK_COMMAND: kb
FOLLOWUP_NAME: MachineOwner
FAILURE_BUCKET_ID: X64_0x9F_3_rtwlanu_IMAGE_usbhub.sys
BUCKET_ID: X64_0x9F_3_rtwlanu_IMAGE_usbhub.sys
Followup: MachineOwner
---------
実際, このアダプタを挿していない状態だと正常にスリープしています(多分).
検索してみると, PLANEX製はx64環境では安定していないようです.
http://goo.gl/gClxS
また, 抜き差ししている時に気づいたこととしては
- USBポートからGW-USValue-EZを抜いても, デバイスがデバイスマネージャから消えないことがある.
- デバイスマネージャからGW-USValue-EZを無効にしようとしても, デバイスマネージャが応答なしになってしまう(マウスポインタがくるくるしたまま).
- ログオフすればデバイスが無効になってくれる模様.
BUFFALO WLI-UC-G301Nを購入(失敗)
アマゾンで\1,854でした. 理論値で送受信300Mbpsが特徴です.
いざ設定してみると, リンク速度が6.5Mbpsにしかなりません. 実際ネットをブラウジングしてみると, 明らかに以前より速度低下を感じました. GW-USValue-EZでもリンク速度は150Mbpsだったので・・・.
自作PCの他にもMacBook Pro上のWindows 7 x64でも試しましたが, 同様にリンク速度は6.5Mbpsでした. 64bitなのが原因かと思い, XP x86入りのミニノートでためしてみると, 130Mbps位になりました. 64bit環境では安定していないということでしょうか.
Logitec LAN-W300N/U2を購入(成功!)
Amazonで\1,180でした. 理論値で送信150Mbps(買った後気づきました^^), 受信300Mbpsです.
こちらはリンク速度が150Mbps(送信), 243Mbps(受信)になってくれました(Logitec クライアントユーティリティにより確認).
今のところ, このアダプタをつけたままでもスリープへの以降も正常に行えます. また, デバイスマネージャからのデバイスの無効化も正常に行えます.
スリープ問題はおそらく解決です! (今回は本当に※)
※
なお, Logitecの公式HPで公開されているドライバはかなり古いものだったので, チップメーカのRalinkのHPから直接最新版をダウンロードしました. チップ名はRT2870です(http://wikidrivers.com/wiki/Ralink_RT2870 よりチップ名を確認).
ダウンロードはこちらから↓
最新版(3.2.9.0)にアップデートすることで, スリープ復帰後の接続が一瞬で行われるようになったと思います. 私の環境では, Logitecで公開している古いドライバを使うとスリープ復帰後に安定しないです(接続→切断を30秒くらい繰り返す等).
また, 通信速度についてはGW-USValue-EZと大差なく感じます.
しばらくこの環境でスリープ出来るか毎日試したいと思います.
万が一再度スリープ失敗したら, 追記 or 記事を書きます.
0 件のコメント:
コメントを投稿