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) |