WdfDmaTransactionRelease 函数 (wdfdmatransaction.h)

[仅适用于 KMDF]

WdfDmaTransactionRelease 方法终止指定的 DMA 事务,而无需删除关联的 DMA 事务对象。

语法

NTSTATUS WdfDmaTransactionRelease(
  [in] WDFDMATRANSACTION DmaTransaction
);

参数

[in] DmaTransaction

驱动程序从上一次调用 WdfDmaTransactionCreate获取的 DMA 事务对象的句柄。

返回值

WdfDmaTransactionRelease 如果作成功,则返回STATUS_SUCCESS。 否则,该方法可能会返回以下值:

返回代码 说明
STATUS_INVALID_DEVICE_STATE
驱动程序已释放或删除指定 DmaTransaction 参数的事务对象。
 

此方法还可以 返回其他NTSTATUS 值。

如果驱动程序提供无效的对象句柄,则会发生 bug 检查。

注解

WdfDmaTransactionRelease 方法刷新传输缓冲区并释放与 DMA 事务关联的所有系统资源。 事务对象不会被删除,可以重复使用。 有关重用事务对象的详细信息,请参阅 重用 DMA 事务对象

如果 WdfDmaTransactionInitializeXxx 返回成功,但 WdfDmaTransactionExecute 返回错误值,驱动程序必须调用 WdfDmaTransactionRelease

例子

下面的代码示例终止指定的 DMA 事务对象所表示的 DMA 事务,但不删除 DMA 事务对象。

NTSTATUS  status;

status = WdfDmaTransactionRelease(dmaTransaction);

要求

要求 价值
目标平台 普遍
最低 KMDF 版本 1.0
标头 wdfdmatransaction.h (包括 Wdf.h)
图书馆 Wdf01000.sys(请参阅框架库版本控制。
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf)

另请参阅

WdfDmaTransactionCreate