DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION 结构 (wdm.h)

定义一个配置,该配置在创建公共缓冲区时进一步描述约束和功能。 驱动程序可以在 CreateCommonBufferFromMdl 回调例程中提供DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION结构的数组。

语法

typedef struct _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION {
  DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE ConfigType;
  union {
    struct {
      PHYSICAL_ADDRESS MinimumAddress;
      PHYSICAL_ADDRESS MaximumAddress;
    } LogicalAddressLimits;
    struct {
      ULONGLONG Offset;
      ULONG     Length;
    } SubSection;
    DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE HardwareAccessType;
    ULONGLONG                                            Reserved[4];
  };
} DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION, *PDMA_COMMON_BUFFER_EXTENDED_CONFIGURATION;

成员

ConfigType

一个DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE类型的值,指示此实例表示的常见缓冲区扩展配置的类型。

LogicalAddressLimits

ConfigTypeCommonBufferConfigTypeLogicalAddressLimits 时,描述所创建的通用缓冲区的逻辑地址限制。

LogicalAddressLimits.MinimumAddress

提供 (非独占) 所创建的通用缓冲区的最小起始逻辑地址。

LogicalAddressLimits.MaximumAddress

提供所创建公共缓冲区 (非独占) 最大最终逻辑地址。

SubSection

ConfigTypeCommonBufferConfigTypeSubSection 时,描述应用于支持所创建公共缓冲区的后备 MDL 中的子节。

子节必须仅包含在 MDL 链中的单个 MDL 中。

SubSection.Offset

提供 MDL 中的偏移量以指示公共缓冲区的起始地址。 必须与页面对齐。

SubSection.Length

提供通用缓冲区子部分的长度。 必须与页面对齐。

HardwareAccessType

ConfigTypeCommonBufferConfigTypeHardwareAccessPermissions 时,这是一个 DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE类型的值,用于描述所创建公共缓冲区的硬件访问权限。

如果在系统上不能使用访问类型,则常见缓冲区创建失败。 仅当 DMA 适配器使用 DMA 重新映射时,才允许 ReadOnlyWriteOnly

Reserved[4]

此字段未使用。

注解

扩展配置是 CreateCommonBufferFromMdl 回调例程的可选参数。

如果未提供扩展配置,则常见的缓冲区创建使用整个 MDL 作为后备内存,最小逻辑地址为零,最大逻辑地址由使用的 DMA_ADAPTER 定义。

要求

要求
最低受支持的服务器 Windows Server 2022
标头 wdm.h

另请参阅

DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE 枚举

DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE 枚举

PCREATE_COMMON_BUFFER_FROM_MDL 回调例程