PoRequestPowerIrp

Does anyone know if you can call PoRequestPowerIrp without a completion
routine?

thanks,

Daniel


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Yes you can. I don’t see any problem in that. Does doc say anything
against that?

-Eliyas

-----Original Message-----
From: Nemiroff, Daniel [mailto:xxxxx@intel.com]
Sent: Thursday, August 23, 2001 3:47 PM
To: NT Developers Interest List
Subject: [ntdev] PoRequestPowerIrp

Does anyone know if you can call PoRequestPowerIrp without a completion
routine?

thanks,

Daniel


You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Eliyas:

The DDK doesn’t say if the completion routine is optional or not. Since it
usually follows and optional argument with the “OPTIONAL” macro I thought I
had to supply a completion routine.

Basically, I’m trying to make our XP driver compliant with the < 5 second
resume from S3 requirement. To do this I’m doing the 2 things the “Windows
XP Fast Resume” white-paper suggests:

  1. “Complete S-IRPs before spinning D-IRPs.” This is where the
    PoRequestPower IRP w/o a completion routine comes in.
  2. “Defer other work until after resume.” I’m having a little trouble with
    this one.

To defer the “other work” I’m spinning a worker thread. The thread fires
after I’m done with my power IRPs, but it comes before other drivers finish
processing their power IRPs. I’ve tried using the ExRegisterCallback method
to tell me when I’m back in S0, but on some systems I never get the call
back. Any ideas?

Thanks,

Daniel

-----Original Message-----
From: Eliyas Yakub [mailto:xxxxx@microsoft.com]
Sent: Friday, August 24, 2001 10:31 AM
To: NT Developers Interest List
Subject: [ntdev] RE: PoRequestPowerIrp

Yes you can. I don’t see any problem in that. Does doc say anything
against that?

-Eliyas

-----Original Message-----
From: Nemiroff, Daniel [mailto:xxxxx@intel.com]
Sent: Thursday, August 23, 2001 3:47 PM
To: NT Developers Interest List
Subject: [ntdev] PoRequestPowerIrp

Does anyone know if you can call PoRequestPowerIrp without a completion
routine?

thanks,

Daniel


You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@intel.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> Basically, I’m trying to make our XP driver compliant with the < 5 second

resume from S3 requirement. To do this I’m doing the 2 things the “Windows
XP Fast Resume” white-paper suggests:

  1. “Complete S-IRPs before spinning D-IRPs.” This is where the
    PoRequestPower IRP w/o a completion routine comes in.

Well this is just great. This white paper contradicts the DDK directly as
in the section “Handling a System Query-Power IRP in a Device Power Policy
Owner”:

When a device power policy owner receives an IRP_MN_QUERY_POWER for a
system state, it responds by passing down the query and, in an IoCompletion
routine, sending an IRP_MN_QUERY_POWER for a device power state. When all
drivers in the stack have completed the device query, the device power
policy owner completes the system query.

Or how about “Handling a System Set-Power IRP in a Device Power Policy
Owner”:

When a device power policy owner receives an IRP_MN_SET_POWER for a system
power state, it responds by passing down the IRP and, in an IoCompletion
routine, sending an IRP_MN_SET_POWER for a corresponding device power
state. When all drivers in the stack have completed the device IRP, the
device power policy owner completes the system IRP.

So which is correct the latest DDK documentation or this white paper?

Bill McKenzie
Software Engineer
bSquare Corporation


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Good Question:

I’ll quote directly from the white paper.

“FDO - Complete S0 IRPs ASAP. Then request D0 IRP.”

-daniel

-----Original Message-----
From: xxxxx@bsquare.com [mailto:xxxxx@bsquare.com]
Sent: Monday, August 27, 2001 8:23 PM
To: NT Developers Interest List
Subject: [ntdev] RE: PoRequestPowerIrp

Basically, I’m trying to make our XP driver compliant with the < 5 second
resume from S3 requirement. To do this I’m doing the 2 things the
“Windows
XP Fast Resume” white-paper suggests:

  1. “Complete S-IRPs before spinning D-IRPs.” This is where the
    PoRequestPower IRP w/o a completion routine comes in.

Well this is just great. This white paper contradicts the DDK directly as
in the section “Handling a System Query-Power IRP in a Device Power Policy
Owner”:

When a device power policy owner receives an IRP_MN_QUERY_POWER for a
system state, it responds by passing down the query and, in an IoCompletion
routine, sending an IRP_MN_QUERY_POWER for a device power state. When all
drivers in the stack have completed the device query, the device power
policy owner completes the system query.

Or how about “Handling a System Set-Power IRP in a Device Power Policy
Owner”:

When a device power policy owner receives an IRP_MN_SET_POWER for a system
power state, it responds by passing down the IRP and, in an IoCompletion
routine, sending an IRP_MN_SET_POWER for a corresponding device power
state. When all drivers in the stack have completed the device IRP, the
device power policy owner completes the system IRP.

So which is correct the latest DDK documentation or this white paper?

Bill McKenzie
Software Engineer
bSquare Corporation


You are currently subscribed to ntdev as: xxxxx@intel.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com