WdfDmaTransactionRelease 函数 (wdfdmatransaction.h)
[仅适用于 KMDF]
WdfDmaTransactionRelease 方法终止指定的 DMA 事务,而不删除关联的 DMA 事务对象。
语法
NTSTATUS WdfDmaTransactionRelease(
[in] WDFDMATRANSACTION DmaTransaction
);
参数
[in] DmaTransaction
驱动程序从上一次调用 WdfDmaTransactionCreate 获取的 DMA 事务对象的句柄。
返回值
如果操作成功,WdfDmaTransactionRelease 将返回STATUS_SUCCESS。 否则,方法可能会返回以下值:
返回代码 | 说明 |
---|---|
|
驱动程序已释放或删除 DmaTransaction 参数指定的事务对象。 |
此方法还可能返回其他 NTSTATUS 值。
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
注解
WdfDmaTransactionRelease 方法刷新传输缓冲区并释放与 DMA 事务关联的所有系统资源。 事务对象不会被删除,可以重复使用。 有关重用事务对象的详细信息,请参阅 重用 DMA 事务对象。
如果 WdfDmaTransactionInitializeXxx 返回成功,但 WdfDmaTransactionExecute 返回错误值,则驱动程序必须调用 WdfDmaTransactionRelease。
示例
下面的代码示例终止指定的 DMA 事务对象表示的 DMA 事务,但它不会删除 DMA 事务对象。
NTSTATUS status;
status = WdfDmaTransactionRelease(dmaTransaction);
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
标头 | wdfdmatransaction.h (包括 Wdf.h) |
Library | Wdf01000.sys (请参阅框架库版本控制.) |
IRQL | <=DISPATCH_LEVEL |
DDI 符合性规则 | DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) |