| 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 field | Value for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE |
|---|---|
| Rejected invariant | disk extents or partition metadata changed outside the volume-manager transaction that had captured the layout |
| Identity and generation | pack and volume IDs, input structure version and sizes, transaction ID, disk-layout snapshot before the call and the first kernel storage event |
| Narrow experiment | 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 |
| Closest comparison | ERROR_VOLMGR_STRUCTURE_SIZE_INVALID |
| Owning object | kernel 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_CHANGEincident 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_CHANGEis returned, not after an automatic refresh. - Correlate transaction ID with the first
ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGEcall 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
- Create a nonproduction case for
ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGEthat preserves the same geometry and ownership model while diagnosing ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE. - 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_CHANGEpath. - 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.
- Re-enumerate after the transition and confirm
ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGEis 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_CHANGEoperation. - Telemetry includes both symbolic names when
ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGEorERROR_VOLMGR_STRUCTURE_SIZE_INVALIDoccurs 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
- Microsoft: COM error codes for VOLMGR, VHD and SDIAG — primary API or object-model reference for the
ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGEboundary. - Microsoft: Virtual Disk Service object model — use this source to verify volmgr state and parameters for
ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE. - Microsoft: Pack object — documents the supported management path relevant to
ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE. - Microsoft: Virtual Disk Service common return codes — defines the volmgr objects used to interpret
ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE.
Looking for a different code? Search another status or error code.