Что означает код HRESULT 0x8003001D (STG_E_WRITEFAULT)?

 
Предыдущий Следующий
STG_E_SEEKERROR STG_E_READFAULT

STG_E_WRITEFAULT

Почему ошибка записи — это не просто ошибка диалога сохранения

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

Непосредственной причиной может быть ошибка ввода-вывода, отключение общего ресурса, сбой съёмного носителя, вмешательство антивируса или резервного копирования либо реализация хранилища, которая больше не способна завершить запись. Эту ошибку не следует путать с STG_E_MEDIUMFULL, которая относится именно к нехватке места.

Реакция и сбор данных

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

Ссылки


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