比较棘手的问题... 我抛砖引玉
感觉是没有定时“喂狗”(跑飞了?)导致蓝屏了,当时要是连着调试器的话会中断到调试器,问题和 ATI 的显卡驱动相关。
输入 dd watchdog!g_WdBugCheckData L5 可以看到蓝屏参数:
kd> dd watchdog!g_WdBugCheckData L5 b4be03a4 000000ea 85528248 86b01778 856d62c8 b4be03b4 00000001
也就是:
Arg1: 85528248, Pointer to a stuck thread object. Do .thread then kb on it to find the hung location. Arg2: 86b01778, Pointer to a DEFERRED_WATCHDOG object. Arg3: f798acb4, Pointer to offending driver name. Arg4: 00000001, Number of times "intercepted" bugcheck 0xEA was hit (see notes).
----------------------------------------------------
首先是导致问题的驱动:
kd> dt nt!_unicode_string f798acb4 "ati2dvag" +0x000 Length : 0x10 +0x002 MaximumLength : 0x12 +0x004 Buffer : 0xf798accc "ati2dvag"
楼主用的显卡催化剂是官方的吗?我笔记本的 ATI HD 2400 也是相当的烂。
看看那个导致问题的线程:
kd> .thread 85528248 Implicit thread is now 85528248
kd> r Last set context: eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=00000000 edi=00000000 eip=805427bf esp=a9351340 ebp=a9351360 iopl=0 nv up di pl nz na po nc cs=0008 ss=0010 ds=0000 es=0000 fs=0000 gs=0000 efl=00000000 nt!KiUnlockDispatcherDatabase+0x77: 805427bf 0ac0 or al,al
kd> k *** Stack trace for last set context - .thread/.cxr resets it ChildEBP RetAddr a935134c 804fa030 nt!KiUnlockDispatcherDatabase+0x77 a9351360 b4bdfa67 nt!KeSetEvent+0x74 a9351654 804feaf1 watchdog!WatchdogKernelApc+0x13b a93516a4 805427f0 nt!KiDeliverApc+0xb3 a93516c4 804fc582 nt!KiUnlockDispatcherDatabase+0xa8 a93516dc 80599ec5 nt!KeReleaseSemaphore+0x70 a9351710 8059a04f nt!LpcpRequestWaitReplyPort+0x3ff a9351728 8063ae5b nt!LpcRequestWaitReplyPortEx+0x21 a93518a4 8063af16 nt!DbgkpSendApiMessageLpc+0x49 a9351934 804fdcdd nt!DbgkForwardException+0x84 a9351cf4 8053f091 nt!KiDispatchException+0x38f a9351d5c 8053f042 nt!CommonDispatchException+0x4d a9351d64 7c92e4f4 nt!KiExceptionExit+0x18a WARNING: Frame IP not in any known module. Following frames may be wrong. a9351d68 badb0d00 0x7c92e4f4 a9351d6c 7c92e4f4 0xbadb0d00 a9351d70 00000000 0x7c92e4f4
实际也就是这句话出的问题,我猜就是程序 SwapContext 之后没有及时喂狗导致的...
kd> u nt!KiUnlockDispatcherDatabase+0x77-5 nt!KiUnlockDispatcherDatabase+0x72: 805427ba e831010000 call nt!SwapContext (805428f0) 805427bf 0ac0 or al,al 805427c1 8a4e58 mov cl,byte ptr [esi+58h] 805427c4 7518 jne nt!KiUnlockDispatcherDatabase+0x96 (805427de) 805427c6 8b2c24 mov ebp,dword ptr [esp] 805427c9 8b7c2404 mov edi,dword ptr [esp+4] 805427cd 8b742408 mov esi,dword ptr [esp+8] 805427d1 8b5c240c mov ebx,dword ptr [esp+0Ch]
kd> dds b4be03b8 00000001 b4be03bc 00000001 b4be03c0 00000000 b4be03c4 00000000 b4be03c8 00000000 b4be03cc 00000001 b4be03d0 00000001 b4be03d4 00000001 b4be03d8 00000000 b4be03dc 00000000 b4be03e0 00000000 b4be03e4 00000000 b4be03e8 b4be1a8e watchdog!WdBugCheckStuckDriver b4be03ec b4be03a4 watchdog!g_WdBugCheckData b4be03f0 00000000 b4be03f4 00000000 b4be03f8 00000000 b4be03fc 00000000 b4be0400 00000000 b4be0404 ff8b0000 b4be0408 53ec8b55 b4be040c 1075ff56 b4be0410 a068db33 b4be0414 53000000 b4be0418 024415ff b4be041c f08bb4be b4be0420 6574f33b b4be0424 ff1075ff b4be0428 57680c75 b4be042c ff574464 b4be0430 e8560875 b4be0434 00002046
那什么 _DEFERRED_WATCHDOG 结构我搜索了N久也没找到,肯请高人指点一下:
kd> dd 86b01778 86b01778 57446457 00000002 64776447 866b5038 86b01788 00000001 00000002 85528248 00000000 86b01798 00002710 00000000 00a0716a 00a07169 86b017a8 00a0716a 00a07169 0000010b 00000d2d 86b017b8 0002625a 00000002 01010101 85528248 86b017c8 010a0008 00000001 86b017d0 86b017d0 86b017d8 3dd76471 00000016 86bdd398 86d3c128 86b017e8 86b017f0 00002710 01000013 00040000
最后楼主的操作和“乐鱼影音盒”有关吗?
要是想先解决问题,建议楼主重新下载 ATI 官方驱动试一下。
|