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

Lihat juga

GetProcessHeap

Fungsi Timbunan

HeapCreate

Fungsi Manajemen Memori

Api Vertdll tersedia di enklave VBS