Список записей службы
Так как каждая запись службы считывается из базы данных установленных служб, SCM создает запись службы для службы. Запись службы включает в себя:
- Имя службы
- Тип запуска (автозапуск или запуск по запросу)
- Состояние службы (см. структуру SERVICE_STATUS)
- Тип
Текущее состояние
Допустимые коды элементов управления
Код выхода
Указание ожидания - Указатель на список зависимостей
Имя пользователя и пароль учетной записи указываются во время установки службы. SCM сохраняет имя пользователя в реестре и пароль в безопасной части локального центра безопасности (LSA). Системный администратор может создавать учетные записи с паролями, которые никогда не истекают. Кроме того, системный администратор может создавать учетные записи с паролями, которые истекают и управляют учетными записями, периодически изменяя пароли.
SCM сохраняет две копии пароля учетной записи пользователя, текущий пароль и пароль резервного копирования. Пароль, указанный при первом установке службы, хранится в качестве текущего пароля, а пароль резервной копии не инициализирован. Когда SCM пытается запустить службу в контексте безопасности учетной записи пользователя, он использует текущий пароль. Если текущий пароль используется успешно, он также сохраняется в качестве пароля резервного копирования. Если пароль изменяется с помощью функции ChangeServiceConfig или служебной программы панели управления Services, новый пароль сохраняется в качестве текущего пароля, а предыдущий пароль хранится в качестве пароля резервного копирования. Если SCM пытается запустить службу и текущий пароль завершается ошибкой, он использует пароль резервного копирования. Если пароль резервного копирования используется успешно, он сохраняется в качестве текущего пароля.
SCM обновляет состояние службы, когда служба отправляет уведомления о состоянии с помощью функции SetServiceStatus. SCM поддерживает состояние службы драйверов, запрашивая систему ввода-вывода вместо получения уведомлений о состоянии, как это делается из службы.
Служба может зарегистрировать дополнительные сведения о типе, вызвав функцию SetServiceBits. Функции NetServerGetInfo и NetServerEnum получают поддерживаемые типы служб.