| 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
| Evidence | Why it changes the diagnosis |
|---|---|
| Original lock | Record GPA pages, count, ordering, access, partition, and returned range token. |
| Unlock request | Capture the exact page array and generation presented later. |
| Mutation history | Identify compaction, sorting, reuse, or concurrent writes to the page list. |
| Reset/migration boundary | Record whether partition generation changed between lock and unlock. |
Controlled diagnostic sequence
- Treat the locked page set as immutable until unlock completes.
- Pair unlock with the exact token and count returned by lock.
- Reject arrays from another partition or generation.
- 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
| Control | Interpretation | Hold constant |
|---|---|---|
| Balanced fresh lifecycle | Create, 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 pressure | If 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 range | Reduce 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
- Microsoft Open Specifications: HRESULT values — used to interpret this result.
- Microsoft: WHvMapGpaRange — used to interpret this result.
- Microsoft: WHP memory data types — used to interpret this result.
- Microsoft: Hyper-V architecture — used to interpret this result.
Looking for a different code? Search another status or error code.