2

我经常看到 VirtualAlloc 调用以保留内存失败。我请求 2MB,以便分配不计入我的每个进程虚拟内存,而是使用系统共享内存。发生故障时,系统报告有超过 100 MB 的可用物理内存。

我在 windows mobile 6.1 设备上运行。到目前为止,这是一个特定于设备的问题。它适用于许多相同的设备,但在一台设备上失败。我希望能够确定此设备上的其他进程是否正在保留共享内存,从而阻止我这样做。不知道我怎么能做到这一点。

这是我所依赖的文档,我看不出任何可以解释这个问题的东西:http: //msdn.microsoft.com/en-us/library/aa908768.aspx

有任何想法吗?谢谢。

4

1 回答 1

3

我很想说这VirtualAlloc已经用完了(连续的)虚拟地址空间,至少就您的进程而言。

我首先会尝试确定那些先前成功的块映射到哪个内存插槽VirtualAlloc,并基于此查看我正在与谁争夺地址空间。您应该能够以编程方式或使用William J. Blanke 的工具(或其他类似工具)来执行此操作。

于 2010-03-10T22:47:02.787 回答