Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйвер не может напрямую получить доступ к памяти через виртуальные адреса в пользовательском режиме, если только это не так:
- Выполнение в контексте потока пользовательского режима, вызвавшего текущую операцию ввода-вывода драйвера.
- Использование виртуальных адресов этого потока.
Драйверы должны использовать интерфейс доступа в режиме пользователя (UMA) для безопасного доступа к памяти в пользовательском режиме.
Только драйверы самого высокого уровня, такие как ФСД, могут быть уверены, что их процедуры диспетчеризации будут вызываться в контексте такого потока пользовательского режима. Драйвер верхнего уровня может вызвать MmProbeAndLockPages , чтобы заблокировать буфер пользователя перед настройкой IRP для более низких драйверов.
Низкоуровневые и промежуточные драйверы, которые настраивают объекты устройства для буферизованного ввода-вывода или прямого ввода-вывода, могут полагаться на диспетчер ввода-вывода или драйвер высокого уровня для передачи допустимого доступа к заблокированным пользовательским буферам или системным буферам пространства в IRPs.