Что означает код HRESULT 0x80042919 (VDS_E_VDISK_NOT_OPEN)?

 
Предыдущий Следующий
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 или внешний ресурс. После изменения заново получите актуальные объекты, если их состояние могло устареть, и повторите исходный минимальный вызов.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.