IOMMU_MAP_RESERVED_LOGICAL_RANGE fonction de rappel (wdm.h)

Mappe une plage logique réservée.

Contrairement à IOMMU_MAP_LOGICAL_RANGE_EX, il est garanti de ne pas effectuer d’allocations de mémoire, car elles sont supposées avoir déjà été effectuées plus tôt avec IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE.

Syntaxe

IOMMU_MAP_RESERVED_LOGICAL_RANGE IommuMapReservedLogicalRange;

NTSTATUS IommuMapReservedLogicalRange(
  [in, out] PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN LogicalAddressToken,
  [in]      SIZE_T Offset,
  [in]      ULONG Permissions,
  [in]      PIOMMU_MAP_PHYSICAL_ADDRESS PhysicalAddressToMap,
  [out]     PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT MappedSegment
)
{...}

Paramètres

[in, out] LogicalAddressToken

Le IOMMU_DMA_LOGICAL_ADDRESS_TOKEN à mapper.

[in] Offset

Décalage, en octets, dans le jeton d’adresse logique, représentant l’adresse logique de base à mapper.

[in] Permissions

Champ de bits représentant les autorisations à définir pour la plage en cours de mappage. Consultez Les notes pour connaître les bits d’autorisation disponibles.

[in] PhysicalAddressToMap

Le IOMMU_MAP_PHYSICAL_ADDRESS qui sera mappé au domaine.

[out] MappedSegment

Retourne le IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT représentant un segment du jeton d’adresse logique qui est maintenant mappé.

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_2 Le décalage fourni n’est pas aligné sur la page.
STATUS_INVALID_PARAMETER_4 L’adresse physique fournie n’est pas alignée sur la page et/ou n’est pas un nombre entier de pages.
STATUS_RESOURCE_IN_USE La plage d’adresses logiques représentée dans le jeton d’adresse logique est déjà entièrement ou partiellement mappée.
STATUS_UNSUCCESSFUL Le jeton d’adresse logique est en cours de suppression.

Pour plus d’informations, consultez Valeurs NTSTATUS.

Remarques

Un segment mappé de jeton d’adresse logique peut être démapé via IOMMU_UNMAP_RESERVED_LOGICAL_RANGE.

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 (include Wdm.h)

Voir aussi

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE

IOMMU_MAP_PHYSICAL_ADDRESS

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT