Sdílet prostřednictvím


Přístup k paměti User-Space

Ovladač nemá přímý přístup k paměti prostřednictvím virtuálních adres v uživatelském režimu, pokud není:

  • Probíhá v kontextu vlákna uživatelského režimu, které spustilo aktuální vstupně-výstupní operaci ovladače.
  • Použití virtuálních adres vlákna

Ovladače by měly používat rozhraní UMA (User-mode Accessors) pro bezpečný přístup k paměti v uživatelském režimu.

Pouze ovladače nejvyšší úrovně, jako jsou FSD, si mohou být jisti, že jejich obslužné rutiny budou volány v kontextu takového vlákna v uživatelském režimu. Ovladač nejvyšší úrovně může volat MmProbeAndLockPagesa, aby uzamknul vyrovnávací paměť uživatele před nastavením IRP pro nižší ovladače.

Ovladače nejnižší a střední úrovně, které nastavují své objekty zařízení pro vyrovnávané vstupně-výstupní operace nebo přímé vstupně-výstupní operace, se mohou spolehnout na správce I/O nebo ovladač nejvyšší úrovně, aby předal platný přístup k uzamčeným vyrovnávacím pamětím uživatelů nebo k vyrovnávacím pamětím systémového prostoru v IRP.