Что означает код HRESULT 0x8003001E (STG_E_READFAULT)?

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

STG_E_READFAULT

Что означает это состояние

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

Поскольку формат Compound File Binary Format хранит иерархию хранилищ и потоков в одном физическом файле, небольшой повреждённый участок может заблокировать доступ к в остальном несвязанному потоку. Ошибка становится видна, когда функция приложения впервые обращается к затронутому потоку.

Практические действия

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

Ссылки


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