IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG-Struktur (wdm.h)

Die IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG-Struktur enthält Informationen, die zum Konfigurieren einer logischen Zuweisung erforderlich sind.

Diese Struktur wird von IOMMU_DOMAIN_CREATE_EX verwendet, um eine logische Zuweisung zu erstellen, die an die erstellte [IOMMU_DMA_DOMAIN] angefügt ist.

Syntax

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;

Member

LogicalAllocatorType

Ein IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE Wert, der den Typ der zu erstellenden logischen Zuweisung angibt.

BuddyAllocatorConfig

Stellt spezifische Konfigurationsinformationen für den HAL Buddy Allocator bereit.

BuddyAllocatorConfig.AddressWidth

Gibt die Adressbreite für die zu erstellende Zuweisung an. 32-Bit-Betriebssysteme sind auf eine Breite von 32 Bit beschränkt, während 64-Bit-Betriebssysteme auf eine Breite von 63 Bit beschränkt sind. Beim Erstellen einer Domäne sollte die Adressbreite der maximalen Adressbreite für die Geräte entsprechen, die angefügt werden sollen.

Hinweise

Bei IOMMU_DOMAIN_CREATE_EX kann ein Aufrufer entscheiden, eine logische Zuweisung an die zu erstellende Domäne anzufügen.

Bei der Interaktion mit einer solchen Domäne muss ein Aufrufer keine vorherigen Zuordnungen nachverfolgen. Stattdessen übernimmt die logische Zuweisung die Verantwortung für die Bestimmung der logischen Adresse, die beim Zuordnen physischer Seiten zur besitzenden Domäne verwendet werden soll. Die logische Zuweisung ist auch für die Aufrechterhaltung des Zustands verantwortlich, um sicherzustellen, dass keine logischen Adresskonflikte auftreten.

Der einzige verfügbare logische Zuweisungstyp ist derzeit der Buddy Allocator. Diese Zuweisung bevorzugt niedrige logische Adressen und ordnet logische Adressen bei einer Leistung von zwei Grenzen mit oder über 4 KB zu. Die Zuweisung wird auch um einen Cache mit kostenlosen logischen Adresswerten erweitert, um die Leistung der kostenlosen Adresssuche zu verbessern.

Die Buddy-Zuweisung lässt keine explizite Adresszuordnung zu. Das Aufrufen IOMMU_MAP_IDENTITY_RANGE_EX oder IOMMU_MAP_LOGICAL_RANGE_EX mit einer expliziten Adresse, die für eine [IOMMU_DMA_DOMAIN* angegeben ist, die mit einem BuddyAllocator erstellt wurde, schlägt fehl.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Server) Windows Server 2022
Kopfzeile wdm.h (wdm.h einschließen)

Weitere Informationen

IOMMU_DOMAIN_CREATE_EX

IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE