Condividi tramite


Funzione GetProcessHeaps (heapapi.h)

Restituisce il numero di heaps attivi e recupera gli handle in tutti gli heaps attivi per il processo di chiamata.

Sintassi

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

Parametri

[in] NumberOfHeaps

Numero massimo di handle heap che possono essere archiviati nel buffer a cui punta ProcessHeaps.

[out] ProcessHeaps

Puntatore a un buffer che riceve una matrice di handle heap.

Valore restituito

Il valore restituito è il numero di handle a heaps attivi per il processo chiamante.

Se il valore restituito è minore o uguale a NumberOfHeaps, la funzione ha archiviato tale numero di handle heap nel buffer a cui punta ProcessHeaps.

Se il valore restituito è maggiore di NumberOfHeaps, il buffer a cui punta ProcessHeaps è troppo piccolo per contenere tutti gli handle heap per il processo di chiamata e la funzione archivia gli handle NumberOfHeaps nel buffer. Usare il valore restituito per allocare un buffer sufficiente per ricevere tutti gli handle e chiamare di nuovo la funzione.

Se il valore restituito è zero, la funzione non è riuscita perché ogni processo ha almeno un heap attivo, l'heap predefinito per il processo. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

La funzione GetProcessHeaps ottiene un handle per l'heap predefinito del processo di chiamata, oltre agli handle per eventuali heaps privati aggiuntivi creati chiamando la funzione HeapCreate in qualsiasi thread nel processo.

La funzione GetProcessHeaps è principalmente utile per il debug, perché alcuni degli heaps privati recuperati dalla funzione potrebbero essere stati creati da altro codice in esecuzione nel processo e possono essere eliminati dopo la restituzione di GetProcessHeaps . La eliminazione di un heap invalida l'handle nell'heap e l'uso continuo di tali handle può causare un comportamento non definito nell'applicazione. Le funzioni heap devono essere chiamate solo sull'heap predefinito del processo chiamante e sugli heaps privati creati e gestiti dal processo.

Per ottenere un handle per l'heap del processo di chiamata, usare la funzione GetProcessHeap .

Esempio

Per un esempio, vedere Recupero di Heaps processo.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione heapapi.h (includere Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

GetProcessHeap

Funzioni heap

HeapCreate

Funzioni di gestione della memoria

API Vertdll disponibili nelle enclave VBS