What does HRESULT 0xC037000E (ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED) mean?

 
Could be also:
ConstantTypeOS
STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTEDNTSTATUSWindows
Previous Next
ERROR_VID_MB_STILL_REFERENCED ERROR_VID_INVALID_NUMA_SETTINGS

ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED

ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED is HRESULT 0xC037000E in the VID child GPA lock bookkeeping area of the Windows virtualization stack. It applies to the recorded set of child guest-physical pages associated with a prior lock request.

What the code establishes

An unlock or comparison does not match the page set originally recorded. This is bookkeeping corruption or request mismatch at the host memory-management boundary, not a statement that guest file data is corrupt.

Neighboring result: INVALID_CHILD_GPA_PAGE_SET rejects an invalid request shape; CORRUPTED indicates the recorded lock set and the attempted unlock no longer agree.

Evidence that should survive remediation

EvidenceWhy it changes the diagnosis
Original lockRecord GPA pages, count, ordering, access, partition, and returned range token.
Unlock requestCapture the exact page array and generation presented later.
Mutation historyIdentify compaction, sorting, reuse, or concurrent writes to the page list.
Reset/migration boundaryRecord whether partition generation changed between lock and unlock.

Controlled diagnostic sequence

  1. Treat the locked page set as immutable until unlock completes.
  2. Pair unlock with the exact token and count returned by lock.
  3. Reject arrays from another partition or generation.
  4. Add checksums or debug copies around page-list ownership in the caller.

Use a controlled partition or disposable VM when a mapping, lock, or teardown test can be destructive. During the test run, keep page units, GPA boundaries, parent object, handle generation, and release order visible.

Read the comparison tests

ControlInterpretationHold constant
Balanced fresh lifecycleCreate, use, release, and destroy one object instance. If a different result appears after recreation, investigate leaked references, locks, handles, or mappings.Preserve sizes and operation order while changing only generation.
Same request under lower host pressureIf it changes after controlled pressure is removed, quantify host/pool capacity; if not, focus on caller bookkeeping.Do not modify guest disks or unrelated VM devices during the result comparison.
Smaller exact rangeReduce only page count or mapped extent. If it moves, range arithmetic, object limits, or reserve capacity is involved.Keep the same block, GPA base, flags, and partition generation.

Avoid the wrong recovery

Acceptance test

Every successful lock has one exact matching unlock under concurrency and failure injection, with no page-list mutation.

Technical references


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