我是Windows的新手。我想从用户空间访问设备内存,并在进行了一些谷歌搜索之后,对如何执行此操作有了一定的了解。
MmMapIoSpaceEx将物理地址映射到系统VA
IoAllocateMdl为同一VA分配MDL。
MmBuildMdlForNonPagedPool以使用基础物理地址更新MDL。
带有UserMode标志的MmMapLockedPagesSpecifyCache。
我的问题是将此内存映射到用户空间后,如果程序由于某种原因而崩溃,我是否需要使用MmUnmapLockedpages取消映射。
我在想,因为该进程的页表将在退出时被销毁,所以可能不需要取消映射。在这种情况下,我只需要调用IoFreeMdl。
我的理解对吗?如果您可以指向任何资源,那就太好了。
非常感谢您的帮助。