Tech Support > Microsoft Windows > Drivers > Power request failure in WDF
Power request failure in WDF
Posted by DaveH on June 12th, 2008


Hi.

I have a problem in power management which am currently investigating. In a
nutshell, a child device tries bringing its stack back to D0 in order to
enable/disable wakes when system is transitioning to Sx. This is triggered
when receiving the Sx IRP which is sent down the stack after setting a
completion routine to bring the stack back to D0, set wake registers and then
transitioning it back to D3. While this works fine under 2k and XP, I get
failures under Vista (only if DTM Client is installed) and Server2k8 where
parent WDF driver fails to connect interrupts on transition to D0 (possibly
because a Sx IRP has been issued before?).

I'll probably log in more details on this later on. But while investigating
this problem I came across few strange WDF logs. As mentioned, I can see in
some cases the parent is not able to connect interrupts, thus failing
transition to D0. However when the child's completion routine is called the
IoStatus block shows a successful status which isn't what I'd expected.

Also I came across the following which is a bit more strange as you don't
expect a device to succeed powering up when it's parent has failed this
request:

Dumping WDFDEVICE 0x7b47e940
=================================

WDM PDEVICE_OBJECTs: self 848d3030

Pnp state: 119 ( WdfDevStatePnpStarted )
Power state: 32b ( WdfDevStatePowerStartSelfManagedIo )
Power Pol state: 502 ( WdfDevStatePwrPolStartingSucceeded )

Parent WDFDEVICE 7b794620
Parent states:
Pnp state: 119 ( WdfDevStatePnpStarted )
Power state: 33e ( WdfDevStatePowerReportPowerUpFailed )
Power Pol state: 56e ( WdfDevStatePwrPolDevicePowerRequestFailed )

Any advice on this is highly appreciated.

Thanks,
DaveH

Posted by Doron Holan [MSFT] on June 13th, 2008


send down the Sx irp after you have brought the device back into D0, armed
for wake and then down back to Dx. remember that Sx/S0 transitions hold the
same global kernel lock that controls pnp state, so a parent could fail to
power up and still be around while the children are powering up. it is up
to the driver itself to fail a power up request in the child if the parent's
state is important.

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"DaveH" <DaveH@discussions.microsoft.com> wrote in message
news04296C0-F416-42CD-8B3E-3530324DA3BD@microsoft.com...


Similar Posts