Site icon EfmSoft

What does HRESULT 0xC0380049 (ERROR_VOLMGR_VOLUME_NOT_MIRRORED) mean?

 
Could be also:
ConstantTypeOS
STATUS_VOLMGR_VOLUME_NOT_MIRROREDNTSTATUSWindows
Previous Next
ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE ERROR_VOLMGR_VOLUME_NOT_RETAINED

ERROR_VOLMGR_VOLUME_NOT_MIRRORED

Why this is narrower than a generic disk error: volmgr volume not mirrored

Windows returns ERROR_VOLMGR_VOLUME_NOT_MIRRORED, value 0xC0380049, at the volmgr boundary. It means that the request requires multiple synchronized plexes, but the selected volume is not mirrored. Preserve the exact handle and generation of logical volume geometry and the disk extents that realize it before any rescan changes the evidence.

Dynamic volumes are represented as packs containing disks and volumes; each volume has one or more plexes, and each plex is assembled from members and extents. Indices and counts are relative to the submitted layout generation, while configuration logs are replicated across participating dynamic disks while diagnosing this result. This object model determines which identifiers, counts and ownership state are meaningful.

The standard message identifies the immediate condition, but this result also requires the producer API, object topology and attempted state transition. Capture them before an automatic refresh advances the storage generation while diagnosing it.

Storage facts that change the diagnosis

Storage diagnostic fieldValue
Owning objectlogical volume geometry and the disk extents that realize it
Rejected invariantthe request requires multiple synchronized plexes, but the selected volume is not mirrored
Identity and generationvolume ID, requested length, sector sizes, extent table, plex/member counts, disk health and the exact VM_VOLUME_LAYOUT buffer
Narrow experimentrun the request against matched simple and mirrored test volumes that have the same length and sector geometry
Closest comparisonERROR_VOLMGR_VOLUME_MIRRORED

Do not overwrite this result with a close, detach or rollback error. Preserve the causal order so the original storage contract remains visible.

A/B test for this HRESULT

  1. Before changing state for it, freeze the failing generation and save volume ID, requested length, sector sizes, extent table, plex/member counts, disk health and the exact VM_VOLUME_LAYOUT buffer while diagnosing this result.
  2. Exercise this exact comparison for it: run the request against matched simple and mirrored test volumes that have the same length and sector geometry.
  3. During the result comparison, keep image bytes, unrelated disks, provider policy and cluster topology fixed for it.
  4. After the test, record the next return value and the durable object state; crossing the boundary should expose a later result rather than silently retrying.

The distinction from ERROR_VOLMGR_VOLUME_MIRRORED is operational. The decisive condition is the request requires multiple synchronized plexes, but the selected volume is not mirrored; log the neighboring code separately so capability, identity and state are not conflated.

Mechanism-specific note

The requested path depends on a second active plex, but the volume currently has only one data copy while diagnosing it. Enumerate plexes and their states rather than relying on a UI label. If redundancy is required, create or restore the mirror through a supported operation before invoking mirror-only maintenance while diagnosing it.

Corrective action and regression check

Select an operation compatible with the actual plex type and keep at least one active data copy throughout detach, repair or regeneration. After correcting it, reopen the pack, volume, tier, snapshot or virtual disk so no cached generation participates in the validation run.

A reboot, blanket disk conversion or deletion of storage metadata is not a justified first response to it; it changes multiple invariants and can erase the evidence needed to identify the defect while diagnosing it.

Technical references


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

Exit mobile version