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

See also

WdfDmaTransactionCreate

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest