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’agit de :

  • Exécution dans le contexte du thread en mode utilisateur qui a initié l'opération d’E/S actuelle du pilote.
  • Utilisation des adresses virtuelles de ce thread.

Les pilotes doivent utiliser l’interface UMA (User-mode Accessors) pour accéder en toute sécurité à la mémoire en mode utilisateur.

Seuls les pilotes de plus haut niveau, tels que les FSD, peuvent être sûrs 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 inférieur et intermédiaire qui configurent leurs objets d'appareil pour l'entrée/sortie en mémoire tampon ou l'entrée/sortie directe peuvent s'appuyer sur le gestionnaire d'E/S ou sur un pilote de niveau supérieur pour garantir un accès valide aux mémoires tampons utilisateur verrouillées ou aux mémoires tampons d'espace système dans les IRPs.