структура 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". Этот распределитель предпочитает низкие логические адреса и выделяет логические адреса на мощность двух границ в 4 КБ или выше. Распределитель также дополняется кэшем значений свободного логического адреса, чтобы повысить производительность поиска свободных адресов.
Приложение Buddy Allocator не разрешает явное выделение адресов. Вызов IOMMU_MAP_IDENTITY_RANGE_EX или IOMMU_MAP_LOGICAL_RANGE_EX с явным адресом, предоставленным на [IOMMU_DMA_DOMAIN* созданном с помощью BuddyAllocator, завершится ошибкой.
Требования
Требование | Ценность |
---|---|
минимальный поддерживаемый сервер | Windows Server 2022 |
заголовка | wdm.h (include Wdm.h) |