| Предыдущий | Следующий |
| VDS_E_COMPRESSION_NOT_SUPPORTED | VDS_E_VDISK_INVALID_OP_STATE |
VDS_E_VDISK_NOT_OPEN
Практический смысл
VDS_E_VDISK_NOT_OPEN относится к Virtual Disk Service и virtual disk. Конкретный признак: виртуальный диск не открыт. Это состояние полезно как точка разделения нескольких соседних причин, поэтому не заменяйте его общим сообщением об ошибке.
Это failure HRESULT; успешность следующего шага подтверждайте отдельным результатом, а не отсутствием исключения в верхнем слое. В первую очередь проверяйте lifecycle виртуального диска: open/attach/detach/compact/expand/merge и соответствующую generation объекта. Не переносите вывод с соседнего HRESULT только потому, что у него тот же facility или общий компонент.
Специфичные признаки исходного описания
Check the requested access mask and open flags; a failed open must not be hidden by continuing with later operations.
IVdsVDisk::Open creates the opened-handle representation and returns IVdsOpenVDisk , which exposes attach, detach, compact, merge, and expand operations.
Confirm that IVdsVDisk::Open completed successfully and that the returned IVdsOpenVDisk pointer is still held by the caller.
Do not retry attach, merge, or expand on a newly enumerated IVdsVDisk object until the open lifecycle has been completed again.
Что сохранить до исправления
- pathname и open flags виртуального диска
- текущее attach/read-only/operation state до вызова
- финальный IVdsAsync result и изменение состояния после операции
Как проверить границу
При асинхронной операции сохраняйте как HRESULT запуска/опроса, так и финальный operation HRESULT — они описывают разные границы. Для состояния «виртуальный диск не открыт» сначала воспроизведите минимальную операцию без параллельных изменений конфигурации, затем сравните before/after evidence.
Исправление и повтор
Исправляйте только подтверждённый prerequisite на уровне Virtual Disk Service и virtual disk: входной параметр, capability, object state, provider/graph topology или внешний ресурс. После изменения заново получите актуальные объекты, если их состояние могло устареть, и повторите исходный минимальный вызов.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.