首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何确定逻辑地址是否在物理内存中?

如何确定逻辑地址是否在物理内存中?
EN

Stack Overflow用户
提问于 2018-07-15 02:10:16
回答 1查看 333关注 0票数 0

在更高的IRQL中使用的回调函数可能需要访问内存中的某个地址范围。所以我想知道是否有一个内核函数可以告诉我地址PVOID是否在内存的NonPagedPool部分,或者当前是否映射到物理内存,并且如果我从它读取数据,不会导致页面错误?

EN

回答 1

Stack Overflow用户

发布于 2018-07-15 04:59:58

MmIsAddressValid将检查是否会在驻留在非分页池中的指定地址发生分页错误。Microsoft警告不要使用此函数,因为如果传递的地址被页出,将导致未定义的行为。这还会检查虚拟地址是否在物理内存的范围内,并检查有效的PTE,如果不满足条件,则返回false。

MmGetPhysicalAddress将返回驻留在非分页池中的虚拟地址的物理地址。如果例程不满足正确的条件,则返回零。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51342150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档