Partager via


Accès à la mémoire User-Space

Un pilote ne peut pas accéder directement à la mémoire via des adresses virtuelles en mode utilisateur, sauf s’il s’exécute dans le contexte du thread en mode utilisateur qui a provoqué l’opération d’E/S actuelle du pilote et qu’il utilise les adresses virtuelles de ce thread.

Seuls les pilotes de niveau supérieur, tels que les FSD, peuvent s’assurer que leurs routines de distribution seront appelées dans le contexte d’un thread en mode utilisateur. Un pilote de niveau supérieur peut appeler MmProbeAndLockPages pour verrouiller une mémoire tampon utilisateur avant de configurer un IRP pour les pilotes inférieurs.

Les pilotes de niveau le plus bas et intermédiaire qui configurent leurs objets de périphérique pour les E/S mises en mémoire tampon ou les E/S directes peuvent s’appuyer sur le gestionnaire d’E/S ou un pilote de niveau supérieur pour passer un accès valide aux mémoires tampons utilisateur verrouillées ou aux mémoires tampons de l’espace système dans les IRP.