函数功能:
GetProcessHeaps 函数返回进程中所有活动堆的数量和句柄
函数原型:
DWORD GetProcessHeaps(
[in] DWORD NumberOfHeaps,
[out] PHANDLE ProcessHeaps
);
参数解析:
参数 | 含义 |
[in] NumberOfHeaps | 指定了 ProcessHeaps指向的缓冲区可以存放的句柄的数量 |
[out] ProcessHeaps | 该参数是一个指针,指向用来接收堆句柄的缓冲区 |
返回值:
如果函数返回成功,返回值是该进程处于活动状态的堆的句柄数。
如果返回值小于或等于NumberOfHeaps,则该函数已将该数量的堆句柄存储在ProcessHeaps指向的缓冲区中。
如果返回值大于NumberOfHeaps,则ProcessHeaps指向的缓冲区太小,无法容纳调用进程的所有堆句柄,函数将NumberOfHeaps句柄存储在缓冲区中。使用返回值分配一个足够大的缓冲区以接收所有句柄,然后再次调用该函数。
如果函数返回失败,则返回值为0。因为每个进程至少有一个活动堆,即进程的默认堆。要获取扩展错误信息,请调用 GetLastError。