VirtualFree Function
The VirtualFree function decommits a region of pages or releases a region of memory that was previously committed using the VirtualAlloc or VirtualAllocEx functions.
Syntax
BOOL VirtualFree(
LPVOID lpAddress,
SIZE_T dwSize,
DWORD dwFreeType
);
Parameters
lpAddress: A pointer to the starting page of the region of memory to be freed. This parameter must be greater than 0.dwSize: The size of the region of memory to be freed, in bytes. This parameter must be greater than 0.dwFreeType: The type of operation to perform. This parameter can be one of the following values:MEM_DECOMMIT: Decommits the specified region of pages. A decommitted region no longer has physical backing storage.MEM_RELEASE: Releases the specified region of memory. This value must be used withMEM_DECOMMIT.
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.
Remarks
You can decommit or release a region of memory in one of two ways:
- Decommit a region of pages using
MEM_DECOMMIT. The memory is still reserved, but the pages are no longer mapped to physical storage. - Release a region of pages using
MEM_RELEASE. The memory is no longer reserved.
When decommitting or releasing memory, the address must be greater than 0. The dwSize parameter must be greater than 0.
The MEM_RELEASE flag must be used to decommit or release the entire region of memory that was allocated by a single call to VirtualAlloc or VirtualAllocEx. If you decommit pages within a region allocated by a single call to VirtualAlloc or VirtualAllocEx, you must also specify MEM_DECOMMIT.
Requirements
| Value | |
|---|---|
| Minimum supported client | Windows 2000 Professional |
| Minimum supported server | Windows 2000 Server |
| Header | memoryapi.h (include windows.h) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |