HeapLock-Funktion (heapapi.h)
Versucht, das kritische Abschnittsobjekt oder die Sperre abzurufen, das einem angegebenen Heap zugeordnet ist.
Syntax
BOOL HeapLock(
[in] HANDLE hHeap
);
Parameter
[in] hHeap
Ein Handle für den zu sperrenden Heap. Dieses Handle wird entweder von der HeapCreate- oder getProcessHeap-Funktion zurückgegeben.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Wenn die Funktion erfolgreich ist, besitzt der aufrufende Thread die Heapsperre. Nur der aufrufende Thread kann Speicher aus dem Heap zuordnen oder freigeben. Die Ausführung eines anderen Threads des aufrufenden Prozesses wird blockiert, wenn dieser Thread versucht, Arbeitsspeicher aus dem Heap zuzuweisen oder freizugeben. Solche Threads bleiben blockiert, bis der Thread, der die Heapsperre besitzt, die HeapUnlock-Funktion aufruft.
Die HeapLock-Funktion ist in erster Linie nützlich, um die Zuordnung und Freigabe von Heapspeicher durch andere Threads zu verhindern, während der aufrufende Thread die HeapWalk-Funktion verwendet.
Wenn die HeapLock-Funktion auf einem Heap aufgerufen wird, der mit dem flag HEAP_NO_SERIALIZE erstellt wurde, sind die Ergebnisse nicht definiert.
Jeder erfolgreiche Aufruf von HeapLock muss durch einen entsprechenden Aufruf von HeapUnlock abgeglichen werden. Wenn HeapUnlock nicht aufgerufen wird, wird die Ausführung anderer Threads des aufrufenden Prozesses blockiert, die versuchen, auf den Heap zuzugreifen.
Beispiele
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 (windows.h einschließen) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |