过去几周我遇到了很多 BSOD。停止代码始终为 0x9F (driver_power_state_failure)。我保存了过去三天的四个内存转储,并使用 Windows SDK 中的 WinDbg 对其进行了比较。调试细节大多看起来相同(请参阅本文底部)。
查看 bucket ID,发现 nvlddmkm.sys 与此有关。这是 NVidia 的一个驱动程序,我想起来,在我把驱动程序从 325 版更新到 347 版后,BSOD 就开始出现了。
在出现此类 BSOD 之前,我总是可以在任务管理器中看到系统线程(NT 内核和系统)占用了我 4 线程 CPU 的 25%。几分钟后,我的电脑就变得反应迟钝,最直观的感受就是屏幕冻结。但是:当我在出现 BSOD 之前使用 Skype 通话时,屏幕冻结时我仍然可以听到对方的声音。冻结后再过 8-10 分钟,就会出现 BSOD。
我已经从制造商的恢复分区重新安装了 Windows。我还将 NVidia 驱动程序更新到了最新版本(几次,使用全新安装)。
如果需要,我可以提供最新的转储、小型转储或其他信息。
电脑规格:
- 宏碁 Aspire V3-771
- Windows 7 家庭高级版 x64
- 8GB DDR3 内存
- Intel Core i5-3210M 2.5GHz,双核,4 线程
- 全高清液晶屏(1920x1080,32位,60Hz)
- NVIDIA GeForce GT 650M
以下信息是从 WinDbg 复制/粘贴的。除堆栈跟踪外,所有 4 个内存转储看起来都相同。
0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time.
Arguments:
Arg1: 0000000000000003, A device object has been blocking an Irp for too long a time
Arg2: fffffa8007ed0a10, Physical Device Object of the stack
Arg3: fffff80000b9c3d8, nt!TRIAGE_9F_POWER on Win7 and higher, otherwise the Functional Device Object of the stack
Arg4: fffffa800d8e1e10, The blocked IRP
Debugging Details:
------------------
DRVPOWERSTATE_SUBCODE: 3
IMAGE_NAME: pci.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4ce7928f
MODULE_NAME: pci
FAULTING_MODULE: fffff88000f5a000 pci
DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT
BUGCHECK_STR: 0x9F
PROCESS_NAME: System
CURRENT_IRQL: 2
ANALYSIS_VERSION: 6.3.9600.17298 (debuggers(dbg).141024-1500) amd64fre
DPC_STACK_BASE: FFFFF8000480EFB0
fffff800`00b9c388 fffff800`02f41b92 : 00000000`0000009f 00000000`00000003 fffffa80`07ed0a10 fffff800`00b9c3d8 : nt!KeBugCheckEx
fffff800`00b9c390 fffff800`02edccfc : fffff800`00b9c4c0 fffff800`00b9c4c0 00000000`00000000 00000000`00000001 : nt! ?? ::FNODOBFM::`string'+0x33af0
fffff800`00b9c430 fffff800`02edcb96 : fffff800`03083140 00000000`00324674 00000000`00000000 00000000`00000000 : nt!KiProcessTimerDpcTable+0x6c
fffff800`00b9c4a0 fffff800`02edca7e : 00000077`aca84f27 fffff800`00b9cb18 00000000`00324674 fffff800`03051108 : nt!KiProcessExpiredTimerList+0xc6
fffff800`00b9caf0 fffff800`02edc867 : 0000001d`25ead5c1 0000001d`00324674 0000001d`25ead5e0 00000000`00000074 : nt!KiTimerExpiration+0x1be
fffff800`00b9cb90 fffff800`02ec8bca : fffff800`0304de80 fffff800`0305bcc0 00000000`00000002 fffff880`00000000 : nt!KiRetireDpcList+0x277
(...the top always looks like this, the rest of the stack mostly has some nvlddmkm in it)
STACK_COMMAND: kb
FOLLOWUP_NAME: MachineOwner
IMAGE_VERSION: 6.1.7601.17514
FAILURE_BUCKET_ID: X64_0x9F_3_nvlddmkm_IMAGE_pci.sys
BUCKET_ID: X64_0x9F_3_nvlddmkm_IMAGE_pci.sys
ANALYSIS_SOURCE: KM
FAILURE_ID_HASH_STRING: km:x64_0x9f_3_nvlddmkm_image_pci.sys
FAILURE_ID_HASH: {86b85873-d822-8588-0151-5cf4191a225f}
Followup: MachineOwner
---------
0: kd> !devobj fffffa8007ed0a10
Device object (fffffa8007ed0a10) is for:
NTPNP_PCI0017 \Driver\pci DriverObject fffffa80072b5e70
Current Irp 00000000 RefCount 0 Type 00000023 Flags 00001040
Dacl fffff9a1002db971 DevExt fffffa8007ed0b60 DevObjExt fffffa8007ed0f88 DevNode fffffa8007ecb8c0
ExtensionFlags (0000000000)
Characteristics (0x00000100) FILE_DEVICE_SECURE_OPEN
AttachedDevice (Upper) fffffa8007ecbe40 \Driver\ACPI
Device queue is not busy.
0: kd> !irp fffffa800d8e1e10
Irp is active with 4 stacks 3 is current (= 0xfffffa800d8e1f70)
No Mdl: No System Buffer: Thread 00000000: Irp stack trace. Pending has been returned
cmd flg cl Device File Completion-Context
[ 0, 0] 0 2 00000000 00000000 00000000-00000000
Args: 00000000 00000000 00000000 ffffffffc000000e
[ 16, 0] 0 2 fffffa8007ed0a10 00000000 fffff88005bdc328-fffffa800d096650
\Driver\pci nvlddmkm
Args: 00000000 00000000 00000000 00000000
>[ 16, 2] 0 e1 fffffa800ae7b040 00000000 00000000-00000000 pending
\Driver\nvlddmkm
Args: 00000000 00000001 00000001 00000000
[ 0, 0] 0 0 00000000 00000000 00000000-fffffa800e30a4a0
Args: 00000000 00000000 00000000 00000000
0: kd> !devobj fffffa800ae7b040
Device object (fffffa800ae7b040) is for:
\Driver\nvlddmkm DriverObject fffffa800ad60060
Current Irp 00000000 RefCount 0 Type 00000023 Flags 00002004
DevExt fffffa800ae7b190 DevObjExt fffffa800ae7bb48
ExtensionFlags (0x00000800) DOE_DEFAULT_SD_PRESENT
Characteristics (0x00000100) FILE_DEVICE_SECURE_OPEN
AttachedTo (Lower) fffffa8007ecbe40 \Driver\ACPI
Device queue is not busy.
答案1
该错误是由 nVidia 显示驱动程序生成的。它不是从崩溃中恢复,而是使整个系统总线驱动程序崩溃。由于系统驱动程序不能由用户更改,因此您无法直接对驱动程序执行任何操作。您
应该使用稳定的旧驱动程序,如 332.21 或 325.x。尝试从制造商处获取驱动程序网站,以确保它与您的设备兼容。如果可以,请尝试记下版本号(您的情况是 311.00)并直接从 nVidia 网站下载,而不是从 Acer 网站下载。OEM 往往会更改/定制驱动程序。