Что означает код ошибки Windows 1018 (ERROR_KEY_DELETED)?

 
Предыдущий Следующий
ERROR_NOT_REGISTRY_FILE ERROR_NO_LOG_SPACE

ERROR_KEY_DELETED

Раздел реестра перешёл в состояние удаления

Раздел реестра может быть помечен для удаления, пока дескрипторы к нему всё ещё существуют. Поэтому удаление раздела — это событие жизненного цикла, а не обязательно мгновенное исчезновение для каждого потока. ERROR_KEY_DELETED сообщает вызывающей стороне, что она попыталась выполнить операцию через контекст раздела, который уже удаляется.

Ищите параллельно выполняемый код удаления, деинсталляции, отката, обновления политики или сброса конфигурации. Типичная гонка возникает, когда один поток сохраняет HKEY, другой компонент удаляет то же дерево разделов, а последующий код пытается выполнить запрос или запись через устаревший дескриптор. Повторное открытие по имени полезно только тогда, когда контракт приложения допускает повторное создание раздела или ожидается, что его восстановит другой владелец. Не создавайте удалённый раздел службы или системы вслепую: удаление может быть намеренным, а повторное создание неполного раздела приведёт позднее к другой ошибке.

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

  • Проследите, кто может удалить раздел и когда был открыт сбойный дескриптор.
  • Закройте устаревшие дескрипторы и повторно разрешайте раздел только тогда, когда это допускает контракт владения.
  • Проверьте пути деинсталляции, отката, применения политики и сброса на параллельное удаление.

Ссылки


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