HeapUnlock function (heapapi.h)

Releases ownership of the critical section object, or lock, that is associated with a specified heap. It reverses the action of the HeapLock function.


BOOL HeapUnlock(
  [in] HANDLE hHeap


[in] hHeap

A handle to the heap to be unlocked. This handle is returned by either the HeapCreate or GetProcessHeap function.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.


The HeapLock function is primarily useful for preventing the allocation and release of heap memory by other threads while the calling thread uses the HeapWalk function. The HeapUnlock function is the inverse of HeapLock.

Each call to HeapLock must be matched by a corresponding call to the HeapUnlock function. Failure to call HeapUnlock will block the execution of any other threads of the calling process that attempt to access the heap.

If the HeapUnlock function is called on a heap created with the HEAP_NO_SERIALIZATION flag, the results are undefined.


Enumerating a Heap


Requirement Value
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header heapapi.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

See also

Heap Functions



Memory Management Functions

Vertdll APIs available in VBS enclaves