Freigeben über


Zugreifen auf User-Space Arbeitsspeicher

Ein Treiber kann nicht direkt über virtuelle Benutzermodusadressen auf den Arbeitsspeicher zugreifen, es sei denn, er wird im Kontext des Benutzermodusthreads ausgeführt, der den aktuellen E/A-Vorgang des Treibers verursacht hat und die virtuellen Adressen dieses Threads verwendet.

Nur Treiber der höchsten Ebene, z. B. FSDs, können sicher sein, dass ihre Dispatchroutinen im Kontext eines solchen Benutzermodusthreads aufgerufen werden. Ein Treiber der höchsten Ebene kann MmProbeAndLockPages aufrufen, um einen Benutzerpuffer zu sperren, bevor eine IRP für niedrigere Treiber eingerichtet wird.

Treiber der niedrigsten und mittleren Ebene, die ihre Geräteobjekte für gepufferte E/A - oder direkte E/A-Vorgänge einrichten, können sich auf den E/A-Manager oder einen Treiber der höchsten Ebene verlassen, um den gültigen Zugriff auf gesperrte Benutzerpuffer oder auf Systemspeicherpuffer in IRPs zu übergeben.