What does NTSTATUS 0xC0000021 (STATUS_ALREADY_COMMITTED) mean?

 
Previous Next
STATUS_INVALID_FILE_FOR_SECTION STATUS_ACCESS_DENIED

STATUS_ALREADY_COMMITTED

The target pages already have committed backing

Windows normally permits committing an already committed page without failing in common VirtualAlloc scenarios, but native calls and specialized paths can reject a request whose state or parameters assume an uncommitted range. The returned status therefore must be interpreted with the exact API, flags, and region type.

Do not blindly decommit the range to make the call succeed; another allocator or thread may own the existing committed pages. Query the region and reconcile ownership. If the design intentionally commits incrementally, make the state transition idempotent or serialize it around allocator metadata.

What to inspect

  • Capture the native or Win32 API, allocation flags, and page-aligned range.
  • Use VirtualQuery to identify committed subranges and their allocation base.
  • Check concurrent commit paths and allocator bookkeeping for duplicate state transitions.

References


Looking for a different code? Search another status or error code.