Что означает код HRESULT 0x80030070 (STG_E_MEDIUMFULL)?

 
Предыдущий Следующий
STG_E_INVALIDPARAMETER STG_E_PROPSETMISMATCHED

STG_E_MEDIUMFULL

Пространство требуется в момент фиксации

STG_E_MEDIUMFULL означает, что реализации хранилища не удалось получить достаточно устойчивого пространства для операции. Ошибка может возникнуть после изменения приложением данных в памяти при попытке опубликовать изменение через IStorage::Commit. В транзакционном процессе окончательной фиксации может потребоваться пространство для изменённых потоков, структур распределения и временного состояния; свободное место до редактирования не гарантирует, что последующая фиксация поместится.

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

Что делать

  • Проверьте свободное место и квоты и в назначении, и в настроенном временном или рабочем расположении.
  • Вызовите и проверьте IStorage::Commit до освобождения корневого хранилища; release не может сообщить о более позднем сбое записи.
  • Сохраняйте последнюю заведомо исправную версию документа до успешной фиксации новой.
  • Для пакетных задач резервируйте запас и ограничивайте параллельные записи, чтобы временное использование не возрастало непредсказуемо.

Ссылки


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