| Previous | Next |
| ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE | ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE |
ERROR_VIRTDISK_DISK_ALREADY_OWNED
What this result says about the disk model: virtdisk disk already owned
ERROR_VIRTDISK_DISK_ALREADY_OWNED (0xC03A001E) is emitted by the virtdisk path when another subsystem or cluster owner already holds exclusive ownership of the disk object. The deciding object for this HRESULT 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 for this HRESULT. This object model determines which identifiers, counts and ownership state are meaningful.
A useful record contains more than the final UI symptom: retain the first failing call, target identity, topology and state transition before management software rescans the disks.
Capture the exact object generation
| Storage diagnostic field | Value |
|---|---|
| Narrow experiment | record the current owner and disk attributes, release or offline the disk in a test scope, and retry without changing the image |
| Closest comparison | ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE |
| Owning object | Virtual Disk API provider, image format and host-disk state |
| Rejected invariant | another subsystem or cluster owner already holds exclusive ownership of the disk object |
| 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 |
Do not overwrite this result with a close, detach or rollback error. Preserve the causal order so the original storage contract remains visible.
Prove the boundary in a test volume
- Capture the API parameters and object map that led to this result; do not begin with cleanup.
- Build a passing control with the same disks or image copy and 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.
- Run the narrow transition described here: record the current owner and disk attributes, release or offline the disk in a test scope, and retry without changing the image while diagnosing this result.
- Compare resulting IDs, counts, health and ownership to prove the caller crossed the result invariant rather than suppressing it.
Compare traces for ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE and this result. The latter page covers a nearby storage boundary, whereas it rejects another subsystem or cluster owner already holds exclusive ownership of the disk object for this HRESULT. A correct caller should be able to reproduce each case independently.
Mechanism-specific note
Ownership can belong to clustering, another virtualization stack or a management service. Identify the owner and lease/reservation state before attempting release. Forcing the disk online elsewhere can create simultaneous writers, which is more serious than the original attach or management failure while diagnosing it.
Safe recovery path
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 result repair is incomplete until a fresh enumeration and new handle observe the corrected state.
- The controlled A/B case changes only the invariant responsible for this HRESULT.
- 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 the operation.
- Telemetry includes both symbolic names when it or
ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLEoccurs again.
Do not use it as a reason to edit dynamic-disk sectors, VHDX metadata, RCT sidecars or snapshot support files directly. Unsupported edits can turn a recoverable state mismatch into persistent corruption while diagnosing it.
Technical references
- Microsoft: Virtual Disk API — defines the virtdisk objects used to interpret it.
- Microsoft: OpenVirtualDisk — primary API or object-model reference for the boundary.
- Microsoft: AttachVirtualDisk — use this source to verify virtdisk state and parameters for this HRESULT.
- Microsoft: GetVirtualDiskInformation — documents the supported management path relevant to it.
Looking for a different code? Search another status or error code.
