Partager via


MmMapIoSpaceEx, fonction (wdm.h)

La routine MmMapIoSpaceEx mappe la plage d’adresses physique donnée à l’espace système non paginé à l’aide de la protection de page spécifiée.

Syntaxe

PVOID MmMapIoSpaceEx(
  [in] PHYSICAL_ADDRESS PhysicalAddress,
  [in] SIZE_T           NumberOfBytes,
  [in] ULONG            Protect
);

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] Protect

Indicateurs de bits qui spécifient la protection à utiliser pour la plage mappée. L’appelant doit définir l’un des bits d’indicateur suivants dans le paramètre Protect.

Bit d’indicateur Signification
PAGE_READONLY La plage mappée ne peut être lue, pas écrite.
PAGE_READWRITE La plage mappée peut être lue ou écrite.
PAGE_EXECUTE La plage mappée peut être exécutée, mais pas en lecture ou en écriture.
PAGE_EXECUTE_READ La plage mappée peut être exécutée ou lue, mais pas écrite.
PAGE_EXECUTE_READWRITE La plage mappée peut être exécutée, lue ou écrite.
 

En outre, l’appelant peut définir un (mais pas les deux) des bits d’indicateur facultatifs suivants dans le paramètre Protect.

Bit d’indicateur Signification
PAGE_NOCACHE Spécifie la mémoire non mise en cache.
PAGE_WRITECOMBINE Spécifie la mémoire combinée en écriture (la mémoire ne doit pas être mise en cache par le processeur, mais les écritures dans la mémoire peuvent être combinées par le processeur).

Valeur de retour

MmMapIoSpaceEx 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. MmMapIoSpaceEx mappe l’adresse physique retournée dans la liste des ressources à une adresse virtuelle via laquelle le pilote peut accéder aux registres d’appareils.

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
client minimum pris en charge Disponible à partir de Windows 10.
plateforme cible Universel
d’en-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

Voir aussi

MmAllocateContiguousMemory

MmAllocateNonCachedMemory

mmMapLockedPages

mmUnmapIoSpace