GetProcessHeaps 函式 (heapapi.h)

傳回作用中堆積的數目,並擷取呼叫進程之所有作用中堆積的句柄。

語法

DWORD GetProcessHeaps(
  [in]  DWORD   NumberOfHeaps,
  [out] PHANDLE ProcessHeaps
);

參數

[in] NumberOfHeaps

可儲存至 ProcessHeaps 所指向之緩衝區的最大堆積句柄數目。

[out] ProcessHeaps

接收堆積句柄陣列之緩衝區的指標。

傳回值

傳回值是呼叫進程作用中堆積的句柄數目。

如果傳回值小於或等於 NumberOfHeaps,則函式已將該堆積句柄數目儲存在 ProcessHeaps 所指向的緩衝區中。

如果傳回值大於 NumberOfHeaps, 則 ProcessHeaps 所指向的緩衝區太小,無法保存呼叫進程的所有堆積句柄,而函式會將 NumberOfHeaps 句柄儲存在緩衝區中。 使用傳回值來配置足以接收所有句柄的緩衝區,然後再次呼叫 函式。

如果傳回值為零,則函式失敗,因為每個進程至少有一個作用中的堆積,進程的預設堆積。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。

備註

GetProcessHeaps 函式會取得呼叫進程之預設堆積的句柄,以及透過在進程中的任何線程上呼叫 HeapCreate 函式所建立的任何其他私人堆積的句柄。

GetProcessHeaps 函式主要用於偵錯,因為函式所擷取的一些私人堆積可能是由進程中執行的其他程式代碼所建立,而且可能會在 GetProcessHeaps 傳回之後終結。 終結堆積會使堆積的句柄失效,而繼續使用這類句柄可能會導致應用程式中未定義的行為。 只有在呼叫進程的預設堆積上,以及進程建立和管理的私人堆積上,才應該呼叫堆積函式。

若要取得呼叫進程的進程堆積句柄,請使用 GetProcessHeap 函式。

範例

如需範例,請參閱 取得進程堆積。

規格需求

需求 值
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 heapapi.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

GetProcessHeap

堆積函式

HeapCreate

記憶體管理功能

VBS 記憶體保護區中可用的 Vertdll API