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 Allocator 的特定組態資訊。
BuddyAllocatorConfig.AddressWidth
提供要建立配置器的位址寬度。 32 位操作系統的寬度限制為32位,而64位操作系統的寬度限制為63位。 建立網域時,位址寬度應該對應到裝置的位址寬度上限, (預期附加的) 。
備註
透過 IOMMU_DOMAIN_CREATE_EX,呼叫端可以選擇將邏輯配置器附加至所建立的網域。
與這類網域互動時,呼叫端不需要追蹤先前的對應。 相反地,邏輯配置器會負責判斷將實體頁面對應至擁有網域時要使用的邏輯位址。 邏輯配置器也負責維護狀態,以確保不會發生邏輯位址衝突。
目前唯一可用的邏輯配置器類型是 Buddy Allocator。 此配置器偏好低邏輯位址,且會在兩個界限的乘冪上配置邏輯位址,且位於或高於 4KB。 配置器也會使用可用邏輯位址值的快取來增強,以改善可用位址查閱的效能。
Buddy Allocator 不允許明確位址配置。 呼叫 IOMMU_MAP_IDENTITY_RANGE_EX 或 IOMMU_MAP_LOGICAL_RANGE_EX 時,會失敗,並在以 BuddyAllocator 建立的 [IOMMU_DMA_DOMAIN* 上提供明確的位址。
規格需求
需求 | 值 |
---|---|
最低支援的伺服器 | Windows Server 2022 |
標頭 | wdm.h (包含 Wdm.h) |