Condividi tramite


IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG struttura (wdm.h)

La struttura IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG contiene informazioni necessarie per configurare un allocatore logico.

Questa struttura viene usata da IOMMU_DOMAIN_CREATE_EX per creare un allocatore logico collegato alla creazione [IOMMU_DMA_DOMAIN].

Sintassi

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;

Members

LogicalAllocatorType

Valore IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE che indica il tipo di allocatore logico da creare.

BuddyAllocatorConfig

Fornisce informazioni di configurazione specifiche per HAL Buddy Allocator.

BuddyAllocatorConfig.AddressWidth

Fornisce la larghezza dell'indirizzo per la creazione dell'allocatore. I sistemi operativi a 32 bit sono limitati a una larghezza di 32 bit, mentre i sistemi operativi a 64 bit sono limitati a una larghezza di 63 bit. Quando si crea un dominio, la larghezza dell'indirizzo deve corrispondere alla larghezza massima degli indirizzi per i dispositivi da collegare.

Commenti

Con IOMMU_DOMAIN_CREATE_EX, un chiamante può scegliere di collegare un allocatore logico al dominio creato.

Quando si interagisce con tale dominio, un chiamante non deve tenere traccia dei mapping precedenti. L'allocatore logico assume invece la responsabilità di determinare l'indirizzo logico da usare durante il mapping di pagine fisiche al dominio proprietario. L'allocatore logico è anche responsabile del mantenimento dello stato per garantire che le collisioni di indirizzi logici non si verifichino.

Attualmente l'unico tipo di allocatore logico disponibile è l'allocatore Buddy. Questo allocatore privilegia gli indirizzi logici bassi e allocherà gli indirizzi logici in potenza di due limiti in corrispondenza o superiore a 4 KB. L'allocatore viene inoltre incrementato con una cache di valori di indirizzi logici gratuiti per migliorare le prestazioni della ricerca degli indirizzi gratuiti.

L'allocatore Buddy non consente l'allocazione esplicita degli indirizzi. La chiamata di IOMMU_MAP_IDENTITY_RANGE_EX o IOMMU_MAP_LOGICAL_RANGE_EX con un indirizzo esplicito fornito in un oggetto [IOMMU_DMA_DOMAIN* creato con un BuddyAllocator avrà esito negativo.

Requisiti

Requisito Valore
Server minimo supportato Windows Server 2022
Intestazione wdm.h (include Wdm.h)

Vedi anche

IOMMU_DOMAIN_CREATE_EX

IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE