This BSoD would occur during the stress testing of hibernate(S4) in pure Win8.1,
I found the monitor attempt to set its power to D0 state, but its PDO doesn’t approve the power state changing IRP.
I try to find out the thread that handles the Device Power IRP,
it looks like the cause is related to BIOS?
1: 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: ffffe0012d498080, Physical Device Object of the stack
Arg3: ffffd0003739b930, nt!TRIAGE_9F_POWER on Win7 and higher, otherwise the Functional Device Object of the stack
Arg4: ffffe0012ddce4a0, The blocked IRP
Debugging Details:
DRVPOWERSTATE_SUBCODE: 3
DRIVER_OBJECT: ffffe0012cdd6e60
IMAGE_NAME: BasicDisplay.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 5215f873
MODULE_NAME: BasicDisplay
FAULTING_MODULE: fffff800ed0ca000 BasicDisplay
DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT
BUGCHECK_STR: 0x9F
PROCESS_NAME: System
CURRENT_IRQL: 2
ANALYSIS_VERSION: 6.3.9600.17237 (debuggers(dbg).140716-0327) x86fre
DPC_STACK_BASE: FFFFD000373A2FB0
STACK_TEXT:
ffffd0003739b8f8 fffff803
4ba0ec1e : 000000000000009f 00000000
00000003 ffffe0012d498080 ffffd000
3739b930 : nt!KeBugCheckEx
ffffd0003739b900 fffff803
4ba0eb3e : ffffe0012cbfbf00 00000000
ffffffff 0000000000000000 fffff803
4b86f240 : nt!PopIrpWatchdogBugcheck+0xde
ffffd0003739b960 fffff803
4b86b810 : 0000000000000000 ffffd000
3739bab0 ffffe0012cbfbf38 ffffd000
00000f45 : nt!PopIrpWatchdog+0x32
ffffd0003739b9b0 fffff803
4b969aea : ffffd0003734e180 ffffd000
3734e180 ffffd0003735a2c0 ffffe001
2daff040 : nt!KiRetireDpcList+0x4f0
ffffd0003739bc60 00000000
00000000 : ffffd0003739c000 ffffd000
37396000 0000000000000000 00000000
00000000 : nt!KiIdleLoop+0x5a
STACK_COMMAND: kb
FOLLOWUP_NAME: MachineOwner
FAILURE_BUCKET_ID: 0x9F_3_IMAGE_BasicDisplay.sys
BUCKET_ID: 0x9F_3_IMAGE_BasicDisplay.sys
ANALYSIS_SOURCE: KM
FAILURE_ID_HASH_STRING: km:0x9f_3_image_basicdisplay.sys
FAILURE_ID_HASH: {731ddd68-3004-39e4-9005-921c5c1bb9b3}
Followup: MachineOwner
1: kd> !devstack ffffe0012d498080
!DevObj !DrvObj !DevExt ObjectName
ffffe0012b4fce20 \Driver\monitor ffffe0012b505c80
ffffe0012d475410 \Driver\ACPI ffffe0012c887870
ffffe0012d498080 \Driver\BasicDisplayffffe0012d4981d0 00000046
!DevNode ffffe0012b508d30 :
DeviceInst is “DISPLAY\SDC374A\4&2ce4e466&0&UID0”
ServiceName is “monitor”
1: kd> !poaction
PopAction: fffff8034bab9380
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 - fffff8034bac3150)
IRP: ffffe0012d81b010 (wait-wake/S4), PDO: ffffe0012c93eb70
IRP: ffffe0012ddce4a0 (set/D0,), PDO: ffffe0012d498080, CURRENT: ffffe0012d498080
IRP: ffffe0012d985af0 (wait-wake/S4), PDO: ffffe0012dab72b0
Irp worker threads (PopIrpThreadList - fffff8034bac2430)
THREAD: ffffe0012b52a040 (static), IRP: ffffe0012ddce4a0, DEVICE: ffffe0012d498080
THREAD: ffffe0012b4d5800 (static)
Broadcast in progress: FALSE
No Device State present
1: kd> !irp ffffe0012ddce4a0
Irp is active with 4 stacks 2 is current (= 0xffffe0012ddce5b8)
No Mdl: No System Buffer: Thread 00000000: Irp stack trace.
cmd flg cl Device File Completion-Context
[0, 0] 0 0 00000000 00000000 00000000-00000000
Args: 00000000 00000000 00000000 00000000
[16, 2] 0 e1 ffffe0012d498080 00000000 00000000-00000000 pending
\Driver\BasicDisplay
Args: 00000000 00000001 00000001 00000000
[16, 2] 0 e1 ffffe0012b4fce20 00000000 fffff8034b9302d8-ffffe0012cbfbf00 Success Error Cancel pending
\Driver\monitor nt!PopRequestCompletion
Args: 00000000 00000001 00000001 00000000
[0, 0] 0 0 00000000 00000000 00000000-ffffe0012cbfbf00
Args: 00000000 00000000 00000000 00000000
1: kd> !thread ffffe0012b52a040
THREAD ffffe0012b52a040 Cid 0004.0014 Teb: 0000000000000000 Win32Thread: 0000000000000000 RUNNING on processor 3
Not impersonating
DeviceMap ffffc001e4a0c0f0
Owning Process ffffe0012b45a900 Image: System
Attached Process N/A Image: N/A
Wait Start TickCount 24794 Ticks: 3 (0:00:00:00.046)
Context Switch Count 132 IdealProcessor: 0
UserTime 00:00:00.000
KernelTime 00:01:59.984
Win32 Start Address nt!PopIrpWorker (0xfffff8034b9310ac)
Stack Init ffffd00037346c90 Current ffffd00037346430
Base ffffd00037347000 Limit ffffd00037341000 Call 0
Priority 13 BasePriority 13 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5
Child-SP RetAddr Call Site
ffffd00037346748 fffff803
4bfad59a hal!x86BiosReadIoSpace+0x74
ffffd00037346750 fffff803
4bfacce3 hal!XmInOp+0x2f
ffffd00037346780 fffff803
4bfabd90 hal!XmEmulateStream+0x137
ffffd000373467c0 fffff803
4bfabc02 hal!XmEmulateInterrupt+0x88
ffffd000373467f0 fffff803
4bfabb95 hal!x86BiosExecuteInterruptShadowed+0x3a
ffffd00037346820 fffff800
ed0d7b70 hal!x86BiosCall+0x29
ffffd00037346860 fffff800
ed0d1046 BasicDisplay!BiosSetPowerState+0x7c
ffffd000373468c0 fffff800
ecf69287 BasicDisplay!BASIC_DISPLAY_DRIVER::SetPowerState+0x292
ffffd00037346950 fffff800
ecf6976c dxgkrnl!DpiDxgkDdiSetPowerState+0x4b
ffffd000373469b0 fffff800
ecee18ac dxgkrnl!DpiPdoSetDevicePower+0x80
ffffd00037346a00 fffff800
ecf68e76 dxgkrnl!DpiPdoDispatchPower+0xa0
ffffd00037346a30 fffff803
4b93138b dxgkrnl!DpiDispatchPower+0x8e
ffffd00037346b50 fffff803
4b8e1794 nt!PopIrpWorker+0x2df
ffffd00037346c00 fffff803
4b96c5c6 nt!PspSystemThreadStartup+0x58
ffffd00037346c60 00000000
00000000 nt!KiStartSystemThread+0x16
1: kd> u hal!x86BiosReadIoSpace+0x74
hal!x86BiosReadIoSpace+0x74:
fffff8034bfad620 ebd4 jmp hal!x86BiosReadIoSpace+0x4a (fffff803
4bfad5f6)
fffff8034bfad622 66412bd1 sub dx,r9w fffff803
4bfad626 e961720200 jmp hal!x86BiosReadPciAddressPort (fffff8034bfd488c) fffff803
4bfad62b e9a4710200 jmp hal!x86BiosReadCmosPort (fffff8034bfd47d4) hal!XmPortImmediate: fffff803
4bfad630 53 push rbx
fffff8034bfad631 4883ec20 sub rsp,20h fffff803
4bfad635 488bd9 mov rbx,rcx
fffff8034bfad638 e897f2ffff call hal!XmGetCodeByte (fffff803
4bfac8d4)