HeapCompact

【勇芳软件工作室】汉化HomePreviousNext

HeapCompact函数尝试压缩指定的堆。它通过合并相邻的空闲内存块来压缩堆,并且消除大的可用内存块。

UINT HeapCompact(

HANDLE 【hHeap】,//处理堆以进行压缩
DWORD 【dwFlags中】//在功能操作期间控制堆访问的位标志
); 

参数

【hHeap】

处理堆的功能将尝试压缩。

【dwFlags中】

在功能操作期间控制堆访问的一组位标志。以下位标志有意义:

含义
HEAP_NO_SERIALIZE如果设置此标志,则HeapCompact函数访问堆时,堆访问不会被序列化;堆访问不是互斥的。只能在有限的特定情况下设置此标志是安全的。有关这些情况和堆序列化的一般讨论,请参阅HeapCreate的备注部分。

如果这个标志是清楚的,堆访问被序列化,而HeapCompact访问堆;堆访问是互斥的。这是安全和简单的默认条件。


返回值

如果函数成功,则返回值是堆中最大提交空闲块的大小(以字节为单位)。这是一个无符号的整数值。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

在堆中绝对没有可用空间的情况下,函数返回值为零,GetLastError返回值NO_ERROR。

备注

不能保证应用程序可以成功分配HeapCompact返回的大小的内存块。其他线程或提交阈值可能会阻止此类分配。

也可以看看

HeapCreate, HeapValidate