繁体   English   中英

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

[英]How to determine if a logical address is in physical memory?

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

MmIsAddressValid将检查是否在非页面缓冲池中的指定地址处发生页面错误。 Microsoft警告不要使用此功能,因为如果传出的地址被调出,将导致不确定的行为。 这还将检查虚拟地址是否在物理内存范围内,并检查有效的PTE,如果不满足条件,则返回false。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM