// bugcheck code - argument 4 is the IRP that triggered the bugcheck:
2: kd> .bugcheck
Bugcheck code 0000009F
Arguments 00000000`00000003 ffffe001`05d6d430 ffffd000`4a647960 ffffe001`0a2684b0
// Power state at time of 9f - note the blocked IRP (ffffe0010'a2684b0) shows up as a worker of our bugcheck thread:
2: kd> !poaction
PopAction: fffff80199537550
State..........: 0 - Idle
Updates........: 0
Action.........: None
Lightest State.: Unspecified
Flags..........: 10000003 QueryApps|UIAllowed
Irp minor......: ??
System State...: Unspecified
Hiber Context..: 0000000000000000
Allocated power irps (PopIrpList - fffff80199541450)
IRP: ffffe00104e693d0
Irp worker threads (PopIrpThreadList - fffff80199540700)
THREAD: ffffe001045f1040 (static)
THREAD: ffffe001045f0880 (static), IRP: ffffe0010a2684b0, DEVICE: ffffe00109fb01f0
// Looking at the first worker thread, it is definitely doing an IRP wait on a power request (PopIrpWorker) on the second thread:
2: kd> !thread ffffe001045f1040
GetPointerFromAddress: unable to read from fffff801995e3000
THREAD ffffe001045f1040 Cid 0004.0014 Teb: 0000000000000000 Win32Thread: 0000000000000000 WAIT: (Executive) KernelMode Non-Alertable
fffff80199540fa0 NotificationEvent
Not impersonating
GetUlongFromAddress: unable to read from fffff80199530b00
Owning Process ffffe0010452e640 Image: System
Attached Process N/A Image: N/A
fffff78000000000: Unable to get shared data
Wait Start TickCount 17836
Context Switch Count 79 IdealProcessor: 0
ReadMemory error: Cannot get nt!KeMaximumIncrement value.
UserTime 00:00:00.000
KernelTime 00:00:00.000
Win32 Start Address nt!PopIrpWorker (0xfffff801993a4e2c)
Stack Init ffffd0004f74dc90 Current ffffd0004f74d820
Base ffffd0004f74e000 Limit ffffd0004f748000 Call 0
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5
Child-SP RetAddr : Args to Child : Call Site
ffffd000`4f74d860 fffff801`992cba2e : fffff801`99584180 ffffe001`045f1040 ffffe001`fffffffe fffff800`fffffffe : nt!KiSwapContext+0x76
ffffd000`4f74d9a0 fffff801`992cb4a9 : 00000000`00000000 fffff801`993a564e fffff800`60efa937 fffff801`993a540f : nt!KiSwapThread+0x14e
ffffd000`4f74da40 fffff801`992fa523 : 00000000`00000000 00000000`00000000 ffffe001`05d5f190 fffff800`60efa937 : nt!KiCommitThreadWait+0x129
ffffd000`4f74dac0 fffff801`993a4f95 : fffff801`99540fa0 ffffd000`00000000 00000000`00000000 00000000`00000000 : nt!KeWaitForSingleObject+0x373
ffffd000`4f74db50 fffff801`99382778 : 00030030`454c4946 ffffe001`045f1040 ffffe001`045f1040 ffffe001`0452e640 : nt!PopIrpWorker+0x169
ffffd000`4f74dc00 fffff801`993db8c6 : ffffd000`4f700180 ffffe001`045f1040 ffffd000`4f70c3c0 00000000`00000000 : nt!PspSystemThreadStartup+0x58
ffffd000`4f74dc60 00000000`00000000 : ffffd000`4f74e000 ffffd000`4f748000 00000000`00000000 00000000`00000000 : nt!KiStartSystemThread+0x16
// Second worker thread shows DirectX being told to dispatch a power request to whatever device is behind nvlddmkm (nvidia's kernel device driver for nvidia graphics cards):
2: kd> !thread ffffe001045f0880
GetPointerFromAddress: unable to read from fffff801995e3000
THREAD ffffe001045f0880 Cid 0004.0010 Teb: 0000000000000000 Win32Thread: 0000000000000000 WAIT: (Executive) KernelMode Non-Alertable
ffffd0004f7468f0 SynchronizationEvent
Not impersonating
GetUlongFromAddress: unable to read from fffff80199530b00
Owning Process ffffe0010452e640 Image: System
Attached Process N/A Image: N/A
fffff78000000000: Unable to get shared data
Wait Start TickCount 17836
Context Switch Count 116 IdealProcessor: 0
ReadMemory error: Cannot get nt!KeMaximumIncrement value.
UserTime 00:00:00.000
KernelTime 00:00:00.000
Win32 Start Address nt!PopIrpWorker (0xfffff801993a4e2c)
Stack Init ffffd0004f746c90 Current ffffd0004f746590
Base ffffd0004f747000 Limit ffffd0004f741000 Call 0
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5
Child-SP RetAddr : Args to Child : Call Site
ffffd000`4f7465d0 fffff801`992cba2e : fffff801`99584180 ffffe001`045f0880 00000000`fffffffe ffffe001`fffffffe : nt!KiSwapContext+0x76
ffffd000`4f746710 fffff801`992cb4a9 : ffffe001`0a268658 ffffe001`0a2684b0 00000000`00000000 fffff800`60d4b164 : nt!KiSwapThread+0x14e
ffffd000`4f7467b0 fffff801`992fa523 : fffff800`6251ea5b 00000000`00000000 ffffe001`0a2684b0 ffffe001`05d6ee50 : nt!KiCommitThreadWait+0x129
ffffd000`4f746830 fffff800`6251ea73 : ffffd000`4f7468f0 ffffe001`00000000 00000000`00000000 ffffe001`00000000 : nt!KeWaitForSingleObject+0x373
ffffd000`4f7468c0 fffff800`6251e40a : ffffe001`0a268400 ffffd000`4f746a09 ffffe001`0a2684b0 00000000`00000000 : dxgkrnl!DpiFdoHandleDevicePower+0x207
ffffd000`4f746950 fffff800`6296fb90 : 00000000`00000001 ffffd000`4f746ae0 00000000`00000001 ffffe001`0a147000 : dxgkrnl!DpiDispatchPower+0x8e
ffffd000`4f746a70 00000000`00000001 : ffffd000`4f746ae0 00000000`00000001 ffffe001`0a147000 ffffd000`4f746b30 : nvlddmkm+0x15ab90
ffffd000`4f746a78 ffffd000`4f746ae0 : 00000000`00000001 ffffe001`0a147000 ffffd000`4f746b30 ffffe001`00000004 : 0x1
ffffd000`4f746a80 00000000`00000001 : ffffe001`0a147000 ffffd000`4f746b30 ffffe001`00000004 00000000`00000000 : 0xffffd000`4f746ae0
ffffd000`4f746a88 ffffe001`0a147000 : ffffd000`4f746b30 ffffe001`00000004 00000000`00000000 fffff801`99584101 : 0x1
ffffd000`4f746a90 ffffd000`4f746b30 : ffffe001`00000004 00000000`00000000 fffff801`99584101 ffffe001`05d6ee50 : 0xffffe001`0a147000
ffffd000`4f746a98 ffffe001`00000004 : 00000000`00000000 fffff801`99584101 ffffe001`05d6ee50 ffffe001`09fb01f0 : 0xffffd000`4f746b30
ffffd000`4f746aa0 00000000`00000000 : fffff801`99584101 ffffe001`05d6ee50 ffffe001`09fb01f0 00000000`00000000 : 0xffffe001`00000004
// The I/O request shows the power request did indeed initiate (reading from the bottom up) via the nvidia graphics kernel driver:
2: kd> !irp ffffe0010a2684b0
Irp is active with 6 stacks 4 is current (= 0xffffe0010a268658)
No Mdl: No System Buffer: Thread 00000000: Irp stack trace.
cmd flg cl Device File Completion-Context
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000
Args: 00000000 00000000 00000000 00000000
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000
Args: 00000000 00000000 00000000 00000000
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-00000000
Args: 00000000 00000000 00000000 00000000
>[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 e1 ffffe00105d6d430 00000000 fffff8006249d37c-ffffd0004f7468f0 Success Error Cancel pending
\Driver\pci dxgkrnl!DpiFdoPowerCompletionRoutine
Args: 00000000 00000001 00000001 00000000
[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
0 e1 ffffe00109fb01f0 00000000 fffff801993a461c-ffffe0010a275ea8 Success Error Cancel pending
\Driver\nvlddmkm nt!PopRequestCompletion
Args: 00000000 00000001 00000001 00000000
[N/A(0), N/A(0)]
0 0 00000000 00000000 00000000-ffffe0010a275ea8
Args: 00000000 00000000 00000000 00000000
// This is attached to the ACPI object (expected, as it's doing power request work) which is how pci.sys gets blamed (the video card is likely on the PCI-E bus, which is controlled by pci.sys):
2: kd> !devobj ffffe00109fb01f0
Device object (ffffe00109fb01f0) is for:
InfoMask field not found for _OBJECT_HEADER at ffffe00109fb01c0
\Driver\nvlddmkm DriverObject ffffe0010a005e60
Current Irp 00000000 RefCount 0 Type 00000023 Flags 00002004
DevExt ffffe00109fb0340 DevObjExt ffffe00109fb0fa0
ExtensionFlags (0x30000000) DOE_RAW_FDO
Unknown flags 0x10000000
Characteristics (0x00000100) FILE_DEVICE_SECURE_OPEN
AttachedTo (Lower) ffffe00105d6ee50 \Driver\ACPI
Device queue is not busy.
// This is a pretty problematic nvidia driver (it adds removable support for thunderbolt devices, but inadvertently extends this to all nvidia cards and can break things like power management) - recommended to roll back to November or December at the least until they fix this:
2: kd> lmvm nvlddmkm
start end module name
fffff800`62815000 fffff800`63428000 nvlddmkm T (no symbols)
Loaded symbol image file: nvlddmkm.sys
Image path: \SystemRoot\system32\DRIVERS\nvlddmkm.sys
Image name: nvlddmkm.sys
Timestamp: Fri Jan 22 16:12:06 2016 (56A2C556)
CheckSum: 00BD3D56
ImageSize: 00C13000
Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4