尽管WinMobile上有大量的内存,VirtualAlloc怎么会失败(没有内存)?

时间:2010-03-10 21:44:52

标签: windows windows-mobile memory-management virtualalloc

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

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

这是我依赖的文档,我认为没有什么可以解释这个问题: http://msdn.microsoft.com/en-us/library/aa908768.aspx

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:3)

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

我首先尝试建立to which memory slot之前已成功映射的VirtualAlloc块,并根据这些内容查看我正在与谁争夺地址空间。您应该能够以编程方式或使用a tool from William J. Blanke(或other similar tools执行此操作。)