<<
>>

Ошибки при запуске

Если драйвер или сервис в ответ на команду запуска SCM сообщает об ошибке, реакция SCM определяется значением параметра ErrorControl из раздела реестра для соответствующего сервиса.

Если ErrorControl равен SERVICE_ ERRORIGNORE (0) или вообще не указан, SCM игнорирует ошибку и продолжает обработку запуска сервисов. Если ErrorControl равен SERVICEER-RORNORMAL (1), SCM заносит в журнал событий запись такого вида: «The ‹имя сервиса› service failed to start due to the following error: («Служба ‹имя сервиса› завершена из-за ошибки:»). SCM добавляет возвращаемый сервисом Windows-код ошибки, указывая его в записи в качестве причины сбоя при запуске. Ha рис. 4-15 показан пример такой записи.

Рис. 4-15. Запись в журнале событий, уведомляющая об ошибке при запуске сервиса

Если сервис, значение ErrorControl которого равно SERVICE_ERROR_SEVERE (2) или SERVICE_ERROR_CRITICAL (3), сообщает об ошибке при запуске, SCM делает запись в журнале событий и вызывает внутреннюю функцию ScRevertToLastKnownGood. Эта функция активизирует версию реестра, соответствующую последней удачной конфигурации, в которой система была успешно загружена. После этого она перезагружает систему, вызывая сервис NtShutdoumSystem, реализуемый исполнительной системой. Если система уже загружена в последней удачной конфигурации, она просто перезагружается.

<< | >>
Источник: М.Руссинович, Д.Соломон. Внутреннее устройство Microsoft Windows (главы 1–4). 2005

Еще по теме Ошибки при запуске:

  1. 2.3. Ошибки при ретроспекции
  2. 2.3. ОШИБКИ ПРИ РЕТРОСПЕКЦИИ
  3. Распространенные ошибки при обращении с просьбой
  4. Основные ошибки при задавании вопросов. Слишком открытые вопросы.
  5. Первый запуск программы
  6. Второй этап - ЗАПУСК НА ПОДСОЗНАНИЕ.
  7. § 36 Задаток и его значение. – Употребление задатка в России. – Задаток при продаже. – При публичных торгах. – По казенным подрядам.
  8. Статья 118. Умышленное убийство при превышении пределов необходимой обороны или при превышении мер, необходимых для задержания преступника
  9. Работа над ошибками
  10. ОШИБКА ОПЕРАТОРА