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

 
Предыдущий Следующий
ERROR_SERVICE_REQUEST_TIMEOUT ERROR_SERVICE_DATABASE_LOCKED

ERROR_SERVICE_NO_THREAD

Служба не смогла получить поток выполнения ServiceMain

Когда SCM запускает службу в процессе службы, диспетчер управления службами создаёт новый поток для выполнения обратного вызова ServiceMain этой службы. ERROR_SERVICE_NO_THREAD указывает на невозможность создать такой поток ещё до завершения обычной инициализации ServiceMain.

Отличайте это от ситуации, когда функция ServiceMain запускается и затем сообщает прикладную ошибку. Проверьте общепроцессное давление на потоки и память, ограничения job-объекта или безопасности и сбои процесса, в котором размещена служба. Особого внимания требуют службы в общем процессе: исчерпание потоков или повреждение хоста может затронуть несколько служб. Зафиксируйте идентичность процесса-хоста и другие размещённые в нём службы, затем сопоставьте сбой с событиями исчерпания ресурсов или отказа процесса. Перезапуск одной службы может не восстановить повреждённый общий хост.

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

  • Определите процесс-хост службы и все службы, совместно использующие этот процесс.
  • Проверьте состояние потоков, памяти, job-объектов и ошибки процесса в момент запуска.
  • Отличайте ошибку создания потока диспетчером от кода, уже выполняющегося внутри ServiceMain.

Ссылки


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