WdfDmaTransactionSetTransferCompleteCallback method

[Applies to KMDF only]

The WdfDmaTransactionSetTransferCompleteCallback method registers a transfer completion event callback function for a system-mode DMA transaction.


void WdfDmaTransactionSetTransferCompleteCallback(
  [in]           WDFDMATRANSACTION                             DmaTransaction,
  [in, optional] PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine,
  [in, optional] PVOID                                         DmaCompletionContext


DmaTransaction [in]

A handle to an initialized DMA transaction object for which to set or clear the transfer completion callback.

DmaCompletionRoutine [in, optional]

A pointer to the driver's EvtDmaTransactionDmaTransferComplete event callback function, or NULL to clear a previously set callback function.

DmaCompletionContext [in, optional]

A pointer to a buffer containing the driver-specified context to be provided to the driver's EvtDmaTransactionDmaTransferComplete event callback function, or NULL.

Return value

This method does not return a value.


The driver calls this method to set a completion routine that the framework calls after the system DMA controller completes a transfer. The framework calls the driver's EvtDmaTransactionDmaTransferComplete callback once for each transfer in the transaction.

Typically from within an I/O queue event callback function, a driver performs the following steps, in this order:

  1. Calls WdfDmaTransactionInitializeUsingRequest, WdfDmaTransactionInitialize, or WdfDmaTransactionInitializeUsingOffset to initialize the transaction object.
  2. Calls WdfDmaTransactionSetTransferCompleteCallback on the transaction object.
  3. Calls WdfDmaTransactionExecute.

If the driver has specified an EvtDmaTransactionDmaTransferComplete event callback function by calling WdfDmaTransactionSetTransferCompleteCallback and the driver subsequently calls WdfDmaTransactionRelease, the callback is cleared.

WdfDmaTransactionSetTransferCompleteCallback can only be used with a DMA enabler that specifies a system-mode DMA profile.

If your driver calls this method on an operating system earlier than Windows 8, the framework's verifier reports an error.


Target platform


Minimum support

Windows 8

Minimum KMDF version



Wdfdmatransaction.h (include Wdf.h)


Wdf01000.sys (see Framework Library Versioning.)



DDI compliance rules


See also




Send comments about this topic to Microsoft