是否有任何方法可以知道二进制文件的特定部分是否在内存中

Is there any way to know if specific part of binary/file is in-memory at a moment?

本文关键字:是否 定部 内存 任何 方法 二进制文件      更新时间:2023-10-16

哪些win32 api对编写如下描述的工具有用:

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

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

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

不存在,原因很简单。当API函数返回时,答案可能会改变。(另外,答案通常是"是"answers"是"。)