Windows内存管理:检查页面是否在内存中

时间:2013-12-10 21:31:04

标签: windows memory-management

在Windows中,是否有办法检查内存中或磁盘中的页面(交换空间)? 我想知道这一点的原因是,如果页面在磁盘中,则通过不访问该页面来避免导致页面错误。

2 个答案:

答案 0 :(得分:2)

我没有记录在用户模式下完成此操作的文档方式。

也就是说,可以在内核模式下确定这一点,但这将涉及检查属于内存管理器的页表条目 - 而不是你真正不希望在任何类型的生产代码中做的事情

你想解决的真正问题是什么?

答案 1 :(得分:0)

虚拟记忆的全部意义在于抽象出这种东西。如果您要存储自己的数据并存储在用户区中,请将其放在支持缓存的数据结构中,而不要考虑页面。

如果你在内核空间编写代码,我知道在linux中你需要将内存地址从用户域转换为内核空间,然后在VMM中有API调用来获取page_table_entry,然后是来自地址的页面结构。完成后,使用逻辑运算符检查标志,其中一个是“交换”的。如果你试图快速制作一些东西,在页面级别遍历和弄乱内存可能不是最有效(或最安全)的事情。

需要更多信息才能提供更完整的答案。