Fonction MmMapIoSpaceEx (wdm.h)
La routine MmMapIoSpaceEx mappe la plage d’adresses physiques 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 peut uniquement ê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 des bits d’indicateur facultatifs suivants (mais pas les deux) 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 retournée
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, elle 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 de ressources à une adresse virtuelle par le biais de laquelle le pilote peut accéder aux registres d’appareils.
Par exemple, les pilotes des 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 périphérique 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 |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 10. |
Plateforme cible | Universal |
En-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=DISPATCH_LEVEL |