| Previous | Next |
| ERROR_VHD_INVALID_FILE_SIZE | ERROR_VIRTDISK_NOT_VIRTUAL_DISK |
ERROR_VIRTDISK_PROVIDER_NOT_FOUND
Identify the owner before touching the layout: virtdisk provider not found
ERROR_VIRTDISK_PROVIDER_NOT_FOUND (0xC03A0014) is emitted by the virtdisk path when the Virtual Disk API cannot select a provider that recognizes the requested device type, vendor and image format. The deciding object is Virtual Disk API provider, image format and host-disk state, so the first investigation belongs there rather than in a generic “disk failure” bucket.
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.
Minimum diagnostic set
| Storage diagnostic field | Value |
|---|---|
| Closest comparison | ERROR_VIRTDISK_NOT_VIRTUAL_DISK |
| Owning object | Virtual Disk API provider, image format and host-disk state |
| Rejected invariant | the Virtual Disk API cannot select a provider that recognizes the requested device type, vendor and image format |
| Identity and generation | image path, VIRTUAL_STORAGE_TYPE, provider/vendor IDs, VHD/VHDX/VHD Set identifiers, host sector sizes, attach flags, ownership and online/read-only state |
| Narrow experiment | open the same image with an explicit matching VIRTUAL_STORAGE_TYPE and with the original type/vendor tuple |
Reproduce without destructive cleanup
- serialize the failing request and the enumeration from which its identifiers came.
- Preserve image path, VIRTUAL_STORAGE_TYPE, provider/vendor IDs, VHD/VHDX/VHD Set identifiers, host sector sizes, attach flags, ownership and online/read-only state while every handle is still valid.
- Repeat the operation using this controlled change: open the same image with an explicit matching VIRTUAL_STORAGE_TYPE and with the original type/vendor tuple.
- Close and reacquire the relevant objects, then run once more to test lifecycle correctness after this result.
ERROR_VIRTDISK_NOT_VIRTUAL_DISK describes a nearby but different storage condition; this result indicates that the Virtual Disk API cannot select a provider that recognizes the requested device type, vendor and image format.
Mechanism-specific note
Provider selection uses device type, vendor ID and image format. Capture the exact VIRTUAL_STORAGE_TYPE and whether the caller asked Windows to infer it. A filename extension is only a hint; renamed files, unsupported formats and an incorrect vendor tuple can all fail before image metadata is parsed.
Restore the contract
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. After correcting it, reopen the pack, volume, tier, snapshot or virtual disk so no cached generation participates in the validation run.
- the first retry uses newly enumerated identifiers rather than cached handles.
- The durable metadata or provider state agrees with the success returned after it.
- A second run after close/reopen does not recreate the rejected condition.
- the nearby
ERROR_VIRTDISK_NOT_VIRTUAL_DISKpath remains separately testable and separately logged.
Technical references
- Microsoft: Virtual Disk API — defines the virtdisk objects used to interpret it.
- Microsoft: OpenVirtualDisk — primary API or object-model reference.
- Microsoft: AttachVirtualDisk — use this source to verify virtdisk state and parameters.
- Microsoft: GetVirtualDiskInformation — documents the supported management path relevant to this HRESULT.
Looking for a different code? Search another status or error code.