Windows BSoDの原因解析

いつの間にやらスリープから復帰すると数秒後に青画面(BSoD = Blue Screen of Dead)になるように。復元ポイントなどを使って調べてみるとWindows 8.1にUpdate1を入れた後に発生するようになった模様。

が、このBSoD、出た後に再起動するのみで何が起こったのかさっぱり不明。何か解析する方法がないのかと思ってたのですが、やっぱりありました。

まずは下準備。

解析手順

  1. Blue Screen Viewを実行。過去に発生したBSoDのリストが出る。調べたいものを探し出し、右の方にあるFull Path列の値を記録しておく
  2. WinDbgを管理者権限で起動。シンボル読み込みで1~2分かかる。Ctrl+Dでファイル選択になるので、先ほどのFull Pathで示されるファイルを選択(ここで管理者権限でないとファイルが開けない場合がある)
  3. 下のコマンドを打ち込む場所に!analyze -vと打ち込む。
  4. 6: kd> !analyze -v
    *******************************************************************************
    *                                                                             *
    *                        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: ffffe00071d81060, Physical Device Object of the stack
    Arg3: ffffd001a97db930, Functional Device Object of the stack
    Arg4: ffffe000722871a0, The blocked IRP
    (以下略)
    
  5. Arg1のメッセージからIRP(Interrupt Request Packet:割り込み要求パケット)の問題と分かる。引き続きコマンド!irp (Arg4の行にある16進数)を入力
  6. 6: kd> !irp ffffe000722871a0
    Irp is active with 23 stacks 21 is current (= 0xffffe00072287810)
     No Mdl: No System Buffer: Thread 00000000:  Irp stack trace.  Pending has been returned
         cmd  flg cl Device   File     Completion-Context
    (中略)
    >[ 16, 2]   0  1 ffffe00071de67c0 00000000 00000000-00000000    pending
           ¥Driver¥usbaudio
    Args: 00041100 00000001 00000001 00000002
     [ 16, 2]   0 e1 ffffe00071d77060 00000000 fffff80371b302d8-ffffe00072611510 Success Error Cancel pending
           ¥Driver¥ksthunknt!PopRequestCompletion
    Args: 00041100 00000001 00000001 00000002
    
  7. 行頭に>の付いている行近辺から、usbaudioがIRPに対して返答してないらしいと分かる

ネットで調べるとusbaudioは文字通りUSB接続のスピーカーなど音関係のUSB装置に関係するらしい。確かにUSBスピーカーは繋いでいるのですが、これのドライバは挿せば勝手にインストールされるもので作成者はMicrosoft。いくらなんでもMicrosoftがこんなへまするとは考えづらい。

なんにしろUSB関連が臭いということでUSB装置を抜き挿ししてスリープを実行、Lenovo Multimedia Remote with Keyboard N5902という無線キーボードの通信に使うUSBモジュールを抜くとスリープ復帰後も落ちないことが分かりました。この無線キーボード、あまり使ってないのでこの際取り外しましょう。

[参考]

[2014/5/12 追記]原因はオンボードのRealtek High Definition audioの録音モニタ出力(録音中の音をスピーカーに出力する)にUSBスピーカーを設定していた可能性が高いです。現在モニタ出力先を規定のデバイスに変更して様子見中。日立ICカードリーダLink は相変わらず繋ぐとスリープ明けにBSoD出ます。

— posted by mu at 12:36 am   commentComment [0]  pingTrackBack [0]

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

:) :D 8-) ;-) :P :E :o :( (TT) ):T (--) (++!) ?;w) (-o-) (**!) ;v) f(--; :B l_P~ (QQ)

     

[X] [Top ↑]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.1356 sec.
prev
2014.5
next
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31