Что означает код HRESULT 0x80030019 (STG_E_SEEKERROR)?

 
Предыдущий Следующий
STG_E_DISKISWRITEPROTECTED STG_E_WRITEFAULT

STG_E_SEEKERROR

Что означает сбой позиционирования

STG_E_SEEKERROR возникает, когда Structured Storage не может перейти к требуемой позиции в потоке или базовом хранилище. Ошибка может появиться при чтении составного документа ещё до достижения полезной нагрузки, нужной приложению. Это полезная граница диагностики: проблема может находиться в нижележащем потоке, файловой системе или размещении контейнера, а не в разборе видимого содержимого документа.

Составные файлы представляют потоки цепочками секторов. Считывателю приходится многократно позиционироваться при обходе каталога, FAT, mini-FAT и данных потоков. Поэтому повреждённая цепочка, обрезанный файл, прерванная загрузка или ненадёжный носитель могут проявиться HRESULT позиционирования, но сам код не определяет слой сбоя.

Как безопасно диагностировать

  • Попробуйте локальную копию файла; другой результат на сетевом или съёмном носителе меняет направление расследования.
  • Сравните размер и хэш с заведомо исправным источником до попытки восстановления.
  • Исследуйте контейнер только для чтения независимым анализатором, например POIFS или libolecf, чтобы проверить воспроизводимость вне исходного приложения.
  • Сохраните оригинал. Повторное сохранение приложением может уничтожить данные о первом сбое.

Ссылки


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