Partager via


MmMapIoSpace, fonction (wdm.h)

La routine MmMapIoSpace mappe la plage d’adresses physique 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épart 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 physique.

Valeur de retour

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 par le biais de laquelle le pilote peut accéder aux registres d’appareils.

mmMapIoSpace ne doit être utilisé que avec des pages verrouillées (appartiennent aux pages verrouillées d’un espace MDL ou E/S), sinon le propriétaire de la mémoire peut le libérer (ou la mémoire peut être paginée, 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 des adresses Bus-Relative aux adresses virtuelles.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <=DISPATCH_LEVEL

Voir aussi

MmAllocateContiguousMemory

MmAllocateNonCachedMemory

mmMapLockedPages

mmUnmapIoSpace