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 |