Освобождение памяти устройства, сопоставленной с пользовательским пространством, если программа завершается - PullRequest
1 голос
/ 16 марта 2019

Я очень новичок в Windows.Я хочу получить доступ к памяти устройства из пространства пользователя, и после некоторого поиска в Google, я получил представление о том, как это сделать.

  1. MmMapIoSpaceEx для сопоставления физического адреса с системой VA

  2. IoAllocateMdl для выделения MDL для того же VA.

  3. MmBuildMdlForNonPagedPool для обновления MDL с базовыми физическими адресами.

  4. MmMapLockedPagesSpecifyCache с флагом UserMode.

Мой вопрос заключается в том, чтобы после сопоставления этой памяти с пользовательским пространством, если по какой-либо причине происходит сбой программы, мне нужно удалить ее с помощью MmUnmapLockedpages.

Я думал, так как таблица страниц для процесса будет уничтожена как часть его выхода, удаление может не потребоваться.В этом случае мне нужно вызвать только IoFreeMdl.

Правильно ли мое понимание?Было бы здорово, если бы вы указали на любые ресурсы.

Я очень ценю вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...