c++ - 有没有办法知道二进制文件/文件的特定部分此刻是否在内存中?

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

哪些 win32 API 可用于编写此处所述的工具:

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

最佳答案

<罢工> VirtualQuery QueryWorkingSetEx这样做,特别是 PSAPI_WORKING_SET_EX_BLOCK 中的 Locked 位。正如我最初错误指出的那样,VirtualQuery 仅让您判断页面是否已提交等,而不是它们是否实际上位于物理 RAM 中。对于 Linux,它将是 mincore ,它只返回一个字节 vector (LSB == 1 用于内核)。

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

关于c++ - 有没有办法知道二进制文件/文件的特定部分此刻是否在内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8047803/

相关文章:

c++ - 通过函数指针调用 C++ 成员函数

OpenGL:如何正确解除绑定(bind)和删除缓冲区

c++ - 本地禁用填充

c++ - 迭代包含在两个范围的交集中的对象

c++ - 如何从 Windows 应用程序检测禁用的网络接口(interface)连接?

c# - 如何将特定的 NTSTATUS 值转换为 Hresult?

Python ctypes keybd_event 模拟ctrl+alt+delete

C++ 使用继承为对象分配空间

c++ - 用于通信的二进制缓冲区,C++

c++ - C/C++远程消息队列的推荐