| Предыдущий | Следующий |
| STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION | STATEREPOSITORY_E_BLOCKED |
STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED
Что означает код
HRESULT 0X80670005 отмечает конкретную границу Windows State Repository service/store: State Repository: ошибка / словарь / повреждён. Причину ищут на первом вызове, вернувшем код, а не на последующем UI-сообщении или автоматическом повторе.
В исходном EN-описании ключевое условие сформулировано так: Database integrity-check output on a copy.
. Используйте эту формулировку как границу: если фактическое состояние ей не соответствует, ищите соседний HRESULT, а не расширяйте диагноз.
Вторая проверка из документации: StateRepository detected invalid dictionary data rather than ordinary lock contention.
. Она полезна для контролируемого сравнения failing/working trace и относится именно к этому результату.
Что сохранить до изменений
- package/application identity и repository DB generation.
- transaction/statement ID, caller ID и retry count.
- lock/busy/cache/schema/recovery event и elapsed timeout.
Метка результата для корреляции: ошибка / словарь / повреждён. Сохраняйте значения, которые различают этот переход от соседних кодов; секреты, приватные ключи и полный licensing payload в журналы не помещайте.
Как отделить эту причину
Различайте BUSY, LOCKED, shared-cache lock, recovery retry/timeout, schema mismatch и transaction-required. Бесконечный retry скрывает причину.
Code-specific ориентир: Treat it as corrected only when the repaired or rebuilt repository passes validation and repeated application-model operations without recreating corruption; retain the original negative case so fallback cannot be mistaken for repair.
. В тесте оставьте object identity и операцию прежними и меняйте только один prerequisite, связанный с этой формулировкой.
- Сопоставьте evidence с условием «State Repository: ошибка / словарь / повреждён» и ближайшим отличающимся состоянием.
- Измените один подтверждённый input, policy, storage или device prerequisite.
- Повторите исходную операцию и сравните первый HRESULT и устойчивое состояние после завершения.
- Запишите 0X80670005, UTC-время, вызывающий API и identity объекта до повторов.
Проверка после исправления
Исправьте доказанный locking/schema/recovery prerequisite; повторяйте с ограниченным backoff и тем же transaction scope.
Для финальной проверки сохраните ещё один исходный маркер: Validation error and dictionary identity. for this result, this pins the event to an object or resource generation within the Windows StateRepository boundary.
. Успех означает, что исходное условие больше не воспроизводится на той же операции, а не только исчезло внешнее уведомление.
Технические ссылки
- Microsoft Win32 metadata: winerror.h.
- SQLite: Database file format.
- Microsoft: Windows service guidance for StateRepository.
- SQLite: File locking and concurrency.
Нужно найти другой код? Найти другой код состояния или ошибки.