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