What does HRESULT 0xC038002C (ERROR_VOLMGR_NOTIFICATION_RESET) mean?

 
Could be also:
ConstantTypeOS
STATUS_VOLMGR_NOTIFICATION_RESETNTSTATUSWindows
Previous Next
ERROR_VOLMGR_NO_SUCH_USER ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID

ERROR_VOLMGR_NOTIFICATION_RESET

Why this is narrower than a generic disk error: volmgr notification reset

Windows returns ERROR_VOLMGR_NOTIFICATION_RESET, value 0xC038002C, at the volmgr boundary. It means that the notification generation changed, invalidating outstanding task numbers and previously returned registration state. Preserve the exact handle and generation of volume-manager notification registration and pending wait request before any rescan changes the evidence.

Storage facts that change the diagnosis

Storage diagnostic fieldValue
Rejected invariantthe notification generation changed, invalidating outstanding task numbers and previously returned registration state
Identity and generationregistration ID, task number, pending IRP count, process lifetime, pack ID and the notification generation returned before the failure
Narrow experimentregister one consumer, issue exactly one asynchronous wait, complete or cancel it, and compare registration/task identifiers at each step
Closest comparisonERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE
Owning objectvolume-manager notification registration and pending wait request

A management layer handling this result should report later recovery errors separately, because they answer a different question from the failed storage operation.

A/B test

  1. Create a nonproduction case that preserves the same geometry and ownership model.
  2. Collect registration ID, task number, pending IRP count, process lifetime, pack ID and the notification generation returned before the failure before invoking the first mutating API.
  3. Change one condition only: register one consumer, issue exactly one asynchronous wait, complete or cancel it, and compare registration/task identifiers at each step.
  4. Re-enumerate after the transition and confirm it is not reproduced by a stale handle from the old generation.

ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE describes a nearby but different storage condition; this result indicates that the notification generation changed, invalidating outstanding task numbers and previously returned registration state.

Mechanism-specific note

Notification registrations have two lifetimes: the registration itself and any outstanding asynchronous wait. Log both identifiers and the cancellation path. A service restart, handle close or notification reset can invalidate the old generation even when the numeric task value is later reused, so never match completion by task number alone.

Corrective action and regression check

Repair notification ownership and sequencing: cancel stale waits, unregister only live IDs, then create one replacement registration after the previous generation is closed. After correcting it, reopen the pack, volume, tier, snapshot or virtual disk so no cached generation participates in the validation run.

  • 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_UNEXPECTED_DISK_LAYOUT_CHANGE and has no unbounded retry loop.

Technical references


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