Udostępnij przez


Uzyskiwanie dostępu do pamięci User-Space

Sterownik nie może bezpośrednio uzyskać dostępu do pamięci za pośrednictwem adresów wirtualnych trybu użytkownika, chyba że:

  • Działanie w kontekście wątku trybu użytkownika, który spowodował aktualną operację I/O sterownika.
  • Użycie adresów wirtualnych tego wątku.

Sterowniki powinny bezpiecznie uzyskiwać dostęp do pamięci w trybie użytkownika za pomocą interfejsu akcesorów trybu użytkownika (UMA ).

Tylko sterowniki najwyższego poziomu, takie jak FSD, mogą mieć pewność, że ich procedury dyspozytorskie będą wywoływane w kontekście takiego wątku trybu użytkownika. Sterownik najwyższego poziomu może wywoływać mmProbeAndLockPages , aby zablokować bufor użytkownika przed skonfigurowaniem protokołu IRP dla niższych sterowników.

Sterowniki najniższego poziomu i pośredniego, które konfigurują swoje obiekty urządzeń dla buforowanego I/O lub bezpośredniego I/O, mogą polegać na menedżerze I/O lub sterowniku najwyższego poziomu, aby przekazać prawidłowy dostęp do zablokowanych buforów użytkownika lub buforów przestrzeni systemowej w IRP.