Windows 7 64bitでBlue Screen

ここ最近2回ほど、Windows 7 64bitでBlue Screen発生。

実際は夜中に勝手に再起動して、起動後のメッセージで確認。

とりあえずどのドライバが犯人か確認。

以下、基本的にWindowsのバージョン、32bit/64bitの区別なく、やり方は同じ。

"Debugging Tools for Windows 64bit Version"をダウンロード、インストール。

http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx

"windbg.exe"を実行。

以下のページを参考に、[File]>[Symbol File Path]に以下の行を追加。「Reload」を有効にして[OK]。

SRV*DownstreamStore*http://msdl.microsoft.com/download/symbols

Symbolの指定については以下のページを参照。

http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx

[File]>[Open Crush Dump]を実行して、クラッシュダンプファイルを開く。通常は"C:\Windows\MEMORY.DMP"

デバッグコンソールコンソールが表示されたら、コマンド"KB"

2: kd> kb
RetAddr           : Args to Child                                                           : Call Site
fffff800`038c0ca9 : 00000000`0000003b 00000000`c0000005 fffff880`056c6817 fffff880`0a9ed8c0 : nt!KeBugCheckEx
fffff800`038c05fc : fffff880`0a9ee058 fffff880`0a9ed8c0 00000000`00000000 fffff880`05e5bdec : nt!KiBugCheckDispatch+0x69
fffff800`038e740d : fffff960`003ab8d0 fffff960`00371498 fffff960`000c0000 fffff880`0a9ee058 : nt!KiSystemServiceHandler+0x7c
fffff800`038eea90 : fffff800`03a111a0 fffff880`0a9ed1f8 fffff880`0a9ee058 fffff800`03851000 : nt!RtlpExecuteHandlerForException+0xd
fffff800`038fb9ef : fffff880`0a9ee058 fffff880`0a9ed8c0 fffff880`00000000 fffffa80`0adbc340 : nt!RtlDispatchException+0x410
fffff800`038c0d82 : fffff880`0a9ee058 fffffa80`0a4cfb00 fffff880`0a9ee100 00000000`00000015 : nt!KiDispatchException+0x16f
fffff800`038bf8fa : 00000000`00000000 fffffa80`0a4cfb00 fffff880`0a9ee100 fffff880`0a9ee110 : nt!KiExceptionDispatch+0xc2
fffff880`056c6817 : fffffa80`06a37930 00000000`00000000 fffff880`0a9ee610 ffffffff`80002568 : nt!KiPageFault+0x23a
ERROR: Module load completed but symbols could not be loaded for atikmdag.sys
fffff880`059bf21f : fffffa80`0a4cfb00 fffff880`0a9ee3e0 fffffa80`06a25000 00000000`00000000 : atikmdag+0x90817 fffff880`059bf4a0 : 00000000`00000001 0000000f`00870000 fffffa80`06a25000 00000000`00000000 : atikmdag+0x38921f
ERROR: Module load completed but symbols could not be loaded for atikmpag.sys
fffff880`04ed75b2 : fffff8a0`19826000 00000000`00000000 00000000`c0000001 fffff8a0`114dbb20 : atikmdag+0x3894a0 fffff880`05e483fd : fffffa80`0b235000 00000000`00000001 fffff880`0a9ee6a0 fffff8a0`0354da90 : atikmpag+0x75b2 fffff880`05e72b71 : fffffa80`0b235000 fffffa80`0b235000 00000000`00000001 fffff800`038c61fa : dxgkrnl!DXGADAPTER::DdiSetVidPnSourceAddress+0x79 fffff880`05e9ec9c : 00000000`00000001 fffff8a0`0164d000 00000000`00000000 fffff8a0`0164d000 : dxgkrnl!DXGADAPTER::UpdateModeWithPrimary+0x12d fffff880`05e9dfd0 : fffff8a0`0164d000 fffff8a0`0164d000 fffff880`00000001 00000000`00000001 : dxgkrnl!DXGDEVICE::SetDisplayMode+0x4ec Page 209ba7 not present in the dump file. Type ".hh dbgerr004" for details fffff960`0024bb74 : 00000000`042cf4c8 fffffa80`ffffeee6 00000000`00000000 00000000`00000001 : dxgkrnl!DxgkSetDisplayMode+0xad4 fffff800`038c0993 : fffffa80`0b2cb060 fffff880`0a9eec60 00000000`00000000 00000000`00000020 : win32k!NtGdiDdDDISetDisplayMode+0x14 000007fe`fdcf849a : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x7fe`fdcf849a
"atikmpag.sys"のSymbolがロードできねぇ、と言っているが、これはサードパーティ製ドライバなので当然。(Symbol File Pathから自動的にダウンロードできるのはMicrosoftが作ったモジュールのSymbolだけなので) つまりは"atikmpag.sys"の処理中にページフォルトが発生しているので、こいつが犯人。ATIのドライバだね。