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_EX 或 IOMMU_MAP_LOGICAL_RANGE_EX 的 [IOMMU_DMA_DOMAIN* 上使用 BuddyAllocator 创建的显式地址将失败。
要求
要求 | 价值 |
---|---|
支持的最低服务器 | Windows Server 2022 |
标头 | wdm.h (包括 Wdm.h) |