DRIVER_POWER_STATE_FAILURE in hidusb.sys during WHQL CHAOS tests

Hello

I'm working on an HID USB device with Selective Suspend on Windows 7, trying to get it to pass through the Windows Hardware Certification Tests (specifically the CHAOS test), and I keep getting bluescreens from the HIDUSB system driver. I was hoping someone maybe had a little more insight into what could be wrong.

Right now I'm not sure if it is something my USB device is doing wrong, or if it just exposes a bug in the driver.

Selective Suspend has been enabled with an INF file I've made, that will edit the registry.

The error is a "DRIVER_POWER_STATE_FAILURE", and occurs exactly 10 minutes after the host issues the last communication to the device (I got a Beagle USB Analyzer on the bus to check traffic).

I've spoken with the system developer I'm doing this job for, and he provided me with the failure log I've posted below. It mentioned a 10 minute timeout waiting for a power IRP, which matches what I'm seeing with my USB analyzer.

Is there something my device was supposed to send out here, but didn't? Did I perhaps not set the Selective Suspend up correctly in the registry?

Any help is greatly appreciated!
Thanks

  • Jonas

0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time (usually 10 minutes).
Arguments:
Arg1: 0000000000000003, A device object has been blocking an Irp for too long a time
Arg2: fffffa800e5ac060, Physical Device Object of the stack
Arg3: fffff80000ba2748, nt!TRIAGE_9F_POWER on Win7, otherwise the Functional Device Object of the stack
Arg4: fffff980102d0af0, The blocked IRP

Debugging Details:

DRVPOWERSTATE_SUBCODE: 3

DRIVER_OBJECT: fffffa800ff29ca0

IMAGE_NAME: hidusb.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 4ce7a665

MODULE_NAME: hidusb

FAULTING_MODULE: fffff88007fb2000 hidusb

DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT

BUGCHECK_STR: 0x9F

PROCESS_NAME: svchost.exe

CURRENT_IRQL: 2

TAG_NOT_DEFINED_c000000f: FFFFF80000BA2FB0

STACK_TEXT:
fffff80000ba26f8 fffff80002d4b6d2 : 000000000000009f 0000000000000003 fffffa800e5ac060 fffff80000ba2748 : nt!KeBugCheckEx fffff80000ba2700 fffff80002cebc3c : fffff80000ba2830 fffff80000ba2830 0000000000000000 0000000000000002 : nt! ?? ::FNODOBFM::string'+0x33ac0 fffff80000ba27a0 fffff80002cebad6 : fffffa800ef2bc58 fffffa800ef2bc58 0000000000000000 0000000000000000 : nt!KiProcessTimerDpcTable+0x6c fffff80000ba2810 fffff80002ceb9be : 000000033d1dddeb fffff80000ba2e88 0000000000015c4f fffff80002e56c68 : nt!KiProcessExpiredTimerList+0xc6 fffff80000ba2e60 fffff80002ceb7a7 : fffff80002e53ec5 fffff80000015c4f fffffa800eee1610 000000000000004f : nt!KiTimerExpiration+0x1be fffff80000ba2f00 fffff80002ce4105 : 0000000000000000 fffffa800ed64b50 0000000000000000 fffff88001264838 : nt!KiRetireDpcList+0x277 fffff80000ba2fb0 fffff80002ce3f1c : 00000000042fbcb0 fffff80002c23895 fffff80002c49460 fffff8800a87cb60 : nt!KyRetireDpcList+0x5 fffff8800a87caa0 fffff80002d2be93 : fffff80002cdd540 fffff80002cdd5ac 0000000000000001 fffff8800a87cb60 : nt!KiDispatchInterruptContinue fffff8800a87cad0 fffff80002cdd5ac : 0000000000000001 fffff8800a87cb60 00000000042fbcb0 00000000086c8050 : nt!KiDpcInterruptBypass+0x13 fffff8800a87cae0 000007fef2e04e07 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!KiInterruptDispatchNoLock+0x1fc 000000000340e4d8 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : 0x000007fef2e04e07

STACK_COMMAND: kb

FOLLOWUP_NAME: MachineOwner

FAILURE_BUCKET_ID: X64_0x9F_VRF_3_POWER_DOWN_IMAGE_hidusb.sys

BUCKET_ID: X64_0x9F_VRF_3_POWER_DOWN_IMAGE_hidusb.sys

Followup: MachineOwner

The first step is to run, "!stacks 2" and look for a thread that might be
holding up the power state transition.

-scott
OSR

wrote in message news:xxxxx@ntdev...

Hello

I'm working on an HID USB device with Selective Suspend on Windows 7, trying
to get it to pass through the Windows Hardware Certification Tests
(specifically the CHAOS test), and I keep getting bluescreens from the
HIDUSB system driver. I was hoping someone maybe had a little more insight
into what could be wrong.

Right now I'm not sure if it is something my USB device is doing wrong, or
if it just exposes a bug in the driver.

Selective Suspend has been enabled with an INF file I've made, that will
edit the registry.

The error is a "DRIVER_POWER_STATE_FAILURE", and occurs exactly 10 minutes
after the host issues the last communication to the device (I got a Beagle
USB Analyzer on the bus to check traffic).

I've spoken with the system developer I'm doing this job for, and he
provided me with the failure log I've posted below. It mentioned a 10 minute
timeout waiting for a power IRP, which matches what I'm seeing with my USB
analyzer.

Is there something my device was supposed to send out here, but didn't? Did
I perhaps not set the Selective Suspend up correctly in the registry?

Any help is greatly appreciated!
Thanks

  • Jonas

0: kd> !analyze -v
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************

DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time (usually
10 minutes).
Arguments:
Arg1: 0000000000000003, A device object has been blocking an Irp for too
long a time
Arg2: fffffa800e5ac060, Physical Device Object of the stack
Arg3: fffff80000ba2748, nt!TRIAGE_9F_POWER on Win7, otherwise the Functional
Device Object of the stack
Arg4: fffff980102d0af0, The blocked IRP

Debugging Details:

DRVPOWERSTATE_SUBCODE: 3

DRIVER_OBJECT: fffffa800ff29ca0

IMAGE_NAME: hidusb.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 4ce7a665

MODULE_NAME: hidusb

FAULTING_MODULE: fffff88007fb2000 hidusb

DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT

BUGCHECK_STR: 0x9F

PROCESS_NAME: svchost.exe

CURRENT_IRQL: 2

TAG_NOT_DEFINED_c000000f: FFFFF80000BA2FB0

STACK_TEXT:
fffff80000ba26f8 fffff80002d4b6d2 : 000000000000009f 0000000000000003
fffffa800e5ac060 fffff80000ba2748 : nt!KeBugCheckEx fffff80000ba2700 fffff80002cebc3c : fffff80000ba2830 fffff80000ba2830 0000000000000000 0000000000000002 : nt! ?? ::FNODOBFM::string'+0x33ac0 fffff80000ba27a0
fffff80002cebad6 : fffffa800ef2bc58 fffffa800ef2bc58 0000000000000000
0000000000000000 : nt!KiProcessTimerDpcTable+0x6c fffff80000ba2810
fffff80002ceb9be : 000000033d1dddeb fffff80000ba2e88 0000000000015c4f
fffff80002e56c68 : nt!KiProcessExpiredTimerList+0xc6 fffff80000ba2e60
fffff80002ceb7a7 : fffff80002e53ec5 fffff80000015c4f fffffa800eee1610
000000000000004f : nt!KiTimerExpiration+0x1be fffff80000ba2f00
fffff80002ce4105 : 0000000000000000 fffffa800ed64b50 0000000000000000
fffff88001264838 : nt!KiRetireDpcList+0x277 fffff80000ba2fb0
fffff80002ce3f1c : 00000000042fbcb0 fffff80002c23895 fffff80002c49460
fffff8800a87cb60 : nt!KyRetireDpcList+0x5 fffff8800a87caa0
fffff80002d2be93 : fffff80002cdd540 fffff80002cdd5ac 0000000000000001
fffff8800a87cb60 : nt!KiDispatchInterruptContinue fffff8800a87cad0
fffff80002cdd5ac : 0000000000000001 fffff8800a87cb60 00000000042fbcb0
00000000086c8050 : nt!KiDpcInterruptBypass+0x13 fffff8800a87cae0
000007fef2e04e07 : 0000000000000000 0000000000000000 0000000000000000
0000000000000000 : nt!KiInterruptDispatchNoLock+0x1fc 000000000340e4d8 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : 0x000007fef2e04e07

STACK_COMMAND: kb

FOLLOWUP_NAME: MachineOwner

FAILURE_BUCKET_ID: X64_0x9F_VRF_3_POWER_DOWN_IMAGE_hidusb.sys

BUCKET_ID: X64_0x9F_VRF_3_POWER_DOWN_IMAGE_hidusb.sys

Followup: MachineOwner

There has been a number of fixes for USB stack of Win7, related to power management. See
http://blogs.technet.com/b/yongrhee/archive/2011/12/22/list-of-sleep-and-hibernate-related-hotfixes-post-rtm-for-windows-7-rtm.aspx
for details.

You might have luck in the HCK forum, Microsoft Q&A | Microsoft Learn

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@atmel.com
Sent: Thursday, January 31, 2013 10:17 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] DRIVER_POWER_STATE_FAILURE in hidusb.sys during WHQL CHAOS tests

