Site icon EfmSoft

What does HRESULT 0xC0380040 (ERROR_VOLMGR_PLEX_NOT_SIMPLE) mean?

 
Could be also:
ConstantTypeOS
STATUS_VOLMGR_PLEX_NOT_SIMPLENTSTATUSWindows
Previous Next
ERROR_VOLMGR_PLEX_NOT_RAID5 ERROR_VOLMGR_STRUCTURE_SIZE_INVALID

ERROR_VOLMGR_PLEX_NOT_SIMPLE

Read the code at the owning storage layer: volmgr plex not simple

Windows returns ERROR_VOLMGR_PLEX_NOT_SIMPLE, value 0xC0380040, at the volmgr boundary. It means that the operation requires one simple plex and cannot be applied to a spanned, striped, mirrored or parity layout for it. Preserve the exact handle and generation of volume plex descriptor, layout type and regeneration state 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 while diagnosing this result. Indices and counts are relative to the submitted layout generation, while configuration logs are replicated across participating dynamic disks. This object model determines which identifiers, counts and ownership state are meaningful.

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 while diagnosing it.

Build a trustworthy incident record

Storage diagnostic fieldValue
Identity and generationvolume ID, plex ordinal, plex type, member array, active/inactive state, health status and current regeneration job
Narrow experimentrepeat the operation on simple, spanned and striped test plexes while preserving volume size and disk health
Closest comparisonThis result_SPANNED
Owning objectvolume plex descriptor, layout type and regeneration state
Rejected invariantthe operation requires one simple plex and cannot be applied to a spanned, striped, mirrored or parity layout

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

Controlled comparison

  1. Associate this result with one caller, one transaction and one target UniqueId.
  2. Save the pre-call and post-call inventories, including volume ID, plex ordinal, plex type, member array, active/inactive state, health status and current regeneration job while diagnosing it.
  3. Use this A/B case for it without touching unrelated storage: repeat the operation on simple, spanned and striped test plexes while preserving volume size and disk health.
  4. Validate both the HRESULT and the on-disk or provider state after the relevant reopen, remount or attach cycle for it.

Compare traces for ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED and it. The latter page covers a nearby storage boundary, whereas it rejects the operation requires one simple plex and cannot be applied to a spanned, striped, mirrored or parity layout for it. A correct caller should be able to reproduce each case independently while diagnosing it.

Mechanism-specific note

Simple, spanned, striped and parity plexes expose different address mappings for it. Preserve the type and the extent-to-disk order. An operation that edits linear extent boundaries cannot safely be applied to a striped or parity mapping even when the total byte length is identical while diagnosing it.

Completion criteria

Select an operation compatible with the actual plex type and keep at least one active data copy throughout detach, repair or regeneration for it. Keep the correction scoped to the owning object and avoid rewriting adjacent metadata merely to make the call return success for it.

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.

Technical references


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

Exit mobile version