Поделиться через


структура 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)

См. также

IOMMU_DOMAIN_CREATE_EX

IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE