| Previous | Next |
| ERROR_VID_INVALID_CHILD_GPA_PAGE_SET | ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL |
ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED
ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED is HRESULT 0xC0370023 in the VID reserve page-set lifetime area of the Windows virtualization stack. It applies to destruction or reuse of a reserve page set that currently backs an active lock or mapping.
Where the result originates
The reserve set has an outstanding consumer. Find the lock/mapping that borrowed its pages and complete that lifecycle before reclaiming the set.
Neighboring result: RESERVE_PAGE_SET_TOO_SMALL concerns capacity at acquisition. IS_BEING_USED concerns ownership at destruction or reuse.
Build an incident record
| Evidence | Why it changes the diagnosis |
|---|---|
| Reserve set identity | Record page count, owner partition, and creation generation. |
| Current borrower | Capture memory block, GPA range, lock, and operation using it. |
| Acquire/release timeline | Keep reservation, use, completion, and release events. |
| Teardown caller | Record why reuse or destruction was attempted early. |
Run narrow checks
- Make reserve-set borrowing explicit and reference-counted.
- Release only after the dependent lock/unmap completes.
- Avoid sharing one mutable reserve set across unsynchronized operations.
- Test cancellation and VM stop while the set is borrowed.
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.
Interpret three controls
| Control | Interpretation | Hold constant |
|---|---|---|
| Smaller exact range | Reduce only page count or mapped extent. If this result moves, range arithmetic, object limits, or reserve capacity is involved. | Keep the same block, GPA base, flags, and partition generation. |
| 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. |
Keep neighboring states separate
Prove the correction
The reserve set is reclaimed only at zero borrowers and repeated use does not leak or overlap ownership.
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.
