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来注册 EvtDmaTransactionConfigureDmaChannelChannel 事件回调函数。

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

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

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

要求

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

另请参阅

WdfDmaTransactionDmaCompletedFinal

WdfDmaTransactionSetChannelConfigurationCallback