- Services.exe
-
Service Control Manager (SCM) (\Windows\System32\Services.exe) — в Microsoft Windows, сервер, реализующий технологию удалённого вызова процедур (remote procedure call — RPC). Обеспечивает создание, удаление, запуск и остановку сервисов ОС. Стартует при загрузке системы, обеспечивает работу службы Журнал событий, а также позволяет манипуляцию процессами удаленной машины.[1]
Содержание
Функции
Функции данного сервера представляют интерфейс для выполнения следующих задач:
- Монтирование базы данных установленных сервисов
- Запуск сервисов при загрузке операционной системы, либо по требованию
- Получение количественной и качественной информации об установленных сервисах и системных драйверах
- Пересылка управляющих запросов запущенным сервисам
- Блокировка и разблокировка базы данных сервисов
База даных
Монтирование базы данных установленных сервисов производится в системном реестре и располагается в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Данная база используется SCM и другими программами для добавления, изменения или конфигурирования сервисов.
Начальная структура базы сервисов создаётся при установке операционной системы и включает в себя следующие данные:
- тип сервиса
- тип запуска
- уровень контроля ошибок
- полный путь к исполняемому файлу
Также информация о сервисе может быть дополнена следующими данными:
- информация о зависимостях сервиса
- логин и пароль учётной записи, с правами которой нужно запускать сервис
В структуре данной базы обязательно присутствуют записи, описывающие системные драйверы, необходимые для запуска операционной системы.
Алгоритм работы
При загрузке операционной системы SCM запускает все сервисы, у которых указан тип запуска «Автоматически», а так же все сервисы указанные в зависимостях автозапускаемых сервисов. Таким образом, при запуске сервиса с типом запуска «Автоматически», у которого в зависимостях указаны сервисы с типом запуска «Вручную», последние также будут запущены, несмотря на свой тип запуска.
После загрузки операционной системы пользователь может вручную запустить необходимые сервисы, воспользовавшись консолью управления сервисами.
Пользователь также может указать параметры запуска сервиса которые будут переданы как аргументы функции StartService при запуске.
Во время запуска сервиса SCM выполняет следующие действия:
- Получение сохранённой в базе данных информации по учётной записи с правами которой должен запускаться сервис
- Авторизация под этой учётной записью
- Получение пользовательского профиля
- Подготовка процесса сервиса к выполнению
- Привязка доступов учётной записи к порождённому процессу
- Запуск процесса сервиса на выполнение
Особенности функционирования
При завершении процесса services.exe на экране появится окно Завершение работы системы (также как и при завершении процесса Lsass.exe).
Источники
См. также
Wikimedia Foundation. 2010.