Question about IRP_MN_WAIT_WAKE

I have a couple questions about this IRP:

I am implementing power management in a WDM device driver (For 2000/98/Me)
for a Digital Camera. The device does not have the ability to wake up the
system.

  1. I’ve read the DDK Docs, and want to be sure I understand the
    IRP_MN_WAIT_WAKE IRP before I start coding. Is this IRP used to setup the
    driver stack to be able to respond to wakeup events from devices. So if the
    system is going into a lower power state, and an attached device (Like a
    mouse or keyboard) has the ability to wake up the system, the Function
    driver for the device will setup a IRP_MN_WAIT_WAKE IRP that will be used
    to kick off the stream of events to wake the system up when an external
    (Wakeup) event happens (Like moving the mouse).
    I think the DDK describes an IRP stack for a USB keyboard IRP_MN_WAIT_WAKE
    that ends up processing (The stack) 4 IRP_MN_WAIT_WAKE IRPs at different
    levels (From the Keyboard driver –> USB HUB driver –> USB Host Controller
    Driver –> PCI Driver.

So my ACPI BIOS on my computer will have the ability to detect a device (On
the USB in this case) that is sending a wakeup event. This action causes the
stream of IRP events to occur to wake up the system.

  1. Since my camera does *NOT* have the ability to wake up the system, do I
    need to concern myself with processing this IRP. Will I ever receive it. If
    I don’t ever set it up, will the Power manager ever send it to me for some
    reason. It looks like I don’t have to worry about it at all since my
    function driver for the camera will never set it up. Am I correct in
    assuming this ?

Thanks

-Chris

Christopher Pane
Software Engineer
Vanteon

2851 Clover Street
Pittsford, NY 14534
Tel: (716) 248-0510 (Ext 232)
Fax: (716) 248-0537

email: xxxxx@vanteon.com
web: www.vanteon.com