WDF_DMA_ENABLER_CONFIG 结构 (wdfdmaenabler.h)

[仅适用于 KMDF]

WDF_DMA_ENABLER_CONFIG 结构为 DMA 启用程序对象提供特征。

语法

typedef struct _WDF_DMA_ENABLER_CONFIG {
  ULONG                                    Size;
  WDF_DMA_PROFILE                          Profile;
  size_t                                   MaximumLength;
  PFN_WDF_DMA_ENABLER_FILL                 EvtDmaEnablerFill;
  PFN_WDF_DMA_ENABLER_FLUSH                EvtDmaEnablerFlush;
  PFN_WDF_DMA_ENABLER_DISABLE              EvtDmaEnablerDisable;
  PFN_WDF_DMA_ENABLER_ENABLE               EvtDmaEnablerEnable;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START EvtDmaEnablerSelfManagedIoStart;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP  EvtDmaEnablerSelfManagedIoStop;
  ULONG                                    AddressWidthOverride;
  ULONG                                    WdmDmaVersionOverride;
  ULONG                                    Flags;
} WDF_DMA_ENABLER_CONFIG, *PWDF_DMA_ENABLER_CONFIG;

成员

Size

此结构的大小(以字节为单位)。

Profile

一个WDF_DMA_PROFILE类型的值,用于标识将与 DMA 启用程序对象关联的总线主 DMA 操作的类型。

MaximumLength

设备可在单个 DMA 传输中处理的默认最大大小(以字节为单位)。 (驱动程序可以通过调用 WdfDmaTransactionSetMaximumLength.) 如果驱动程序必须在支持最多 16 个映射寄存器的 Microsoft Windows 操作系统版本上运行,则 MaximumLength 必须小于 65,536。

EvtDmaEnablerFill

指向驱动程序的 EvtDmaEnablerFill 事件回调函数的指针,或 NULL

EvtDmaEnablerFlush

指向驱动程序的 EvtDmaEnablerFlush 事件回调函数或 NULL 的指针。

EvtDmaEnablerDisable

指向驱动程序的 EvtDmaEnablerDisable 事件回调函数的指针,或 NULL

EvtDmaEnablerEnable

指向驱动程序的 EvtDmaEnable 事件回调函数的指针,或 NULL

EvtDmaEnablerSelfManagedIoStart

指向驱动程序的 EvtDmaEnablerSelfManagedIoStart 事件回调函数的指针,或 NULL

EvtDmaEnablerSelfManagedIoStop

指向驱动程序的 EvtDmaEnablerSelfManagedIoStop 事件回调函数的指针,或 NULL

AddressWidthOverride

设置为零以接受 配置文件中指定的地址宽度。 驱动程序可以通过将此成员设置为介于 24 和 63 之间的值来替代 配置文件 地址宽度。 如果驱动程序指定系统模式 DMA 配置文件, AddressWidthOverride 必须为零。 如果驱动程序指定 32 位 DMA 配置文件, AddressWidthOverride 不能大于 32。 AddressWidthOverride 成员在 1.11 版及更高版本的 KMDF 中可用。 有关详细信息,请参阅 备注

WdmDmaVersionOverride

设置为零以接受默认 DMA 版本。 若要请求 DMA 版本 3,请将 设置为 3。 WdmDmaVersionOverride 成员在 1.11 版和更高版本的 KMDF 中可用。 DMA 版本 3 从 Windows 8 开始提供。

Flags

WDF_DMA_ENABLER_CONFIG_FLAGS枚举中的一个或多个值的按位 OR。 Flags 成员在 1.11 版和更高版本的 KMDF 中可用。

注解

WDF_DMA_ENABLER_CONFIG 结构用作 WdfDmaEnablerCreate 方法的输入参数。

驱动程序必须调用 WDF_DMA_ENABLER_CONFIG_INIT 才能初始化 WDF_DMA_ENABLER_CONFIG 结构。

在 Windows 8 及更高版本中,当驱动程序为 AddressWidthOverride 提供非零值时,框架会请求 DMA 版本 3 并将 AddressWidthOverride 值传递到 HAL。

在 Windows 7 和 Windows Vista 上,当驱动程序为 AddressWidthOverride 提供非零值时,框架将使用 32 位或 24 位 DMA。 例如,如果驱动程序指定 64 位配置文件并提供 32 的 AddressWidthOverride ,则框架将使用 32 位 DMA。 如果驱动程序指定 32 位配置文件并提供 24 的 AddressWidthOverride ,则框架将使用 24 位 DMA。

要求

要求
最低 KMDF 版本 1.0
标头 wdfdmaenabler.h (包括 Wdf.h)

另请参阅

EvtDmaEnablerDisable

EvtDmaEnablerEnable

EvtDmaEnablerFill

EvtDmaEnablerFlush

EvtDmaEnablerSelfManagedIoStart

EvtDmaEnablerSelfManagedIoStop

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_PROFILE

WdfDmaEnablerCreate

WdfDmaTransactionSetMaximumLength