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

 
Предыдущий Следующий
ERROR_PROCESS_IS_PROTECTED ERROR_DISK_QUOTA_EXCEEDED

ERROR_SERVICE_NOTIFY_CLIENT_LAGGING

Клиент уведомлений службы отстал от состояния SCM

NotifyServiceStatusChange доставляет уведомления об изменении состояния службы через APC, поставленный в очередь вызывающего потока. Для получения обратного вызова поток должен войти в предупреждаемое ожидание. Microsoft документирует ERROR_SERVICE_NOTIFY_CLIENT_LAGGING для случая, когда обработка уведомлений слишком сильно отстаёт от текущего состояния служб компьютера.

Документированный способ восстановления конкретен: закройте дескриптор SCM, откройте новый и снова вызовите NotifyServiceStatusChange. Также устраните причину отставания. Каждая регистрация уведомления может поставить в очередь не более одного обратного вызова, и для дальнейших обновлений клиент должен зарегистрироваться повторно. Поддерживайте поток уведомлений отзывчивым и в предупреждаемом ожидании; не выполняйте длительную работу по управлению службами непосредственно в обратном вызове. Клиент, который не обрабатывает APC или неверно выполняет повторную регистрацию, может потерять синхронизацию с состоянием SCM, даже если отдельные службы исправны.

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

  • Закройте и заново откройте дескриптор SCM, затем повторно зарегистрируйте уведомление.
  • Убедитесь, что поток уведомлений выполняет предупреждаемые ожидания и обрабатывает обратные вызовы APC.
  • Вынесите ресурсоёмкую работу из обратного вызова и осознанно регистрируйтесь повторно для последующих изменений.

Ссылки


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