| Предыдущий | Следующий |
| VDS_E_VD_ALREADY_DETACHED | VDS_E_VD_IS_BEING_ATTACHED |
VDS_E_VD_NOT_ATTACHED_READONLY
Практический смысл
VDS_E_VD_NOT_ATTACHED_READONLY относится к Virtual Disk Service и virtual disk. Конкретный признак: read-only виртуальный диск не подключён в требуемом состоянии. Это состояние полезно как точка разделения нескольких соседних причин, поэтому не заменяйте его общим сообщением об ошибке.
Это failure HRESULT; успешность следующего шага подтверждайте отдельным результатом, а не отсутствием исключения в верхнем слое. В первую очередь проверяйте lifecycle виртуального диска: open/attach/detach/compact/expand/merge и соответствующую generation объекта. Не переносите вывод с соседнего HRESULT только потому, что у него тот же facility или общий компонент.
Специфичные признаки исходного описания
Why this state matters A disk that is attached read/write does not satisfy the condition just because no application is currently writing to it.
Diagnostics should inspect how the disk was attached and coordinate a controlled detach/reattach if a maintenance operation truly requires read-only exposure.
VDS attach accepts ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY , and some virtual-disk maintenance operations require the disk to be detached or attached read-only.
Check the flags used when the current attachment was created instead of inferring mode from observed I/O activity.
Что сохранить до исправления
- pathname и open flags виртуального диска
- текущее attach/read-only/operation state до вызова
- финальный IVdsAsync result и изменение состояния после операции
Как проверить границу
При асинхронной операции сохраняйте как HRESULT запуска/опроса, так и финальный operation HRESULT — они описывают разные границы. Для состояния «read-only виртуальный диск не подключён в требуемом состоянии» сначала воспроизведите минимальную операцию без параллельных изменений конфигурации, затем сравните before/after evidence.
Исправление и повтор
Исправляйте только подтверждённый prerequisite на уровне Virtual Disk Service и virtual disk: входной параметр, capability, object state, provider/graph topology или внешний ресурс. После изменения заново получите актуальные объекты, если их состояние могло устареть, и повторите исходный минимальный вызов.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.