структура 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 (включая Wdm.h)

См. также раздел

IOMMU_DOMAIN_CREATE_EX

IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE