刚安装了Windows7 64位系统,让人痛苦的是新系统以大概每天一次的概率随机发生蓝屏。终于我决定自己找到问题根源。系统在发生问题的时候,会产生.dmp文件。余下的任务就是分析.dmp文件
1. 安装WinDbg 64位
2. 选择网速比较快的时候
3. 用WinDbg打开.dmp文件
输入命令
.sympath SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
含义是下载调试符号文件到本地c:\symbols目录
0: kd> .reload /f nt SYMSRV: ntkrnlmp.pdb from http://msdl.microsoft.com/download/symbols: 2676649 bytes - copied DBGHELP: nt - public symbols c:\symbols\ntkrnlmp.pdb\F69D000687EC491E87FC0425D4D378AC2\ntkrnlmp.pdb
开始分析问题
0: 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: fffffa8008c81060, Physical Device Object of the stack Arg3: fffff80005ce93d8, Functional Device Object of the stack Arg4: fffffa8004747bd0, The blocked IRP Debugging Details: ------------------ DRVPOWERSTATE_SUBCODE: 3 IMAGE_NAME: usbhub.sys DEBUG_FLR_IMAGE_TIMESTAMP: 52954dd0 MODULE_NAME: usbhub FAULTING_MODULE: fffff88005f3f000 usbhub CUSTOMER_CRASH_COUNT: 1 DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT BUGCHECK_STR: 0x9F PROCESS_NAME: System CURRENT_IRQL: 2 STACK_TEXT: fffff800`05ce9388 fffff800`044f58d2 : 00000000`0000009f 00000000`00000003 fffffa80`08c81060 fffff800`05ce93d8 : nt!KeBugCheckEx fffff800`05ce9390 fffff800`0449085c : fffff800`05ce9520 fffff800`05ce9520 00000000`00000000 00000000`00000001 : nt! ?? ::FNODOBFM::`string'+0x33af0 fffff800`05ce9430 fffff800`044906f6 : fffffa80`0a24c168 fffffa80`0a24c168 00000000`00000000 00000000`00000000 : nt!KiProcessTimerDpcTable+0x6c fffff800`05ce94a0 fffff800`044905de : 00000024`67b9bdc5 fffff800`05ce9b18 00000000`000f4b37 fffff800`04603968 : nt!KiProcessExpiredTimerList+0xc6 fffff800`05ce9af0 fffff800`044903c7 : 0000000c`6974cac8 0000000c`000f4b37 0000000c`6974cab0 00000000`00000037 : nt!KiTimerExpiration+0x1be fffff800`05ce9b90 fffff800`0447d8ca : fffff800`04600e80 fffff800`0460ecc0 00000000`00000001 fffff880`00000000 : nt!KiRetireDpcList+0x277 fffff800`05ce9c40 00000000`00000000 : fffff800`05cea000 fffff800`05ce4000 fffff800`05ce9c00 00000000`00000000 : nt!KiIdleLoop+0x5a STACK_COMMAND: kb FOLLOWUP_NAME: MachineOwner FAILURE_BUCKET_ID: X64_0x9F_3_btfilter_IMAGE_usbhub.sys BUCKET_ID: X64_0x9F_3_btfilter_IMAGE_usbhub.sys Followup: MachineOwner ---------开始分析IRP
0: kd> !irp fffffa8004747bd0 Irp is active with 12 stacks 10 is current (= 0xfffffa8004747f28) No Mdl: No System Buffer: Thread 00000000: Irp stack trace. Pending has been returned cmd flg cl Device File Completion-Context [ 0, 0] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [ 0, 0] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [ 0, 0] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [ 0, 0] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [ 0, 0] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [ 0, 0] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [ 0, 0] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [ 0, 0] 0 0 00000000 00000000 00000000-00000000 Args: 00000000 00000000 00000000 00000000 [ 16, 0] 0 0 fffffa8008c81060 00000000 fffff88008c384a0-fffffa8008c1d1a0 \Driver\usbhub btfilter Args: 00000000 00000000 00000000 00000002 >[ 16, 2] 0 e1 fffffa8008c1d050 00000000 fffff880085503d0-00000000 Success Error Cancel pending \Driver\BtFilter bthport!DevicePowerUpComplete Args: 00041100 00000001 00000001 00000002 [ 16, 2] 0 e1 fffffa8008d4eac0 00000000 fffff80004471710-fffffa80043e0af0 Success Error Cancel pending \Driver\BTHUSB nt!IopUnloadSafeCompletion Args: 00041100 00000001 00000001 00000002 [ 0, 0] 0 0 00000000 00000000 00000000-fffffa8009ebf3b0 Args: 00000000 00000000 00000000 00000000看看btfilter.sys什么来头
0: kd> lmvm btfilter start end module name fffff880`08c30000 fffff880`08c77000 btfilter T (no symbols) Loaded symbol image file: btfilter.sys Image path: \SystemRoot\system32\DRIVERS\btfilter.sys Image name: btfilter.sys Timestamp: Tue Nov 23 10:43:21 2010 (4CEB2A49) CheckSum: 00047EE6 ImageSize: 00047000 Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4 0: kd> start end module name fffff880`08c30000 fffff880`08c77000 btfilter T (no symbols) Loaded symbol image file: btfilter.sys Image path: \SystemRoot\system32\DRIVERS\btfilter.sys Image name: btfilter.sys Timestamp: Tue Nov 23 10:43:21 2010 (4CEB2A49) CheckSum: 00047EE6 ImageSize: 00047000 Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4
可以看出问题的是btfiler.sys驱动,而这个驱动正是Atheros蓝牙驱动。我找遍了整个网络,只有HP发布补丁解决了这个问题
http://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?cc=us&lc=en&softwareitem=ob-101174-1