Freigeben über


GetProcessHeaps-Funktion (heapapi.h)

Gibt die Anzahl der aktiven Heaps zurück und ruft Handles für alle aktiven Heaps für den aufrufenden Prozess ab.

Syntax

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

Parameter

[in] NumberOfHeaps

Die maximale Anzahl von Heaphandles, die in dem Puffer gespeichert werden können, auf den ProcessHeaps verweist.

[out] ProcessHeaps

Ein Zeiger auf einen Puffer, der ein Array von Heaphandles empfängt.

Rückgabewert

Der Rückgabewert ist die Anzahl der Handles für Heaps, die für den aufrufenden Prozess aktiv sind.

Wenn der Rückgabewert kleiner oder gleich NumberOfHeaps ist, hat die Funktion diese Anzahl von Heaphandles im Puffer gespeichert, auf den von ProcessHeaps verwiesen wird.

Wenn der Rückgabewert größer als NumberOfHeaps ist, ist der Puffer, auf den ProcessHeaps verweist, zu klein, um alle Heaphandles für den aufrufenden Prozess zu speichern, und die Funktion speichert NumberOfHeaps-Handles im Puffer. Verwenden Sie den Rückgabewert, um einen Puffer zuzuweisen, der groß genug ist, um alle Handles zu empfangen, und rufen Sie die Funktion erneut auf.

Wenn der Rückgabewert 0 ist, ist für die Funktion ein Fehler aufgetreten, da jeder Prozess mindestens einen aktiven Heap aufweist, den Standardheap für den Prozess. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die GetProcessHeaps-Funktion ruft ein Handle für den Standardheap des aufrufenden Prozesses sowie Handles für alle zusätzlichen privaten Heaps ab, die durch Aufrufen der HeapCreate-Funktion für einen beliebigen Thread im Prozess erstellt werden.

Die GetProcessHeaps-Funktion ist in erster Linie für das Debuggen nützlich, da einige der privaten Heaps, die von der Funktion abgerufen werden, möglicherweise durch anderen Code erstellt wurden, der im Prozess ausgeführt wird, und nach der Rückgabe von GetProcessHeaps zerstört werden kann. Durch das Zerstören eines Heaps wird das Handle für den Heap ungültig, und die fortgesetzte Verwendung solcher Handles kann zu nicht definiertem Verhalten in der Anwendung führen. Heapfunktionen sollten nur auf dem Standardheap des aufrufenden Prozesses und auf privaten Heaps aufgerufen werden, die vom Prozess erstellt und verwaltet werden.

Verwenden Sie die GetProcessHeap-Funktion , um ein Handle für den Prozess heap des aufrufenden Prozesses abzurufen.

Beispiele

Ein Beispiel finden Sie unter Abrufen von Prozess heaps.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile heapapi.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

GetProcessHeap

Heapfunktionen

HeapCreate

Speicherverwaltungsfunktionen

In VBS-Enklaven verfügbare Vertdll-APIs