Fungsi GetProcessHeaps (heapapi.h)
Mengembalikan jumlah timbunan aktif dan mengambil handel ke semua timbunan aktif untuk proses panggilan.
Sintaks
DWORD GetProcessHeaps(
[in] DWORD NumberOfHeaps,
[out] PHANDLE ProcessHeaps
);
Parameter
[in] NumberOfHeaps
Jumlah maksimum handel timbunan yang dapat disimpan ke dalam buffer yang diarahkan oleh ProcessHeaps.
[out] ProcessHeaps
Penunjuk ke buffer yang menerima array handel timbunan.
Nilai kembali
Nilai yang dikembalikan adalah jumlah handel ke timbunan yang aktif untuk proses panggilan.
Jika nilai yang dikembalikan kurang dari atau sama dengan NumberOfHeaps, fungsi telah menyimpan jumlah handel timbunan tersebut di buffer yang diarahkan oleh ProcessHeaps.
Jika nilai yang dikembalikan lebih besar dari NumberOfHeaps, buffer yang diarahkan oleh ProcessHeaps terlalu kecil untuk menahan semua handel timbunan untuk proses panggilan, dan fungsi menyimpan handel NumberOfHeaps di buffer. Gunakan nilai kembali untuk mengalokasikan buffer yang cukup besar untuk menerima semua handel, dan panggil fungsi lagi.
Jika nilai yang dikembalikan adalah nol, fungsi telah gagal karena setiap proses memiliki setidaknya satu timbunan aktif, timbunan default untuk proses tersebut. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Fungsi GetProcessHeaps mendapatkan handel ke timbunan default proses panggilan, ditambah menangani ke timbunan privat tambahan yang dibuat dengan memanggil fungsi HeapCreate pada utas apa pun dalam proses.
Fungsi GetProcessHeaps terutama berguna untuk penelusuran kesalahan, karena beberapa timbunan privat yang diambil oleh fungsi mungkin telah dibuat oleh kode lain yang berjalan dalam proses dan dapat dihancurkan setelah GetProcessHeaps kembali. Menghancurkan tumpukan membatalkan pegangan ke timbunan, dan terus menggunakan handel tersebut dapat menyebabkan perilaku yang tidak terdefinisi dalam aplikasi. Fungsi heap harus dipanggil hanya pada timbunan default dari proses panggilan dan pada timbunan privat yang dibuat dan dikelola proses.
Untuk mendapatkan handel ke timbunan proses proses panggilan, gunakan fungsi GetProcessHeap .
Contoh
Misalnya, lihat Mendapatkan Timbunan Proses.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | heapapi.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |