如果程序终止,则释放映射到用户空间的设备内存

时间:2019-03-15 22:44:42

标签: windows

我是Windows的新手。我想从用户空间访问设备内存,并在进行了一些谷歌搜索之后,对如何执行此操作有了一定的了解。

  1. MmMapIoSpaceEx将物理地址映射到系统VA

  2. IoAllocateMdl为同一VA分配MDL。

  3. MmBuildMdlForNonPagedPool以使用基础物理地址更新MDL。

  4. 带有UserMode标志的MmMapLockedPagesSpecifyCache。

我的问题是将此内存映射到用户空间后,如果程序由于某种原因而崩溃,我是否需要使用MmUnmapLockedpages取消映射。

我在想,因为该进程的页表将在退出时被销毁,所以可能不需要取消映射。在这种情况下,我只需要调用IoFreeMdl。

我的理解对吗?如果您可以指向任何资源,那就太好了。

非常感谢您的帮助。

0 个答案:

没有答案