EVT_WDF_PROGRAM_DMA回调函数 (wdfdmatransaction.h)

[仅适用于 KMDF]

基于框架的驱动程序的 EvtProgramDma 事件回调函数对指定设备进行编程以执行 DMA 传输操作。

语法

EVT_WDF_PROGRAM_DMA EvtWdfProgramDma;

BOOLEAN EvtWdfProgramDma(
  [in] WDFDMATRANSACTION Transaction,
  [in] WDFDEVICE Device,
  [in] WDFCONTEXT Context,
  [in] WDF_DMA_DIRECTION Direction,
  [in] PSCATTER_GATHER_LIST SgList
)
{...}

参数

[in] Transaction

表示当前 DMA 事务的 DMA 事务对象的句柄。

[in] Device

框架设备对象的句柄。

[in] Context

驱动程序在对 WdfDmaTransactionExecute 的上一次调用中指定的上下文指针。

[in] Direction

一个WDF_DMA_DIRECTION类型的值,该值指定 DMA 传输操作的方向。

[in] SgList

指向 SCATTER_GATHER_LIST 结构的指针。

返回值

如果 EvtProgramDma 回调函数成功启动 DMA 传输操作,则必须返回 TRUE。 否则,此回调函数必须返回 FALSE。 但是,框架当前忽略返回值。

注解

驱动程序通过调用 WdfDmaTransactionInitializeUsingRequestWdfDmaTransactionInitialize 注册 EvtProgramDma 事件回调函数。

DMA 传输可用时,框架会调用驱动程序的 EvtProgramDma 事件回调函数。 回调函数必须对硬件进行编程才能启动传输。

WdfDmaTransactionDmaCompletedXxx 返回 TRUE 之前,驱动程序不得操作与事务关联的数据缓冲区。

对于单数据包传输, SgList 参数指向的散点/收集列表包含单个元素。

有关此回调函数的详细信息,请参阅 编程 DMA 硬件

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
标头 wdfdmatransaction.h (包括 Wdf.h)
IRQL DISPATCH_LEVEL

另请参阅

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest