0

我正在处理的系统有许多进程正在运行。在共享内存的上下文中,有些是服务器,有些是客户端。

CreateFileMapping他们通过和 创建/访问共享内存MapViewOfFile

我最近更改了其中一个客户端的结构,这导致客户端尝试映射一个比服务器进程创建的更大的共享内存区域。结果是拒绝访问。

我的问题是,我不知道最初是哪个进程创建了内存。有没有办法访问有关共享内存的元信息以确定需要重新编译哪个服务器程序?

要确认,它MapViewOfFile是失败的,错误代码为 5:访问被拒绝。

4

1 回答 1

0

存在两种类型的共享内存:动态(使用 CreateFileMapping...您的场景)和静态(在 PE 部分特性中声明的内存映射)。可以在文件和进程级别测试具有共享内存特征的 PE 部分的存在。

另一方面,MapViewOfFile失败的原因可能不是映射内存的大小不同(例如凭据、内存偏移量......)

于 2012-05-17T06:36:12.963 回答