WdfDmaTransactionSetSingleTransferRequirement function (wdfdmatransaction.h)
[Applies to KMDF only]
The WdfDmaTransactionSetSingleTransferRequirement method specifies that a DMA transaction must complete in a single transfer.
Syntax
void WdfDmaTransactionSetSingleTransferRequirement(
[in] WDFDMATRANSACTION DmaTransaction,
[in] BOOLEAN RequireSingleTransfer
);
Parameters
[in] DmaTransaction
A handle to a DMA transaction object that the driver obtained from a previous call to WdfDmaTransactionCreate.
[in] RequireSingleTransfer
A Boolean value that, if TRUE, specifies that the DMA transaction requires a single transfer.
Return value
None
Remarks
This method requests a single transfer for a single transaction only. When the transaction object is recycled with WdfDmaTransactionRelease and reinitialized, this setting resets, similar to other transaction-level properties such as immediate execution and maximum transfer length.
To request single transfer for all DMA transactions created with a given DMA enabler, specify WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER in WDF_DMA_ENABLER_CONFIG_FLAGS when calling WdfDmaEnablerCreate. This is equivalent to calling WdfDmaTransactionSetSingleTransferRequirement for each transaction object created with the DMA enabler.
The driver calls WdfDmaTransactionSetSingleTransferRequirement after creating or recycling the transaction object, but before initializing or executing it. For more info, see Using Single Transfer DMA.
WdfDmaTransactionSetSingleTransferRequirement requires DMA version 3. To select DMA version 3, set the WdmDmaVersionOverride member of WDF_DMA_ENABLER_CONFIG to 3.
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Minimum KMDF version | 1.19 |
Header | wdfdmatransaction.h (include Wdf.h) |
Library | Wdf01000.sys (see Framework Library Versioning.) |
IRQL | <=DISPATCH_LEVEL |