| Previous | Next |
| ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED | ERROR_VID_MMIO_RANGE_DESTROYED |
ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET
ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET is HRESULT 0xC0370020 in the VID memory-block property state area of the Windows virtualization stack. It applies to a memory-block property whose one-time set or reset transition has already occurred.
Why this result is specific
The property is not freely mutable; the caller attempted to apply the transition more than once in the same object instance. Preserve the first successful setter and initialization path.
Neighboring result: This is not a value-validation error. The state machine rejects a repeated transition even if the repeated value matches.
Records worth collecting
| Evidence | Why it changes the diagnosis |
|---|---|
| Property identity | Record property selector, requested value, and memory block. |
| First transition | Keep successful set/reset stack, timestamp, and owner. |
| Repeated caller | Capture duplicate initialization or retry path. |
| Object instance | Note reuse, restore, or wrapper reset assumptions. |
A reproducible test plan
- Centralize ownership of the one-time property transition.
- Do not retry a successful setter after a later unrelated failure.
- Recreate the object only through supported lifecycle if a different property state is required.
- Test partial initialization rollback around the setter.
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.
Comparison matrix
| Control | Interpretation | Hold constant |
|---|---|---|
| Same request under lower host pressure | If this result 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. |
| 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. |
Misleading shortcuts
Verification after repair
Each memory-block generation performs the property transition at most once and retries resume after, rather than repeat, that step.
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.