Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La structure IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG contient des informations requises pour configurer un allocateur logique.
Cette structure est utilisée par IOMMU_DOMAIN_CREATE_EX pour créer un allocateur logique attaché au [IOMMU_DMA_DOMAIN].
Syntaxe
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;
Membres
LogicalAllocatorType
Valeur IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE qui indique le type d’allocateur logique à créer.
BuddyAllocatorConfig
Fournit des informations de configuration spécifiques à HAL Buddy Allocator.
BuddyAllocatorConfig.AddressWidth
Fournit la largeur de l’adresse pour que l’allocateur soit créé. Les systèmes d’exploitation 32 bits sont limités à une largeur de 32 bits, tandis que les systèmes d’exploitation 64 bits sont limités à une largeur de 63 bits. Lors de la création d’un domaine, la largeur de l’adresse doit correspondre à la largeur d’adresse maximale prévue pour le ou les appareils attendus.
Remarques
Avec IOMMU_DOMAIN_CREATE_EX, un appelant peut choisir d’attacher un allocateur logique au domaine en cours de création.
Lors de l’interaction avec un tel domaine, un appelant n’a pas besoin de suivre les mappages précédents. Au lieu de cela, l’allocateur logique prend la responsabilité de déterminer l’adresse logique à utiliser lors du mappage de pages physiques au domaine propriétaire. L’allocateur logique est également responsable de la maintenance de l’état pour s’assurer que les collisions d’adresses logiques ne se produisent pas.
Actuellement, le seul type d’allocateur logique disponible est l’Allocator Buddy. Cet allocateur favorise les adresses logiques faibles et alloue des adresses logiques sur la puissance de deux limites à ou au-dessus de 4 Ko. L’allocateur est également augmenté avec un cache de valeurs d’adresses logiques gratuites pour améliorer les performances de la recherche d’adresses gratuites.
L’allocateur Buddy n’autorise pas l’allocation d’adresses explicite. L’appel IOMMU_MAP_IDENTITY_RANGE_EX ou IOMMU_MAP_LOGICAL_RANGE_EX avec une adresse explicite fournie sur un [IOMMU_DMA_DOMAIN* créé avec un BuddyAllocator échoue.
Exigences
| Exigence | Valeur |
|---|---|
| serveur minimum pris en charge | Windows Server 2022 |
| d’en-tête | wdm.h (include Wdm.h) |