| Предыдущий | Следующий |
| VDS_E_ONE_EXTENT_PER_DISK | VDS_E_PLEX_SIZE_INVALID |
VDS_E_INVALID_BLOCK_SIZE
Практический смысл
Этот HRESULT означает, что Virtual Disk Service object/state validation отклонил условие некорректный блок размер. До исправления сохраните producer, входные аргументы и object/session state, иначе последующий recovery сотрёт причинный контекст.
Virtual Disk Service представляет storage как объекты disk, volume, plex, provider, initiator и asynchronous operations; свойства одного слоя нельзя автоматически переносить на другой.
Специфичные признаки исходной документации
VDS_VOLUME_PLEX_PROP · IVdsPack2::CreateVolume2 · Disk Object · VDS_VOLUME_PLEX_TYPE · VDS common return codes
Never repair the request by substituting an arbitrary 512-byte value when the provider reported zero sector size.
For simple or spanned plexes, expect stripe size to be zero and verify disk geometry is valid.
Those values participate at different layers: stripe size describes interleave for striped/parity plexes, while disk sector size describes device geometry.
Минимальный диагностический снимок
- VDS disk/provider object ID, status/health/flags и generation.
- SAN/cluster/read-only/offline/pack state, относящийся к операции.
- точный VDS method, provider/driver return и IVdsAsync final HRESULT.
VDS устарел как API, но его HRESULT по-прежнему полезен как указатель на точный contract старого storage stack. Важно сохранить object ID и final IVdsAsync result до Refresh или rescan.
Как отличить соседний результат
Сравните failing и working trace одной и той же операции. Существенным отличием должен быть параметр или state, связанный с «некорректный блок размер», а не одновременно изменённые environment и input.
Условие «некорректный блок размер» проверяйте на том VDS object и method, который вернул HRESULT. Partition, volume, plex, provider и asynchronous completion имеют разные контракты и не должны сливаться в один storage error.
Критерий восстановления
Устраните VDS condition «некорректный блок размер» на актуальном object generation, выполните Refresh при изменении состояния и повторите исходный method, дождавшись final asynchronous HRESULT.
Volume-level basis для размера блока
Published VDS contract здесь ищет ненулевую основу либо в stripe size тома, либо в sector size диска. Для simple/spanned plex stripe size обычно равен нулю, поэтому критично корректное значение bytes-per-sector. Для stripe/parity layout дополнительно важен interleave. Не подставляйте 512 байт как универсальный default, если provider сообщил нулевую geometry: это маскирует defect ниже volume manager. Логируйте ulStripeSize, plex type и sector size каждого contributing disk.
Технические ссылки
- VDS_VOLUME_PLEX_PROP.
- IVdsPack2::CreateVolume2.
- Disk Object.
- VDS_VOLUME_PLEX_TYPE.
- VDS common return codes.
Нужно найти другой код? Найти другой код состояния или ошибки.