PROCESS_HEAP_ENTRY 結構 (minwinbase.h)
包含堆積項目的相關信息。 HeapWalk 函式會使用PROCESS_HEAP_ENTRY結構來列舉堆積的專案。
語法
typedef struct _PROCESS_HEAP_ENTRY {
PVOID lpData;
DWORD cbData;
BYTE cbOverhead;
BYTE iRegionIndex;
WORD wFlags;
union {
struct {
HANDLE hMem;
DWORD dwReserved[3];
} Block;
struct {
DWORD dwCommittedSize;
DWORD dwUnCommittedSize;
LPVOID lpFirstBlock;
LPVOID lpLastBlock;
} Region;
} DUMMYUNIONNAME;
} PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY;
成員
lpData
堆積專案之數據部分的指標。
若要起始 HeapWalk 堆積列舉,請將 lpData 設定為 NULL。
如果在 wFlags 成員中使用PROCESS_HEAP_REGION,lpData 會指向區域所使用的第一個虛擬位址。
如果 wFlags 中使用PROCESS_HEAP_UNCOMMITTED_RANGE,lpData 會指向未認可的記憶體範圍的開頭。
cbData
堆積項目的數據部分大小,以位元組為單位。
如果 wFlags 中使用PROCESS_HEAP_REGION,cbData 會指定保留給此區域之位址空間的總大小,以位元組為單位。
如果 wFlags 中使用PROCESS_HEAP_UNCOMMITTED_RANGE,cbData 會指定未認可記憶體範圍的大小,以位元組為單位。
cbOverhead
系統用來維護堆積專案相關信息的數據大小,以位元組為單位。 這些額外負荷位元組除了堆積元素之數據部分的 cbData 位元組之外。
如果 wFlags 中使用PROCESS_HEAP_REGION,cbOverhead 會指定描述區域之堆積控制結構的大小,以位元組為單位。
如果 wFlags 中使用PROCESS_HEAP_UNCOMMITTED_RANGE,cbOverhead 會指定描述此未認可範圍的控制結構大小,以位元組為單位。
iRegionIndex
包含堆積項目的堆積區域的句柄。 堆積是由一或多個虛擬記憶體區域所組成,每個區域都有唯一的區域索引。
在針對大部分堆積區域傳回的第一個堆積專案中,HeapWalk 會使用 wFlags 成員中的PROCESS_HEAP_REGION。 使用這個值時, Region 結構的成員會包含區域的其他資訊。
HeapAlloc 函式有時會使用 VirtualAlloc 函式,從可成長的堆積配置大型區塊。 堆積管理員會將這類大型區塊配置視為具有唯一區域索引的個別區域。 HeapWalk 不會在針對大型區塊區域傳回的堆積專案中使用 PROCESS_HEAP_REGION ,因此 Region 結構的成員無效。 您可以使用 VirtualQuery 函式來取得大型區塊區域的其他資訊。
wFlags
堆積項目的屬性。 某些值會影響這個 PROCESS_HEAP_ENTRY 數據結構之其他成員的意義。 定義下列值。
DUMMYUNIONNAME
DUMMYUNIONNAME.Block
只有在 wFlags 中同時指定PROCESS_HEAP_ENTRY_BUSY和PROCESS_HEAP_ENTRY_MOVEABLE時,這個結構才有效。
DUMMYUNIONNAME.Block.hMem
已配置、可移動記憶體區塊的句柄。
DUMMYUNIONNAME.Block.dwReserved[3]
保留;未使用。
DUMMYUNIONNAME.Region
只有當 wFlags 成員指定 PROCESS_HEAP_REGION時,這個結構才有效。
DUMMYUNIONNAME.Region.dwCommittedSize
堆積區域中目前認可為可用記憶體區塊、忙碌記憶體區塊或堆積控制結構的位元組數目。
這是選擇性欄位,如果認可位元組數目無法使用,則會設定為零。
DUMMYUNIONNAME.Region.dwUnCommittedSize
目前未認可的堆積區域中的位元元組數目。
這是選擇性欄位,如果未認可的位元元數目無法使用,則會設定為零。
DUMMYUNIONNAME.Region.lpFirstBlock
此堆積區域中第一個有效記憶體區塊的指標。
DUMMYUNIONNAME.Region.lpLastBlock
此堆積區域中第一個無效記憶體區塊的指標。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
標頭 | minwinbase.h (包含 Windows.h) |