[仅适用于 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
指定 DMA 传输作方向的 WDF_DMA_DIRECTION类型值。
[in] SgList
指向 SCATTER_GATHER_LIST 结构的指针。
返回值
如果成功启动 DMA 传输作,则 EvtProgramDma 回调函数必须返回 TRUE。 否则,此回调函数必须返回 FALSE。 但是,框架当前忽略返回值。
注解
驱动程序通过调用 WdfDmaTransactionInitializeUsingRequest 或 WdfDmaTransactionInitialize注册 EvtProgramDma 事件回调函数。
当 DMA 传输 可用时,框架将调用驱动程序的 EvtProgramDma 事件回调函数。 回调函数必须对硬件进行编程才能启动传输。
在 WdfDmaTransactionDmaCompletedXxx 返回 TRUE 之前,驱动程序不得作与事务关联的数据缓冲区。
对于单个数据包传输,SgList 参数点包含单个元素的散点/收集列表。
有关此回调函数的详细信息,请参阅 编程 DMA 硬件。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
最低 KMDF 版本 | 1.0 |
标头 | wdfdmatransaction.h (包括 Wdf.h) |
IRQL | DISPATCH_LEVEL |