Hello,
I am writing a WDM driver. Irrespective of whether a filter or a function
driver is written, do i have to take care of handling a system/device power
IRP? or since anyway if my bus/class driver acts as power policy manager,
the only work of my filter/function driver is to just pass these IRPs down
to the lower level drivers.
IOW, do higher level drivers need to implement power management (handle
power IRP’s)???
TIA,
Venky
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
> do higher level drivers need to implement power management (handle
power IRP’s)???
Drivers that are not power policy owner of the device should just pass
the IRPs down. This is all documented clearly in the DDK.
PoStartNextPowerIrp(Irp);
IoSkipCurrentIrpStackLocation(Irp);
return PoCallDriver(Data->NextLowerDriver, Irp);
-Eliyas
-----Original Message-----
From: Varadan Venkatesh [mailto:xxxxx@tataelxsi.co.in]
Sent: Tuesday, April 17, 2001 3:11 AM
To: NT Developers Interest List
Subject: [ntdev] Query on Power management!
Hello,
I am writing a WDM driver. Irrespective of whether a filter or a
function driver is written, do i have to take care of handling a
system/device power IRP? or since anyway if my bus/class driver acts as
power policy manager, the only work of my filter/function driver is to
just pass these IRPs down to the lower level drivers.
IOW, do higher level drivers need to implement power management (handle
power IRP’s)???
TIA,
Venky
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
Is there any way to find out which driver in a particular stack is the power
policy owner?
actually my problem is windows has a supplied driver stack (3 drivers one
layered above another) and I am writing a driver which layers above the
topmost driver in the stack. I need to know whether I need to handle the
power IRPs coming to me or just pass through the IRP’s to the lower driver
using the below mechanism.
Thanks
Venky
[venky]-----Original Message-----
[venky]From: xxxxx@lists.osr.com
[venky][mailto:xxxxx@lists.osr.com]On Behalf Of Eliyas Yakub
[venky]Sent: Tuesday, April 17, 2001 11:37 PM
[venky]To: NT Developers Interest List
[venky]Subject: [ntdev] RE: Query on Power management!
[venky]
[venky]
[venky]> do higher level drivers need to implement power management (handle
[venky]power IRP’s)???
[venky]
[venky]Drivers that are not power policy owner of the device should
[venky]just pass
[venky]the IRPs down. This is all documented clearly in the DDK.
[venky]
[venky] PoStartNextPowerIrp(Irp);
[venky] IoSkipCurrentIrpStackLocation(Irp);
[venky] return PoCallDriver(Data->NextLowerDriver, Irp);
[venky]
[venky]-Eliyas
[venky]
[venky]
[venky]-----Original Message-----
[venky]From: Varadan Venkatesh [mailto:xxxxx@tataelxsi.co.in]
[venky]Sent: Tuesday, April 17, 2001 3:11 AM
[venky]To: NT Developers Interest List
[venky]Subject: [ntdev] Query on Power management!
[venky]
[venky]
[venky]Hello,
[venky]
[venky]I am writing a WDM driver. Irrespective of whether a filter or a
[venky]function driver is written, do i have to take care of handling a
[venky]system/device power IRP? or since anyway if my bus/class
[venky]driver acts as
[venky]power policy manager, the only work of my filter/function
[venky]driver is to
[venky]just pass these IRPs down to the lower level drivers.
[venky]
[venky]IOW, do higher level drivers need to implement power
[venky]management (handle
[venky]power IRP’s)???
[venky]
[venky]TIA,
[venky]Venky
[venky]
[venky]
[venky]—
[venky]You are currently subscribed to ntdev as: xxxxx@microsoft.com To
[venky]unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
[venky]
[venky]—
[venky]You are currently subscribed to ntdev as: xxxxx@tataelxsi.co.in
[venky]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
> Is there any way to find out which driver in a particular stack is the power
policy owner?
Not that I am aware of.
actually my problem is windows has a supplied driver stack (3 drivers one
layered above another) and I am writing a driver which layers above the
topmost driver in the stack. I need to know whether I need to handle the
power IRPs coming to me or just pass through the IRP’s to the lower driver
using the below mechanism.
Thanks
Venky
Well, and it isn’t all that well documented, (I have seen many a senior
driver developer get wrapped around the axle on power management), what
Eliyas was alluding to is, generally, if you aren’t touching the registers
on the device, you aren’t the power policy owner. If you develop a filter
driver to layer over a function driver you did not develop, you can be
fairly certain that your filter is not the power policy owner, unless there
is documentation stating otherwise. Your filter could not have intimate
knowledge of the device. The power policy owner is the device in the stack
that handles system to device power transitions. As such it needs to be
aware of when the device needs to change power state, what power states are
valid at the time, and it must be able to handle a power change for the
device. So, almost always the power policy owner will be the function
driver. This is certainly true for PCI, USB, and 1394 devices. That said,
it is legal for any driver in the stack to be the power policy owner. So,
if you create your own driver stack and you have special needs that require
a different methodology, you can implement it.
Clear as mud now?
Bill M.
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