| Previous | Next |
| ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE | ERROR_VOLMGR_MEMBER_MISSING |
ERROR_VOLMGR_MEMBER_INDEX_INVALID
Why this is narrower than a generic disk error: volmgr member index invalid
ERROR_VOLMGR_MEMBER_INDEX_INVALID has unsigned value 0xC0380025. In the volmgr layer, the operation is rejected because a member ordinal lies outside the member array declared for the selected plex. Diagnosis of this result should follow dynamic-volume plex member descriptor and its backing extents through one controlled state transition.
Diagnosis of this result should begin with the object model and generation current at the failure. A later successful enumeration may describe a replacement object and cannot retroactively validate the rejected request.
Storage facts that change the diagnosis
| Storage diagnostic field | Value |
|---|---|
| Owning object | dynamic-volume plex member descriptor and its backing extents |
| Rejected invariant | a member ordinal lies outside the member array declared for the selected plex |
| Identity and generation | pack ID, volume ID, plex index, member index, disk IDs, extent offsets, health state and regeneration percentage |
| Narrow experiment | hold the descriptor count fixed and compare the boundary ordinal with the first value outside the valid range |
| Closest comparison | ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE |
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
- Before changing state, freeze the failing generation and save pack ID, volume ID, plex index, member index, disk IDs, extent offsets, health state and regeneration percentage.
- Exercise this exact comparison: hold the descriptor count fixed and compare the boundary ordinal with the first value outside the valid range.
- During the comparison, keep image bytes, unrelated disks, provider policy and cluster topology fixed.
- 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.
ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE describes a nearby but different storage condition; this result indicates that a member ordinal lies outside the member array declared for the selected plex.
Mechanism-specific note
Treat the ordinal as a generation-scoped array index. Record the declared count, the rejected index and whether the object list was refreshed between enumeration and submission. An index that was valid before a disk rescan can become out of range even though the corresponding disk, member or plex still exists under a stable identifier.
Corrective action and regression check
Rebuild the layout from enumerated objects and checked arithmetic rather than patching one serialized field; validate counts, indices, sizes, alignment and overflow before submission. Apply the change through the supported storage API, then close and reacquire affected objects before retrying.
- The original request now reaches success or a documented later status with the intended layout and access mode.
- A new enumeration reports internally consistent IDs, counts, geometry and ownership for the corrected object.
- The passing state survives the relevant lifecycle transition, such as reopen, remount, owner change or detach/attach.
- The application still distinguishes it from
ERROR_VOLMGR_MEMBER_INDEX_DUPLICATEand has no unbounded retry loop.
Technical references
- Microsoft: COM error codes for VOLMGR, VHD and SDIAG — documents the supported management path relevant to this HRESULT.
- Microsoft: Virtual Disk Service object model — defines the volmgr objects used to interpret it.
- Microsoft: Pack object — primary API or object-model reference.
- Microsoft: Virtual Disk Service common return codes — use this source to verify volmgr state and parameters.
Looking for a different code? Search another status or error code.