Supporting Power Management for DMA Devices

[Applies to KMDF only]

The DMA enabler object defines a set of optional event callback functions that drivers for DMA devices can use to manage transitions into and out of a device's working (D0) state.

Each time a DMA device enters its working state, and after the framework has called the driver's EvtDeviceD0Entry callback function, the framework calls the following DMA callback functions, in the order that they are listed:

EvtDmaEnablerFill
Allocates a device's DMA buffers.

EvtDmaEnablerEnable
Enables a device's DMA capability after the device enters its working (D0) state.

EvtDmaEnablerSelfManagedIoStart
Starts a DMA device's self-managed I/O operations.

Each time a DMA device leaves its working state, and before the framework has called the driver's EvtDeviceD0Exit callback functions, the framework calls the following DMA callback functions, in the order that they are listed:

EvtDmaEnablerSelfManagedIoStop
Stops a DMA device's self-managed I/O operations.

EvtDmaEnablerDisable
Disables a device's DMA capability before the device leaves its working (D0) state.

EvtDmaEnablerFlush
Deallocates a device's DMA buffers.

For more information about the order in which the framework calls a driver's event callback functions, see PnP and Power Management Scenarios.