编辑:在 StackOverflow 上浏览时,我发现ZwAllocateVirtualMemory并没有通过任何谷歌搜索或文档拖网产生,因为它在文档的“以前的版本”下 - 这是否意味着不推荐使用此功能?为什么它不在更新的文档中,在VirtualAlloc上使用它有什么缺点吗?
无论如何,这使我的问题相当过时,但我仍然想了解当 AccessMode = UserMode 时MmMapLockedPages 的真正作用。
OP:我在这个问题中读到内核驱动程序可以使用MmMapLockedPages将它在系统内存中分配的空间映射到用户内存中。从我在文档中可以找到的内容来看,没有任何其他(记录的)NT API 内核模式函数可以用来将内存“放入”用户空间虚拟内存。我想知道该映射是否允许用户对内存进行某种查看,但该内存仍在系统空间中,或者用户空间中是否存在完全可以访问的相同大小的“映射”内存块调用者,好像该内存已被malloc'd。
我对记忆系统的理解远非很好,所以请原谅任何术语的滥用!