EVT_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE callback function (wdfdevice.h)

[Applies to KMDF only]

The EvtDeviceWdmPostPoFxRegisterDevice callback function performs device-specific operations after the framework has registered with the power framework.

Syntax

EVT_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE EvtWdfdeviceWdmPostPoFxRegisterDevice;

NTSTATUS EvtWdfdeviceWdmPostPoFxRegisterDevice(
  [in] WDFDEVICE Device,
  [in] POHANDLE PoHandle
)
{...}

Parameters

[in] Device

A handle to a framework device object.

[in] PoHandle

A handle that represents the device’s registration with the power framework.

Return value

An NTSTATUS value indicating success or failure of the operations performed in this callback. If failure is returned, the framework in turn will fail IRP_MN_START_DEVICE.

Remarks

If you are writing a KMDF driver for a single-component device that defines multiple functional power states, you can register an EvtDeviceWdmPostPoFxRegisterDevice callback function to receive notification after the framework registers with the power management framework (PoFx).

To register EvtDeviceWdmPostPoFxRegisterDevice, a driver must call WdfDeviceWdmAssignPowerFrameworkSettings.

The POHANDLE received in EvtDeviceWdmPostPoFxRegisterDevice remains valid until the driver returns from EvtDeviceWdmPrePoFxUnregisterDevice.

Your driver can use the POHANDLE to call PoFxSetComponentLatency, PoFxSetComponentResidency, and PoFxSetComponentWake to specify latency, residency, and wake hints to the power framework.

Your driver can also use the POHANDLE to call PoFxPowerControl to send a power control request to PoFx.

A KMDF driver for a multiple component device does not provide EvtDeviceWdmPostPoFxRegisterDevice. Instead, such a driver receives the POHANDLE when it calls PoFxRegisterDevice. For more information, see Supporting Multiple Functional Power States for Multiple-Component Devices.

Requirements

Requirement Value
Target Platform Universal
Minimum KMDF version 1.11
Header wdfdevice.h (include Wdf.h)
IRQL PASSIVE_LEVEL

See also

EvtDeviceWdmPrePoFxUnregisterDevice

WdfDeviceWdmAssignPowerFrameworkSettings