有没有办法知道二进制文件的特定部分是否在内存中?

时间:2011-11-08 08:40:59

标签: c++ winapi memory-management in-memory

如下所述,哪些win32 API对编码工具很有用:

我的目标是一个工具,可以用来检查/报告文件的某个特定部分是否位于内存(RAM)或虚拟内存(磁盘)中?

2 个答案:

答案 0 :(得分:3)

VirtualQuery QueryWorkingSetEx这样做,特别是PSAPI_WORKING_SET_EX_BLOCK中的锁定位。我最初错误地指出的VirtualQuery只是让你判断是否提交了页面,而不是它们是否真的在物理RAM中。对于Linux,它将是mincore,它只返回一个字节向量(对于in-core,LSB == 1)。

请注意,您获得的信息是快照,这意味着信息原则上可能在函数返回时已经过时(很像GetCurrentProcessorNumber)。
因此,将信息视为(可能或多或少准确但不可靠)提示,而不是保证。

答案 1 :(得分:2)

不存在,原因很简单。答案可能会在 API函数返回时更改。 (另外,答案通常是“是和是”。)