WdfDmaTransactionSetImmediateExecution function

[Applies to KMDF only]

The WdfDmaTransactionSetImmediateExecution method marks the specified DMA transaction so that calls to WdfDmaTransactionExecute and WdfDmaTransactionAllocateResources initiate the transaction immediately or fail.

Syntax

void WdfDmaTransactionSetImmediateExecution(
  WDFDMATRANSACTION DmaTransaction,
  BOOLEAN           UseImmediateExecution
);

Parameters

DmaTransaction

A handle to a DMA transaction object to mark for immediate execution.

UseImmediateExecution

A Boolean value which, if TRUE, indicates that the transaction should execute immediately (or fail if resources are not available), and, if FALSE, indicates that the transaction should be queued for execution once DMA resources are available.

Return Value

This method does not return a value.

Remarks

Before calling WdfDmaTransactionSetImmediateExecution, the driver must initialize the transaction.

If the driver calls WdfDmaTransactionExecute or WdfDmaTransactionAllocateResources after calling WdfDmaTransactionSetImmediateExecution with UseImmediateExecution set to TRUE, and the resources needed for the request are unavailable, that method returns STATUS_INSUFFICIENT_RESOURCES. If the required resources are available, the framework claims them and initiates the call synchronously.

After the driver marks a transaction for immediate execution, the transaction remains marked as such until the driver calls WdfDmaTransactionRelease or clears the flag by calling WdfDmaTransactionSetImmediateExecution with UseImmediateExecution set to FALSE.

WdfDmaTransactionSetImmediateExecution requires DMA version 3. To select DMA version 3, set the WdmDmaVersionOverride member of WDF_DMA_ENABLER_CONFIG to 3.

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

Requirements

   
Minimum supported client 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

WdfDmaTransactionAllocateResources

WdfDmaTransactionExecute

WdfDmaTransactionRelease