Reporting Device Power Capabilities
During enumeration, drivers report device-specific information in response to a PnP IRP_MN_QUERY_CAPABILITIES request. Along with other such information, drivers report a device's power management capabilities in the DEVICE_CAPABILITIES structure. Typically, the bus driver fills in this structure.
Higher-level drivers should set an IoCompletion routine for the query-capabilities IRP so that they can make a local copy of the structure and ensure that it contains appropriate values. As a general rule, higher-level drivers should not change these values. However, if a change is necessary, a driver can further restrict device capabilities but cannot add to them. In other words, a driver can make the rules more restrictive but cannot loosen them.
After the IRP is complete and all drivers' completion routines have been run, the structure is cached and a driver cannot change its contents.
The following members of the DEVICE_CAPABILITIES structure pertain to power management: