What does HRESULT 0xC0380044 (ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE) mean?

 
Could be also:
ConstantTypeOS
STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGENTSTATUSWindows
Previous Next
ERROR_VOLMGR_TRANSACTION_IN_PROGRESS ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK

ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE

Interpret the state transition: volmgr unexpected disk layout change

Windows returns ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE, value 0xC0380044, at the volmgr boundary. It means that disk extents or partition metadata changed outside the volume-manager transaction that had captured the layout for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE. For ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE, preserve the exact handle and generation of kernel volume-manager layout transaction and VM_VOLUME_LAYOUT input 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 in the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE path. Indices and counts are relative to the submitted layout generation, while configuration logs are replicated across participating dynamic disks within the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE workflow. For ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE, this object model determines which identifiers, counts and ownership state are meaningful in the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE path.

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

Record geometry, identity and ownership

Storage diagnostic fieldValue for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE
Rejected invariantdisk extents or partition metadata changed outside the volume-manager transaction that had captured the layout
Identity and generationpack and volume IDs, input structure version and sizes, transaction ID, disk-layout snapshot before the call and the first kernel storage event
Narrow experimentserialize the exact VM_VOLUME_LAYOUT buffer, validate every count and Size field, and compare it with a layout produced by a known-good management API
Closest comparisonERROR_VOLMGR_STRUCTURE_SIZE_INVALID
Owning objectkernel volume-manager layout transaction and VM_VOLUME_LAYOUT input
  • Verify pack belongs to the same storage generation that produced ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.
  • For ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE, preserve volume IDs before a rescan; it anchors the failed object generation in the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE path.
  • Attach input structure version to the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE incident so later cleanup cannot replace the original identity within the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE workflow.
  • Record sizes at the instant ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE is returned, not after an automatic refresh.
  • Correlate transaction ID with the first ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE call and its transaction or job identifier.
  • Export disk-layout snapshot before the call for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE; this is more useful than a drive letter or friendly name alone for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.
  • Verify the first kernel storage event belongs to the same storage generation that produced ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.

When ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE is followed by a secondary cleanup failure, store both codes with timestamps and retain this one as the initiating result within the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE workflow.

Separate validation from capability

  1. Create a nonproduction case for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE that preserves the same geometry and ownership model while diagnosing ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.
  2. Collect pack and volume IDs, input structure version and sizes, transaction ID, disk-layout snapshot before the call and the first kernel storage event before invoking the first mutating API in the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE path.
  3. Change one condition only: serialize the exact VM_VOLUME_LAYOUT buffer, validate every count and Size field, and compare it with a layout produced by a known-good management API when ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE is returned.
  4. Re-enumerate after the transition and confirm ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE is not reproduced by a stale handle from the old generation for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.

Use ERROR_VOLMGR_STRUCTURE_SIZE_INVALID as the nearest comparison. ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE is specific to disk extents or partition metadata changed outside the volume-manager transaction that had captured the layout; the neighboring result belongs to another validation or lifecycle branch while diagnosing ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE. Keeping both names prevents a generic storage label from hiding the actual owner within the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE workflow.

Mechanism-specific note for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE

Keep the exact storage identity and state transition associated with this HRESULT in the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE path. A successful rescan does not prove the original operation was valid, because it may have replaced the object generation that failed for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.

Verification after correction

Refresh the disk layout, serialize the change as one volume-manager transaction and reject any external partition mutation until commit or rollback completes in the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE path. Keep the ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE correction scoped to the owning object and avoid rewriting adjacent metadata merely to make the call return success for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.

  • The controlled A/B case changes only the invariant responsible for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.
  • No unrelated disk, cluster owner, tier policy or virtual-disk backing file is altered to hide ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.
  • Health, synchronization or job state reaches a terminal value consistent with the repaired ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE operation.
  • Telemetry includes both symbolic names when ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE or ERROR_VOLMGR_STRUCTURE_SIZE_INVALID occurs again.

For ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE, avoid broad rescans, forced failovers and metadata deletion until identities and generations are captured when ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE is returned. Those actions can make a stale request appear to heal without fixing its caller for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.

Technical references


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