WdfDmaTransactionSetTransferCompleteCallback 函数 (wdfdmatransaction.h)

[仅适用于 KMDF]

WdfDmaTransactionSetTransferCompleteCallback 方法为系统模式 DMA 事务注册传输完成事件回调函数。

语法

void WdfDmaTransactionSetTransferCompleteCallback(
  [in]           WDFDMATRANSACTION                             DmaTransaction,
  [in, optional] PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine,
  [in, optional] PVOID                                         DmaCompletionContext
);

参数

[in] DmaTransaction

要为其设置或清除传输完成回调的已初始化 DMA 事务对象的句柄。

[in, optional] DmaCompletionRoutine

指向驱动程序的 EvtDmaTransactionDmaTransferComplete 事件回调函数的指针,或 NULL,用于清除以前设置的回调函数。

[in, optional] DmaCompletionContext

指向缓冲区的指针,该缓冲区包含要提供给驱动程序的 EvtDmaTransactionDmaTransferComplete 事件回调函数的驱动程序指定上下文,或 NULL。

返回值

备注

驱动程序调用此方法以设置框架在系统 DMA 控制器完成传输后调用的完成例程。 框架对事务中的每个传输调用驱动程序的 EvtDmaTransactionDmaTransferComplete 回调一次。

驱动程序通常从 I/O 队列事件回调函数中按以下顺序执行以下步骤:

  1. 调用 WdfDmaTransactionInitializeUsingRequestWdfDmaTransactionInitializeWdfDmaTransactionInitializeUsingOffset 来初始化事务对象。
  2. 对事务对象调用 WdfDmaTransactionSetTransferCompleteCallback
  3. 调用 WdfDmaTransactionExecute
如果驱动程序已通过调用 WdfDmaTransactionSetTransferCompleteCallback 指定了 EvtDmaTransactionDmaTransferComplete 事件回调函数,并且驱动程序随后调用 WdfDmaTransactionRelease,则会清除回调。

WdfDmaTransactionSetTransferCompleteCallback 只能与指定系统模式 DMA 配置文件的 DMA 启用程序一起使用。

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

要求

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

另请参阅

EvtDmaTransactionDmaTransferComplete

WdfDmaTransactionRelease