Power Management IOCTLs (Compact 2013)

3/26/2014

Power Manager issues IOCTL commands to power-managed device drivers through the DeviceIoControl function. Power Manager uses the following IOCTLs:

Power Management IOCTLs

IOCTL

Description

IOCTL_POWER_CAPABILITIES

Requests that the device driver inform Power Manager of which power states it supports and the characteristics of those states.

IOCTL_POWER_SET

Requests that the device driver update its device power state.

IOCTL_POWER_QUERY

Asks the device driver if it is ready to put the device into a new device power state.

IOCTL_POWER_GET

Requests that the device driver inform Power Manager of its current device power state.

IOCTL_REGISTER_POWER_RELATIONSHIP

Notifies the driver of the parent device to register all devices it controls.

Note that, because Power Manager uses a single thread to issue IOCTL_POWER_SET commands to device drivers, device drivers must implement IOCTL_POWER_SET as a non-blocking command. If a device driver blocks during an IOCTL_POWER_SET operation, it can delay Power Manager from completing system power state transitions in a timely fashion, depending on how long it takes for the device driver to complete the IOCTL_POWER_SET command. These delays may be unacceptable when powering off or transitioning to a Suspended state, depending on the requirements of your platform hardware. For more information about these functions and IOCTLs, see Windows Embedded Compact 2013 documentation.

Because Power Manager uses DeviceIoControl to communicate with device drivers, power-managed drivers must expose a stream interface. For more about device driver architecture and device driver stream interfaces, see Planning Your Device Driver. For more about how device drivers support power management, see Implementing Your Device Driver.

See Also

Concepts

Power Management Device Driver Interface