| Previous | Next |
| ERROR_VID_MMIO_RANGE_DESTROYED | ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED |
ERROR_VID_INVALID_CHILD_GPA_PAGE_SET
ERROR_VID_INVALID_CHILD_GPA_PAGE_SET is HRESULT 0xC0370022 in the VID child GPA page-set validation area of the Windows virtualization stack. It applies to the page array or guest-physical extent presented to a VID child-partition lock or unlock operation.
What the code establishes
The request shape, pages, count, alignment, ownership, or generation is invalid before matching it against a prior lock. Validate the page-set contract at the caller boundary.
Neighboring result: CHILD_GPA_PAGE_SET_CORRUPTED indicates disagreement with recorded state; INVALID_CHILD_GPA_PAGE_SET means the submitted set itself is unacceptable.
Evidence that should survive remediation
| Evidence | Why it changes the diagnosis |
|---|---|
| Page set | Record each GPA page, count, order, duplicates, alignment, and access flags. |
| Partition ownership | Keep child partition and memory-block identities. |
| Range validation | Show every page lies within the intended mapped extent. |
| Generation | Record reset, migration, or teardown between construction and submission. |
Controlled diagnostic sequence
- Validate count and page alignment before the VID request.
- Reject duplicate or out-of-range pages explicitly.
- Keep the array immutable until completion.
- Test empty, one-page, boundary, duplicate, and cross-partition cases.
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
All valid page sets lock/unlock symmetrically, and malformed controls are rejected deterministically before state changes.
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.
