What does HRESULT 0xC03A0015 (ERROR_VIRTDISK_NOT_VIRTUAL_DISK) mean?

 
Could be also:
ConstantTypeOS
STATUS_VIRTDISK_NOT_VIRTUAL_DISKNTSTATUSWindows
Previous Next
ERROR_VIRTDISK_PROVIDER_NOT_FOUND ERROR_VHD_PARENT_VHD_ACCESS_DENIED

ERROR_VIRTDISK_NOT_VIRTUAL_DISK

Interpret the state transition: virtdisk not virtual disk

Windows returns ERROR_VIRTDISK_NOT_VIRTUAL_DISK, value 0xC03A0015, at the virtdisk boundary. It means that the opened path or disk object does not contain a virtual-disk format accepted by the selected provider. Preserve the exact handle and generation of Virtual Disk API provider, image format and host-disk state before any rescan changes the evidence.

The Virtual Disk API chooses a format provider from VIRTUAL_STORAGE_TYPE, opens an image with explicit access rights and can attach it as a disk. Provider selection, backing-chain integrity, host-file attributes, sector geometry and operating-system ownership are independent validation stages.

Record geometry, identity and ownership

Storage diagnostic fieldValue
Owning objectVirtual Disk API provider, image format and host-disk state
Rejected invariantthe opened path or disk object does not contain a virtual-disk format accepted by the selected provider
Identity and generationimage path, VIRTUAL_STORAGE_TYPE, provider/vendor IDs, VHD/VHDX/VHD Set identifiers, host sector sizes, attach flags, ownership and online/read-only state
Narrow experimentinspect the file signature and open a known-good image of the same extension through the same API and access mask
Closest comparisonERROR_VIRTDISK_PROVIDER_NOT_FOUND

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

Separate validation from capability

  1. Before changing state, freeze the failing generation and save image path, VIRTUAL_STORAGE_TYPE, provider/vendor IDs, VHD/VHDX/VHD Set identifiers, host sector sizes, attach flags, ownership and online/read-only state.
  2. Exercise this exact comparison: inspect the file signature and open a known-good image of the same extension through the same API and access mask.
  3. During the comparison, keep image bytes, unrelated disks, provider policy and cluster topology fixed.
  4. 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.

Use ERROR_VIRTDISK_PROVIDER_NOT_FOUND as the nearest comparison. This result is specific to the opened path or disk object does not contain a virtual-disk format accepted by the selected provider; the neighboring result belongs to another validation or lifecycle branch. Keeping both names prevents a generic storage label from hiding the actual owner.

Mechanism-specific note

The provider was reached but the target does not parse as an accepted virtual-disk image. Preserve the first blocks, file length and parent-chain metadata without modifying the file. Distinguish a wrong path or ordinary file from a damaged VHD/VHDX, because only the latter warrants image-integrity recovery.

Verification after correction

Correct the provider, image format, backing-file chain, host geometry or disk ownership identified by the failing call, then reopen the image to obtain a new handle before retrying. The repair is incomplete until a fresh enumeration and new handle observe the corrected state.

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

Technical references


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