WinCE分配连续的物理内存失败后,不释放占用空间
卓卓有余 2012-08-31 04:58:47 环境:Windows CE 5.0的系统,硬件为三星S3C2416,一片64Mb的DDR;使用vs2005开发
现象:用HalAllocateCommonBuffer分配连续的物理内存失败后,发现可用内存变少了,不释放占用的空间;
注:使用AllocPhysMem 分配 同样现象。
应用:目前主要是使用2D库,创建N多图片的连续物理地址空间,其中一些根据画面动态创建 和 释放。现在发现很容易没有连续的物理内存。
使用这两个 函数分配失败后,返回的虚拟地址为NULL,但是可用内存的变少,也无法调用HalFreeCommonBuffer 或者 FreePhysMem 释放。估计是系统没有连续的物理内存,然后分配了不连续的内存,但是却返回一个NULL,导致释放函数没有可以传入的参数来执行。
这应该是微软的一个 非常非常严重的BUG?