| Previous | Next |
| STATUS_FREE_VM_NOT_AT_BASE | STATUS_WORKING_SET_QUOTA |
STATUS_MEMORY_NOT_ALLOCATED
The address range is free or outside the owned allocation
This status commonly results from a stale pointer, duplicate free, size calculation that extends beyond the allocation, or cleanup in the wrong process. It differs from an uncommitted page inside a reservation because the Memory Manager cannot associate the range with the expected allocation at all.
Treat it as an ownership defect rather than trying another free API at random. Capture the original allocation and release stacks, then determine whether the region was already released or never belonged to the caller. Cross-process operations must use the intended process handle and address space.
What to inspect
- Query the address in the target process and record State, Type, and AllocationBase.
- Check for duplicate cleanup, use-after-free, and process-handle mix-ups.
- Validate base-plus-size arithmetic for overflow or crossing into a free neighboring range.
References
- Microsoft: VirtualQuery
- Microsoft: VirtualFree
- Microsoft WDK: NtFreeVirtualMemory
- ReactOS source: virtual memory manager
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.