EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL回调函数 (wdfdmatransaction.h)

[仅适用于 KMDF]

驱动程序的 EvtDmaTransactionConfigureDmaChannel 事件回调函数为系统模式 DMA 启用程序配置 DMA 适配器。

语法

EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL EvtWdfDmaTransactionConfigureDmaChannel;

BOOLEAN EvtWdfDmaTransactionConfigureDmaChannel(
  [in]           WDFDMATRANSACTION DmaTransaction,
  [in]           WDFDEVICE Device,
  [in]           PVOID Context,
  [in, optional] PMDL Mdl,
  [in]           size_t Offset,
  [in]           size_t Length
)
{...}

参数

[in] DmaTransaction

表示正在执行的事务的 DMA 事务对象的句柄。

[in] Device

驱动程序在调用 WdfDmaTransactionCreate 时指定的框架设备对象的句柄。

[in] Context

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

[in, optional] Mdl

指向单个内存描述符列表的指针 (描述当前传输关联的缓冲区的 MDL) 或 MDL 链;如果上次传输已完成并且正在释放适配器,则为 NULL。

[in] Offset

当前传输开始的 Mdl 参数中指定的缓冲区的字节偏移量。

[in] Length

当前传输中传输的字节数。

返回值

如果 EvtDmaTransactionConfigureDmaChannel 回调函数成功配置 DMA 通道,则返回 TRUE。 如果此回调函数返回 FALSE,则框架将停止事务,并且不调用 EvtProgramDma

注解

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

在分配适配器通道之后,但在映射传输并调用 EvtProgramDma 之前,框架为事务中的每个系统配置文件 DMA 传输调用一次 EvtDmaTransactionConfigureDmaChannel

驱动程序可以使用 EvtDmaTransactionConfigureDmaChannel 回调为 DMA 适配器设置任何自定义编程,然后再映射传输。

如果驱动程序在配置通道时遇到错误,可以通过调用 WdfDmaTransactionDmaCompletedFinal 并在必要时完成请求来停止 DMA 传输。 然后,驱动程序应从此回调函数返回 FALSE。

要求

要求
最低受支持的客户端 Windows 8
目标平台 通用
最低 KMDF 版本 1.11
标头 wdfdmatransaction.h (包括 Wdf.h)
IRQL DISPATCH_LEVEL

另请参阅

WdfDmaTransactionDmaCompletedFinal

WdfDmaTransactionSetChannelConfigurationCallback