Hello

I'm working on an HID USB device with Selective Suspend on Windows 7, trying to get it to pass through the Windows Hardware Certification Tests (specifically the CHAOS test), and I keep getting bluescreens from the HIDUSB system driver. I was hoping someone maybe had a little more insight into what could be wrong.

Right now I'm not sure if it is something my USB device is doing wrong, or if it just exposes a bug in the driver.

Selective Suspend has been enabled with an INF file I've made, that will edit the registry.

The error is a "DRIVER_POWER_STATE_FAILURE", and occurs exactly 10 minutes after the host issues the last communication to the device (I got a Beagle USB Analyzer on the bus to check traffic).

I've spoken with the system developer I'm doing this job for, and he provided me with the failure log I've posted below. It mentioned a 10 minute timeout waiting for a power IRP, which matches what I'm seeing with my USB analyzer.

Is there something my device was supposed to send out here, but didn't? Did I perhaps not set the Selective Suspend up correctly in the registry?

Any help is greatly appreciated!
Thanks

  • Jonas

0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time (usually 10 minutes).
Arguments:
Arg1: 0000000000000003, A device object has been blocking an Irp for too long a time
Arg2: fffffa800e5ac060, Physical Device Object of the stack
Arg3: fffff80000ba2748, nt!TRIAGE_9F_POWER on Win7, otherwise the Functional Device Object of the stack
Arg4: fffff980102d0af0, The blocked IRP

Debugging Details:

DRVPOWERSTATE_SUBCODE: 3

DRIVER_OBJECT: fffffa800ff29ca0

IMAGE_NAME: hidusb.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 4ce7a665

MODULE_NAME: hidusb

FAULTING_MODULE: fffff88007fb2000 hidusb

DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT

BUGCHECK_STR: 0x9F

PROCESS_NAME: svchost.exe

CURRENT_IRQL: 2

TAG_NOT_DEFINED_c000000f: FFFFF80000BA2FB0

STACK_TEXT:
fffff80000ba26f8 fffff80002d4b6d2 : 000000000000009f 0000000000000003 fffffa800e5ac060 fffff80000ba2748 : nt!KeBugCheckEx fffff80000ba2700 fffff80002cebc3c : fffff80000ba2830 fffff80000ba2830 0000000000000000 0000000000000002 : nt! ?? ::FNODOBFM::string'+0x33ac0 fffff80000ba27a0 fffff80002cebad6 : fffffa800ef2bc58 fffffa800ef2bc58 0000000000000000 0000000000000000 : nt!KiProcessTimerDpcTable+0x6c fffff80000ba2810 fffff80002ceb9be : 000000033d1dddeb fffff80000ba2e88 0000000000015c4f fffff80002e56c68 : nt!KiProcessExpiredTimerList+0xc6 fffff80000ba2e60 fffff80002ceb7a7 : fffff80002e53ec5 fffff80000015c4f fffffa800eee1610 000000000000004f : nt!KiTimerExpiration+0x1be fffff80000ba2f00 fffff80002ce4105 : 0000000000000000 fffffa800ed64b50 0000000000000000 fffff88001264838 : nt!KiRetireDpcList+0x277 fffff80000ba2fb0 fffff80002ce3f1c : 00000000042fbcb0 fffff80002c23895 fffff80002c49460 fffff8800a87cb60 : nt!KyRetireDpcList+0x5 fffff8800a87caa0 fffff80002d2be93 : fffff80002cdd540 fffff80002cdd5ac 0000000000000001 fffff8800a87cb60 : nt!KiDispatchInterruptContinue fffff8800a87cad0 fffff80002cdd5ac : 0000000000000001 fffff8800a87cb60 00000000042fbcb0 00000000086c8050 : nt!KiDpcInterruptBypass+0x13 fffff8800a87cae0 000007fef2e04e07 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!KiInterruptDispatchNoLock+0x1fc 000000000340e4d8 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : 0x000007fef2e04e07

STACK_COMMAND: kb

FOLLOWUP_NAME: MachineOwner

FAILURE_BUCKET_ID: X64_0x9F_VRF_3_POWER_DOWN_IMAGE_hidusb.sys

BUCKET_ID: X64_0x9F_VRF_3_POWER_DOWN_IMAGE_hidusb.sys

Followup: MachineOwner


NTDEV is sponsored by OSR

OSR is HIRING!! See Careers – OSR

For our schedule of WDF, WDM, debugging and other seminars visit:

To unsubscribe, visit the List Server section of OSR Online at ListServer/Forum

Thank you all for your input! I believe I’ve found out what I need to do.