#ifndef _NTRTL_H
#if (PHNT_VERSION >= PHNT_WINDOWS_8)
_Success_(return != 0)
NTSYSAPI
LOGICAL
NTAPI
RtlFreeHeap(
_In_ HANDLE HeapHandle,
_In_opt_ ULONG Flags,
_Frees_ptr_opt_ _Post_invalid_ PVOID BaseAddress
);
View code on GitHub#ifndef _NTRTL_H
#if (PHNT_VERSION >= PHNT_WINDOWS_8)
// ...
#else
_Success_(return)
NTSYSAPI
BOOLEAN
NTAPI
RtlFreeHeap(
_In_ HANDLE HeapHandle,
_In_opt_ ULONG Flags,
_Frees_ptr_opt_ PVOID BaseAddress
);
View code on GitHub// ntifs.h
NTSYSAPI LOGICAL RtlFreeHeap(
[in] PVOID HeapHandle,
[in, optional] ULONG Flags,
_Frees_ptr_opt_ PVOID BaseAddress
);
View the official Windows Driver Kit DDI reference// ntifs.h
BOOLEAN RtlFreeHeap(
_In_ PVOID HeapHandle,
_In_opt_ ULONG Flags,
_In_ PVOID HeapBase
);
View the official Win32 development documentationNo description available.
The RtlFreeHeap routine frees a memory block that was allocated from a heap by RtlAllocateHeap.
HeapHandle [in]A handle for the heap whose memory block is to be freed. This parameter is a handle returned by RtlCreateHeap.
Flags [in, optional]A set of flags that controls aspects of freeing a memory block. Specifying the following value overrides the corresponding value that was specified in the Flags parameter when the heap was created by RtlCreateHeap.
| Flag | Meaning |
|---|---|
| HEAP_NO_SERIALIZE | Mutual exclusion will not be used when RtlFreeHeap is accessing the heap. |
BaseAddressA pointer to the memory block to free. This pointer is returned by RtlAllocateHeap.
RtlFreeHeap returns TRUE if the block was freed successfully; FALSE otherwise.
Note Starting with Windows 8 the return value is typed as LOGICAL, which has a different size than BOOLEAN.
Frees a memory block that was allocated from a heap by RtlAllocateHeap.
HeapHandle [in]
A handle for the heap whose memory block is to be freed. This parameter is a handle returned by RtlCreateHeap.
Flags [in, optional]
A set of flags that controls aspects of freeing a memory block. Specifying the following value overrides the corresponding value that was specified in the Flags parameter when the heap was created by RtlCreateHeap.
| Flag | Meaning |
|---|---|
| HEAP_NO_SERIALIZE |
Mutual exclusion will not be used when RtlFreeHeap is accessing the heap. |
HeapBase [in]
A pointer to the memory block to free. This pointer is returned by RtlAllocateHeap.
Returns TRUE if the block was freed successfully; FALSE otherwise.
[!Note] Starting with Windows 8 the return value is typed as LOGICAL, which has a different size than BOOLEAN.
| Requirement | Value |
|---|---|
| Minimum supported client |
Windows 2000 Professional [desktop apps only] |
| Minimum supported server |
Windows 2000 Server [desktop apps only] |
| Target platform |
Universal |
| Header |
Ntifs.h (include Ntifs.h) |
| Library |
Ntdll.lib |
| DLL |
Ntdll.dll |
This function is documented in Windows Driver Kit.
Maps directly to Win32 API HeapFree from Kernel32.dll.