2

メモリを予約するための VirtualAlloc 呼び出しが失敗するのを日常的に見ています。割り当てがプロセスごとの仮想メモリにカウントされず、代わりにシステム共有メモリを使用するように、2MB を要求しています。障害が発生すると、システムは物理メモリに 100 MB を超える空き容量があると報告します。

Windows Mobile 6.1 デバイスで実行しています。これまでのところ、これはデバイス固有の問題です。多くの同一のデバイスで動作し、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 に答える