Что означает код HRESULT 0x00030206 (STG_S_CANNOTCONSOLIDATE)?

 
Предыдущий Следующий
STG_S_CONSOLIDATIONFAILED STG_S_POWER_CYCLE_REQUIRED

STG_S_CANNOTCONSOLIDATE

Ограничение режима, а не внутренний сбой

Этот результат квалифицированного успеха означает, что фиксация завершена, но консолидация не подходит для способа открытия хранилища. К документированным случаям составных файлов относятся STGM_NOSCRATCH и попытка консолидации ниже внешнего уровня транзакционного хранилища.

Повтор той же фиксации с неизменными флагами и иерархией объектов не устранит условие. Консолидацию необходимо запрашивать на допустимом уровне с совместимыми режимами открытия.

Что проверить

  • Полный режим STGM_* , использованный для корневого и вложенных хранилищ.
  • Является ли целевой объект внешним транзакционным хранилищем.
  • Конфликтует ли STGM_NOSCRATCH или другая оптимизация с консолидацией.
  • Нужна ли приложению консолидация вообще; зафиксированные данные уже устойчиво сохранены по обычным правилам фиксации.

Ссылки

IStorage::Commit · Константы STGM · Основы Structured Storage


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