IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG结构 (wdm.h)

IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG 结构包含配置逻辑分配器所需的信息。

IOMMU_DOMAIN_CREATE_EX 使用此结构来创建附加到创建的 [IOMMU_DMA_DOMAIN] 的逻辑分配器。

语法

typedef struct _IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG {
  IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE LogicalAllocatorType;
  union {
    struct {
      ULONG AddressWidth;
    } BuddyAllocatorConfig;
  };
} IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG, *PIOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG;

成员

LogicalAllocatorType

一个 IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE 值,指示要创建的逻辑分配器的类型。

BuddyAllocatorConfig

提供特定于 HAL Buddy 分配器的配置信息。

BuddyAllocatorConfig.AddressWidth

提供要创建的分配器的地址宽度。 32 位作系统的宽度限制为 32 位,而 64 位作系统的宽度限制为 63 位。 创建域时,地址宽度应对应于应附加的设备的最大地址宽度。

言论

使用 IOMMU_DOMAIN_CREATE_EX,调用方可以选择将逻辑分配器附加到所创建的域。

与此类域交互时,调用方无需跟踪以前的映射。 相反,逻辑分配器负责确定在将物理页映射到拥有域时要使用的逻辑地址。 逻辑分配器还负责维护状态,以确保不会发生逻辑地址冲突。

目前唯一可用的逻辑分配器类型是 Buddy 分配器。 此分配器优先于低逻辑地址,并将在两个边界的幂上分配逻辑地址(以 4KB 以上为 4KB)。 分配器还使用可用逻辑地址值的缓存进行扩充,以提高免费地址查找的性能。

Buddy 分配器不允许显式分配地址。 调用 IOMMU_MAP_IDENTITY_RANGE_EXIOMMU_MAP_LOGICAL_RANGE_EX 的 [IOMMU_DMA_DOMAIN* 上使用 BuddyAllocator 创建的显式地址将失败。

要求

要求 价值
支持的最低服务器 Windows Server 2022
标头 wdm.h (包括 Wdm.h)

另请参阅

IOMMU_DOMAIN_CREATE_EX

IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE