1

我正在使用 CreateFileMapping 和 MapViewOfFile 创建一个共享内存块,从而获得一个指针。然后我将 QueryWorkingSetEx 应用到它,问题是我不断在 PSAPI_WORKING_SET_EX_INFORMATION 返回结构中获取无效页面。我在 NUMA 架构上,但是在其他非 NUMA 机器上也会发生同样的事情。如果我在使用 malloc 分配的内存上尝试完全相同的过程并获得有效结果,那么 QueryWorkingSetEx 是否可能不支持共享内存指针?

4

1 回答 1

1

在与微软的支持人员交谈后,我得到了解决方案,因为在 MapViewOfFile 之后立即调用 QueryWorkingSetEx 内存地址尚未被触及,因此页面尚未由任何物理内存支持。解决方案是在调用 QueryWorkingSetEx 之前简单地对内存地址执行读取循环,这会强制内存管理器使用物理内存备份页面。

于 2012-09-25T09:12:40.890 回答