WdfDmaTransactionSetImmediateExecution 函数 (wdfdmatransaction.h)

[仅适用于 KMDF]

WdfDmaTransactionSetImmediateExecution 方法标记指定的 DMA 事务,以便对 WdfDmaTransactionExecuteWdfDmaTransactionAllocateResources 的调用立即启动事务或失败。

语法

void WdfDmaTransactionSetImmediateExecution(
  [in] WDFDMATRANSACTION DmaTransaction,
  [in] BOOLEAN           UseImmediateExecution
);

参数

[in] DmaTransaction

要标记为立即执行的 DMA 事务对象的句柄。

[in] UseImmediateExecution

一个布尔值,如果为 TRUE,则指示事务应立即执行 (;如果资源) 不可用,则表示事务应立即执行;如果为 FALSE,则指示事务应在 DMA 资源可用后排队等待执行。

返回值

备注

在调用 WdfDmaTransactionSetImmediateExecution 之前,驱动程序必须初始化事务。

如果驱动程序在调用 WdfDmaTransactionSetImmediateExecution 后调用 WdfDmaTransactionExecute 或 WdfDmaTransactionAllocateResources,并且 UseImmediateExecution 设置为 TRUE,并且请求所需的资源不可用,该方法将返回STATUS_INSUFFICIENT_RESOURCES。 如果所需的资源可用,框架会声明这些资源,并同步启动调用。

在驱动程序将事务标记为立即执行之后,该事务将一直标记为这样,直到驱动程序调用 WdfDmaTransactionRelease 或通过调用 WdfDmaTransactionSetImmediateExecutionUseImmediateExecution 设置为 FALSE 来清除标志。

WdfDmaTransactionSetImmediateExecution 需要 DMA 版本 3。 若要选择 DMA 版本 3,请将 WDF_DMA_ENABLER_CONFIGWdmDmaVersionOverride 成员设置为 3。

如果驱动程序在早于 Windows 8 的操作系统上调用此方法,则框架的验证程序会报告错误。

要求

要求
最低受支持的客户端 Windows 8
目标平台 通用
最低 KMDF 版本 1.11
标头 wdfdmatransaction.h (包括 Wdf.h)
Library Wdf01000.sys (请参阅框架库 Versioning.)
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 DriverCreate (kmdf)

另请参阅

WdfDmaTransactionAllocateResources

WdfDmaTransactionExecute

WdfDmaTransactionRelease