// wdfdmaenabler.h
typedef struct _WDF_DMA_SYSTEM_PROFILE_CONFIG {
ULONG Size;
BOOLEAN DemandMode;
BOOLEAN LoopedTransfer;
DMA_WIDTH DmaWidth;
PHYSICAL_ADDRESS DeviceAddress;
PCM_PARTIAL_RESOURCE_DESCRIPTOR DmaDescriptor;
} WDF_DMA_SYSTEM_PROFILE_CONFIG, *PWDF_DMA_SYSTEM_PROFILE_CONFIG;
View the official Windows Driver Kit DDI reference
No description available.
[Applies to KMDF only]
The WDF_DMA_SYSTEM_PROFILE_CONFIG structure describes the hardware-specific settings related to a system-mode DMA enabler.
Size
The size of this structure in bytes.
DemandMode
Specifies that the transfer is controlled by the device's DMA request line specified in the DmaDescriptor member of this structure. See more information in Remarks.
LoopedTransfer
Specifies that the DMA adapter should loop around the specified transfer if the length is greater than the size of the buffer.
DmaWidth
The width of the register specified by DeviceAddress. Possible values are Width8Bits, Width16Bits, Width32Bits, and Width64Bits.
DeviceAddress
The translated address to or from which the DMA controller transfers. The driver can specify an offset from this base address on each transaction by calling WdfDmaTransactionSetDeviceAddressOffset.
DmaDescriptor
The translated resource descriptor for the DMA channel assigned the device during EvtDevicePrepareHardware. This provides the DMA request line for the adapter.
The driver provides this structure to WdfDmaEnablerConfigureSystemProfile after creating a system-profile DMA enabler.
Typically, drivers set DemandMode to TRUE. The driver's EvtProgramDma callback function then programs the device to assert its DMA request line and initiate the transfer. In this case, the transfer might begin while EvtProgramDma is still running.
The driver must ensure that the device's DMA request line is not asserted before the driver's EvtProgramDma callback function begins execution. Otherwise, it is possible for the DMA transfer to begin before the framework calls EvtProgramDma.
If DemandMode is set to FALSE, the DMA transfer may begin before the framework calls the driver’s EvtProgramDma function.
WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT
WdfDmaEnablerConfigureSystemProfile