2015年8月18日火曜日

BSODの恐怖

お盆明けの月曜日、いつものように仕事用のPCを起動しようとしたら途中でこのような画面が現れて再起動の繰り返し...


"BAD_POOL_HEADER"というタイトルでBCCode19エラーのようです。
ネットで検索したところ、ハードウエア特にRAM、ソフトウエアなどが原因とのことですが、これだけではまったく参考になりません。RAMもWindows付属のメモリテストソフトでチェックして問題ないことは確認しました。ハードにしても先日交換したばかりだし、何よりセーフモードで起動できていることからソフトウエアが問題だろうと見当つけていました。

ただ、Windowsのスタートアップ障害回復などのユーティリティではまったく改善しません。コマンドプロンプトでsfc /scannowや、chkdsk /fを実行してもやはり歯が立ちません。あぁクリーンインストール?と心が折れそうになったとき、ふと辿り着いた海外のwindowsフォーラムにWindowsデバッガを使いメモリダンプファイルを解析することで解決した例を見つけ、最後の頼みということでMicrosoftからwindbgというWindowsデバッグツールをDLしインストールしようとしました。

ところが、セーフモードではインストールできないことが判明したため再び暗礁に。

そこで、自宅の別なPCにデバックツールをインストールしメモリダンプファイルをコピーして解析することが出来ました。

以下その結果です。

Microsoft (R) Windows Debugger Version 6.3.9600.17336 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\Windows\Minidump\081815-13119-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available


*********** Symbol Path validation summary ************
Response                         Time (ms)     Location
Deferred                                       SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Symbol search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 7 Kernel Version 7601 (Service Pack 1) MP (8 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 7601.18839.amd64fre.win7sp1_gdr.150427-0707
Machine Name:
Kernel base = 0xfffff800`04049000 PsLoadedModuleList = 0xfffff800`04290730
Debug session time: Tue Aug 18 08:32:55.045 2015 (UTC + 9:00)
System Uptime: 0 days 0:00:12.169
Loading Kernel Symbols
..

Press ctrl-c (cdb, kd, ntsd) or ctrl-break (windbg) to abort symbol loads that take too long.
Run !sym noisy before .reload to track down problems loading symbols.

.............................................................
..............................
Loading User Symbols
*****************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*****************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 19, {22, fffff8a000a00000, 1, 0}

* WARNING: Unable to verify timestamp for avgldx64.sys
* ERROR: Module load completed but symbols could not be loaded for avgldx64.sys
Probably caused by : avgldx64.sys ( avgldx64+90f6 )

Followup: MachineOwner
---------

0: kd> !analyze -v
*****************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*****************************************************************************

BAD_POOL_HEADER (19)
The pool is already corrupt at the time of the current request.
This may or may not be due to the caller.
The internal pool links must be walked to figure out a possible cause of
the problem, and then special pool applied to the suspect tags or the driver
verifier to a suspect driver.
Arguments:
Arg1: 0000000000000022,
Arg2: fffff8a000a00000
Arg3: 0000000000000001
Arg4: 0000000000000000

Debugging Details:
------------------


BUGCHECK_STR:  0x19_22

POOL_ADDRESS: GetPointerFromAddress: unable to read from fffff800042fa100
GetUlongFromAddress: unable to read from fffff800042fa1c0
 fffff8a000a00000 Paged pool

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  WIN7_DRIVER_FAULT

PROCESS_NAME:  System

CURRENT_IRQL:  2

ANALYSIS_VERSION: 6.3.9600.17336 (debuggers(dbg).150226-1500) amd64fre

LAST_CONTROL_TRANSFER:  from fffff8000405315e to fffff800040bd8c0

STACK_TEXT:
fffff880`009a8a58 fffff800`0405315e : 00000000`00000019 00000000`00000022 fffff8a0`00a00000 00000000`00000001 : nt!KeBugCheckEx
fffff880`009a8a60 fffff800`041f455a : 00000000`00000000 fffff880`009a8bb0 fffff880`009a8b30 fffff8a0`00000001 : nt! ?? ::FNODOBFM::`string'+0x72c6
fffff880`009a8af0 fffff880`054e40f6 : fffff8a0`007af7b0 fffff880`009a8ca0 fffff8a0`007c5010 00000000`00000000 : nt!ExFreePoolWithTag+0x46a
fffff880`009a8ba0 fffff8a0`007af7b0 : fffff880`009a8ca0 fffff8a0`007c5010 00000000`00000000 fffff880`009a8f90 : avgldx64+0x90f6
fffff880`009a8ba8 fffff880`009a8ca0 : fffff8a0`007c5010 00000000`00000000 fffff880`009a8f90 00000000`00000003 : 0xfffff8a0`007af7b0
fffff880`009a8bb0 fffff8a0`007c5010 : 00000000`00000000 fffff880`009a8f90 00000000`00000003 00000000`00000000 : 0xfffff880`009a8ca0
fffff880`009a8bb8 00000000`00000000 : fffff880`009a8f90 00000000`00000003 00000000`00000000 fffff880`009a8e00 : 0xfffff8a0`007c5010


STACK_COMMAND:  kb

FOLLOWUP_IP:
avgldx64+90f6
fffff880`054e40f6 ??              ???

SYMBOL_STACK_INDEX:  3

SYMBOL_NAME:  avgldx64+90f6

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: avgldx64

IMAGE_NAME:  avgldx64.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  55802aaf

FAILURE_BUCKET_ID:  X64_0x19_22_avgldx64+90f6

BUCKET_ID:  X64_0x19_22_avgldx64+90f6

ANALYSIS_SOURCE:  KM

FAILURE_ID_HASH_STRING:  km:x64_0x19_22_avgldx64+90f6

FAILURE_ID_HASH:  {ca00a727-a49c-4209-f2e2-17d34b057ccd}

Followup: MachineOwner
---------

内容を見ると、どうやらavgldx64.sysというsysファイルでつっかかっているようです。

そんなわけで当該ファイルと関連レジストリを削除したら見事に復活しました。

このsysファイルの出所は某フリーアンチウイルスソフトのソフト屋さんでしたが、どうやら他にも同様の原因でBSODに陥った事例もみられたことから、ソフト自体もアンインストールし別のものに替えました。

PCのトラブルは、ものによっては膨大な時間を費やしてしまうので困りますよね。

しかし、これで経験値がひとつ上がりました(笑)

閑話休題。

これはタッチパドルのデモ用完成品です。
来るハムフェアで頒布予定のKeyer Mini-V2 Revision2ですが、完成品を作る時間がないので20セットすべてキットとして頒布します。電池と接続ケーブル除きすべてのパーツ(専用アクリルパネルも)が揃っています。最小1608サイズの表面実装部品を採用しているので難易度は高くなっていますが、関ハムで頒布した分はちゃんとみな動作していると報告受けています。

頒布場所はベイシコム(Basicomm)ハムクラブブース(C-062)です。タッチパドルなどの製品の展示販売もあるそうなのでハムフェアにいらっしゃる折にはぜひお立ち寄りください。

0 件のコメント:

コメントを投稿