WdfDmaTransactionSetImmediateExecution 函数 (wdfdmatransaction.h)
[仅适用于 KMDF]
WdfDmaTransactionSetImmediateExecution 方法标记指定的 DMA 事务,以便对 WdfDmaTransactionExecute 和 WdfDmaTransactionAllocateResources 的调用立即启动事务或失败。
语法
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 或通过调用 WdfDmaTransactionSetImmediateExecution 将 UseImmediateExecution 设置为 FALSE 来清除标志。
WdfDmaTransactionSetImmediateExecution 需要 DMA 版本 3。 若要选择 DMA 版本 3,请将 WDF_DMA_ENABLER_CONFIG 的 WdmDmaVersionOverride 成员设置为 3。
如果驱动程序在早于 Windows 8 的操作系统上调用此方法,则框架的验证程序会报告错误。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
目标平台 | 通用 |
最低 KMDF 版本 | 1.11 |
标头 | wdfdmatransaction.h (包括 Wdf.h) |
Library | Wdf01000.sys (请参阅框架库 Versioning.) |
IRQL | <=DISPATCH_LEVEL |
DDI 符合性规则 | DriverCreate (kmdf) |