struktur PROCESS_HEAP_ENTRY (minwinbase.h)
Berisi informasi tentang elemen heap. Fungsi HeapWalk menggunakan struktur PROCESS_HEAP_ENTRY untuk menghitung elemen tumpukan.
Sintaks
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;
Anggota
lpData
Penunjuk ke bagian data elemen heap.
Untuk memulai enumerasi heapWalk , atur lpData ke NULL.
Jika PROCESS_HEAP_REGION digunakan dalam anggota wFlags , lpData menunjuk ke alamat virtual pertama yang digunakan oleh wilayah tersebut.
Jika PROCESS_HEAP_UNCOMMITTED_RANGE digunakan dalam wFlags, lpData menunjuk ke awal rentang memori yang tidak dikomit.
cbData
Ukuran bagian data dari elemen heap, dalam byte.
Jika PROCESS_HEAP_REGION digunakan dalam wFlags, cbData menentukan ukuran total, dalam byte, dari ruang alamat yang dicadangkan untuk wilayah ini.
Jika PROCESS_HEAP_UNCOMMITTED_RANGE digunakan dalam wFlags, cbData menentukan ukuran, dalam byte, dari rentang memori yang tidak dilakukan.
cbOverhead
Ukuran data yang digunakan oleh sistem untuk mempertahankan informasi tentang elemen heap, dalam byte. Byte overhead ini selain byte cbData dari bagian data elemen heap.
Jika PROCESS_HEAP_REGION digunakan dalam wFlags, cbOverhead menentukan ukuran, dalam byte, dari struktur kontrol timbunan yang menjelaskan wilayah tersebut.
Jika PROCESS_HEAP_UNCOMMITTED_RANGE digunakan dalam wFlags, cbOverhead menentukan ukuran, dalam byte, dari struktur kontrol yang menjelaskan rentang yang tidak dilakukan ini.
iRegionIndex
Handel ke wilayah heap yang berisi elemen heap. Timbunan terdiri dari satu atau beberapa wilayah memori virtual, masing-masing dengan indeks wilayah yang unik.
Dalam entri timbunan pertama yang dikembalikan untuk sebagian besar wilayah heap, HeapWalk menggunakan PROCESS_HEAP_REGION di anggota wFlags . Saat nilai ini digunakan, anggota struktur Wilayah berisi informasi tambahan tentang wilayah tersebut.
Fungsi HeapAlloc terkadang menggunakan fungsi VirtualAlloc untuk mengalokasikan blok besar dari tumpukan yang dapat tumbuh. Manajer timbunan memperlakukan alokasi blok besar seperti wilayah terpisah dengan indeks wilayah yang unik. HeapWalk tidak menggunakan PROCESS_HEAP_REGION dalam entri heap yang dikembalikan untuk wilayah blok besar, sehingga anggota struktur Wilayah tidak valid. Anda dapat menggunakan fungsi VirtualQuery untuk mendapatkan informasi tambahan tentang wilayah blok besar.
wFlags
Properti elemen heap. Beberapa nilai memengaruhi arti anggota lain dari struktur data PROCESS_HEAP_ENTRY ini. Nilai berikut ditentukan.
DUMMYUNIONNAME
DUMMYUNIONNAME.Block
Struktur ini hanya berlaku jika PROCESS_HEAP_ENTRY_BUSY dan PROCESS_HEAP_ENTRY_MOVEABLE ditentukan dalam wFlags.
DUMMYUNIONNAME.Block.hMem
Tangani blok memori yang dialokasikan dan dapat dipindahkan.
DUMMYUNIONNAME.Block.dwReserved[3]
Dipesan; tidak digunakan.
DUMMYUNIONNAME.Region
Struktur ini hanya berlaku jika anggota wFlags menentukan PROCESS_HEAP_REGION.
DUMMYUNIONNAME.Region.dwCommittedSize
Jumlah byte di wilayah heap yang saat ini diterapkan sebagai blok memori bebas, blok memori sibuk, atau struktur kontrol timbunan.
Ini adalah bidang opsional yang diatur ke nol jika jumlah byte yang diterapkan tidak tersedia.
DUMMYUNIONNAME.Region.dwUnCommittedSize
Jumlah byte di wilayah heap yang saat ini tidak dikomit.
Ini adalah bidang opsional yang diatur ke nol jika jumlah byte yang tidak dikomit tidak tersedia.
DUMMYUNIONNAME.Region.lpFirstBlock
Arahkan ke blok memori pertama yang valid di wilayah heap ini.
DUMMYUNIONNAME.Region.lpLastBlock
Penunjuk ke blok memori pertama yang tidak valid di wilayah heap ini.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Header | minwinbase.h (termasuk Windows.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk