[Applies to KMDF only]
The WdfDmaTransactionSetTransferCompleteCallback method registers a transfer completion event callback function for a system-mode DMA transaction.
void WdfDmaTransactionSetTransferCompleteCallback( WDFDMATRANSACTION DmaTransaction, PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine, PVOID DmaCompletionContext );
A handle to an initialized DMA transaction object for which to set or clear the transfer completion callback.
A pointer to the driver's EvtDmaTransactionDmaTransferComplete event callback function, or NULL to clear a previously set callback function.
A pointer to a buffer containing the driver-specified context to be provided to the driver's EvtDmaTransactionDmaTransferComplete event callback function, or NULL.
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:
- Calls WdfDmaTransactionInitializeUsingRequest, WdfDmaTransactionInitialize, or WdfDmaTransactionInitializeUsingOffset to initialize the transaction object.
- Calls WdfDmaTransactionSetTransferCompleteCallback on the transaction object.
- Calls WdfDmaTransactionExecute.
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.
|Minimum supported client||Windows 8|
|Minimum KMDF version||1.11|
|Header||wdfdmatransaction.h (include Wdf.h)|
|Library||Wdf01000.sys (see Framework Library Versioning.)|
|DDI compliance rules||DriverCreate|