Что означает код HRESULT 0x80042931 (VDS_E_VD_DISK_ALREADY_EXPANDING)?

 
Предыдущий Следующий
VDS_E_VD_DISK_ALREADY_OPEN VDS_E_VD_ALREADY_COMPACTING

VDS_E_VD_DISK_ALREADY_EXPANDING

Этот HRESULT является формой дублирующей операции для состояния расширения VDS. В отличие от VDS_E_VD_DISK_IS_EXPANDING, который может отклонить другую операцию из-за активного расширения, данный код означает, что второе расширение запрошено до завершения первого. Второй запрос не ставит новый целевой размер в очередь.

Почему это состояние важно

Поскольку Expand является асинхронным, код управления должен сохранять возвращённый IVdsAsync и сериализовать изменения ёмкости для каждого виртуального диска. Таймер повторов, который вызывает Expand снова до получения окончательного результата первой операции, может сформировать этот HRESULT даже при исправном поставщике.

На что направить диагностику

  • Сопоставляйте вызовы расширения по идентификатору объекта VDS и пути обеспечения и допускайте только одно активное расширение на виртуальный диск.
  • Сохраняйте исходный интерфейс IVdsAsync и ожидайте его завершения; записывайте окончательный HRESULT и запрошенный NewSize.
  • Не трактуйте повторный запрос как доказательство принятия или достижения первого целевого размера.
  • После завершения запросите VirtualSize и рассчитывайте дальнейшее расширение от текущей ёмкости.

Технические источники

IVdsOpenVDisk::Expand · IVdsOpenVDisk · VDS_VDISK_STATE · VDS_VDISK_PROPERTIES · Коды ошибок MS-VDS


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