IOMMU_MAP_LOGICAL_RANGE_EX fonction de rappel (wdm.h)
Mappe l’espace d’adressage physique dans l’espace d’adressage logique d’un IOMMU_DMA_DOMAIN.
Syntaxe
IOMMU_MAP_LOGICAL_RANGE_EX IommuMapLogicalRangeEx;
NTSTATUS IommuMapLogicalRangeEx(
[in] PIOMMU_DMA_DOMAIN Domain,
[in] ULONG Permissions,
[in] PIOMMU_MAP_PHYSICAL_ADDRESS PhysicalAddressToMap,
[in, optional] PIOMMU_DMA_LOGICAL_ADDRESS ExplicitLogicalAddress,
[in, optional] PIOMMU_DMA_LOGICAL_ADDRESS MinLogicalAddress,
[in, optional] PIOMMU_DMA_LOGICAL_ADDRESS MaxLogicalAddress,
[out] PIOMMU_DMA_LOGICAL_ADDRESS LogicalAddressOut
)
{...}
Paramètres
[in] Domain
Pointeur vers le IOMMU_DMA_DOMAIN auquel l’adresse logique mappée appartiendra. Le domaine doit être de type DomainTypeTranslate. Pour plus d’informations sur les types de domaine, consultez IOMMU_DMA_DOMAIN_TYPE.
[in] Permissions
Champ de bits représentant les autorisations à définir pour la plage en cours de mappage. Consultez Remarques pour connaître les bits d’autorisation disponibles.
[in] PhysicalAddressToMap
Le IOMMU_MAP_PHYSICAL_ADDRESS qui sera mappé au domaine.
[in, optional] ExplicitLogicalAddress
Adresse logique de domaine à laquelle l’adresse physique doit être mappée. Si le domaine n’a pas été créé avec un allocateur logique inscrit, ce champ est obligatoire. Si le domaine a été créé avec un allocateur logique inscrit qui ne prend pas en charge l’allocation d’adresses logiques explicites, ce champ doit avoir la valeur NULL.
[in, optional] MinLogicalAddress
Adresse logique autorisée minimale (inclusive) à laquelle l’adresse physique doit être mappée. Si le domaine n’a pas été créé avec un allocateur logique inscrit, ce champ est ignoré.
[in, optional] MaxLogicalAddress
Adresse logique autorisée maximale (inclusive) à laquelle l’adresse physique doit être mappée. Si le domaine n’a pas été créé avec un allocateur logique inscrit, ce champ est ignoré.
[out] LogicalAddressOut
Retourne l’adresse logique résultante du mappage.
Valeur retournée
STATUS_SUCCESS si l’opération réussit. Les valeurs de retour d’erreur possibles incluent les codes status suivants.
Code de retour | Description |
---|---|
STATUS_INVALID_PARAMETER_1 | Le domaine fourni n’est pas de type DomainTypeTranslate. |
STATUS_INVALID_PARAMETER_3 | Le IOMMU_MAP_PHYSICAL_ADDRESS fourni ne représente pas la mémoire physique alignée sur la page et dont la taille est un multiple de PAGE_SIZE. |
STATUS_INVALID_PARAMETER_4 | L’adresse ExplicitLogicalAddress fournie n’est pas alignée sur la page. |
STATUS_INVALID_PARAMETER_MIX | Les adresses logiques minimales et maximales fournies n’ont pas pu être satisfaites. |
STATUS_IN_USE | ExplicitLogicalAddress est déjà mappé ou partiellement mappé. |
STATUS_NOT_SUPPORTED | Une adresse ExpliciteLogicalAddress a été fournie pour un domaine avec un allocateur logique qui n’autorise pas l’allocation d’adresses logiques explicites. Ou une adresse ExpliciteLogicalAddress n’a pas été fournie pour un domaine sans allocateur logique. |
Pour plus d’informations, consultez Valeurs NTSTATUS.
Remarques
Pour annuler le mappage de l’adresse logique créée par IOMMU_MAP_LOGICAL_RANGE_EX, utilisez IOMMU_UNMAP_LOGICAL_RANGE ; il n’existe actuellement aucun équivalent Ex pour le démappage de plage d’adresses logique.
Le champ autorisations est un champ de bits qui décrit les autorisations d’accès pour les pages à mapper.
Les bits sont définis comme suit :
Bit 0 = Read Access
Bit 1 = Write Access
Bits 31-2 = Reserved (0)
Configuration requise
Condition requise | Valeur |
---|---|
Serveur minimal pris en charge | Windows Server 2022 |
En-tête | wdm.h (inclure Wdm.h) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour