Partager via


Fonction MmMapIoSpace (wdm.h)

La routine MmMapIoSpace mappe la plage d’adresses physiques donnée à l’espace système non paginé.

Syntaxe

PVOID MmMapIoSpace(
  [in] PHYSICAL_ADDRESS    PhysicalAddress,
  [in] SIZE_T              NumberOfBytes,
  [in] MEMORY_CACHING_TYPE CacheType
);

Paramètres

[in] PhysicalAddress

Spécifie l’adresse physique de début de la plage d’E/S à mapper.

[in] NumberOfBytes

Spécifie une valeur supérieure à zéro, indiquant le nombre d’octets à mapper.

[in] CacheType

Spécifie une valeur MEMORY_CACHING_TYPE , qui indique l’attribut de cache à utiliser pour mapper la plage d’adresses physiques.

Valeur retournée

MmMapIoSpace retourne l’adresse virtuelle de base qui mappe l’adresse physique de base pour la plage. Si l’espace pour le mappage de la plage est insuffisant, il retourne NULL.

Remarques

Un pilote doit appeler cette routine au démarrage de l’appareil s’il reçoit des ressources traduites de type CmResourceTypeMemory dans une structure CM_PARTIAL_RESOURCE_DESCRIPTOR . MmMapIoSpace mappe l’adresse physique retournée dans la liste des ressources à une adresse logique via laquelle le pilote peut accéder aux registres d’appareils.

MmMapIoSpace ne doit être utilisé qu’avec les pages verrouillées (elles appartiennent aux pages verrouillées d’un espace MDL ou E/S), sinon le propriétaire de la mémoire pourrait la libérer (ou la mémoire peut être paginée in/out, etc.).

Par exemple, les pilotes d’appareils PIO qui allouent des mémoires tampons d’E/S à long terme peuvent appeler cette routine pour rendre ces mémoires tampons accessibles ou pour rendre la mémoire de l’appareil accessible.

Pour plus d’informations sur l’utilisation de cette routine, consultez Mappage d’adresses Bus-Relative à des adresses virtuelles.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <=DISPATCH_LEVEL

Voir aussi

MmAllocateContiguousMemory

MmAllocateNonCachedMemory

MmMapLockedPages

MmUnmapIoSpace