WdfDmaTransactionSetChannelConfigurationCallback function

[Applies to KMDF only]

The WdfDmaTransactionSetChannelConfigurationCallback method registers a channel configuration event callback function for a system-mode DMA transaction.

Syntax

void WdfDmaTransactionSetChannelConfigurationCallback(
  WDFDMATRANSACTION                             DmaTransaction,
  PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine,
  PVOID                                         ConfigureContext
);

Parameters

DmaTransaction

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

ConfigureRoutine

A pointer to the driver's EvtDmaTransactionConfigureDmaChannel event callback function, or NULL to clear it.

ConfigureContext

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

Return Value

This method does not return a value.

Remarks

This method allows the driver to customize the adapter configuration before programming the system DMA controller.

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 WdfDmaTransactionSetChannelConfigurationCallback on the transaction object.
  3. Calls WdfDmaTransactionExecute.
If the driver has specified an EvtDmaTransactionConfigureDmaChannel event callback function by calling WdfDmaTransactionSetChannelConfigurationCallback and the driver subsequently calls WdfDmaTransactionRelease, the callback is cleared.

WdfDmaTransactionSetChannelConfigurationCallback must 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.

Requirements

   
Windows version Windows 8
Target Platform Universal
Minimum KMDF version 1.11
Header wdfdmatransaction.h (include Wdf.h)
Library Wdf01000.sys (see Framework Library Versioning.)
IRQL "<=DISPATCH_LEVEL"
DDI compliance rules DriverCreate

See Also

EvtDmaTransactionConfigureDmaChannel

WdfDmaTransactionRelease