...
Примечание
Диспетчер SCM взаимодействует с SCP с помощью именованного канала \Pipe\ Ntsvcs. SCM при запуске очередной службы также создает канал \Pipe\Net\ NtControl-PipeX, после чего ждет подключения запускаемой службы к этому каналу.
Если по истечении определенного интервала (по умолчанию 30 секунд) служба так и не подключилась к каналу, то SCM завершает работу службы. Интервал ожидания подключения службы к каналу определяется параметром REG_DWORD-типа ServicesPipeTimeout, расположенным в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control.
Если же служба подключилась к каналу, то SCM передает по каналу команду окончательного запуска службы.
Сведения обо всех службах и драйверах, установленных в системе, хранятся в подразделах ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services. Эта ветвь является постоянным представлением базы служб SCM.
Каждая установленная служба или драйвер (независимо от того, работает он в данный момент или нет) имеет свой собственный подраздел в данной ветви реестра. Этот подраздел создается в тот момент, когда служба регистрируется с помощью функции CreateService из библиотеки advapi32.dll.
Параметры, описывающие службы
Подраздел службы хранит общие сведения о службе, например имя и описание службы, ее исполняемый файл, способ запуска и т. д., а также настройки службы, если такие имеются. Общие сведения о работе служб хранятся в одних и тех же параметрах (с одинаковыми названиями), тогда как настройки службы могут описываться любыми параметрами, названия которых придумывают сами создатели службы. Кроме того, общие сведения о службах всегда располагаются непосредственно в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\<���название службы>, тогда как параметры настройки службы могут находиться в любом подразделе данной ветви реестра (но чаще всего находятся в подразделе Parameters).
В данной главе мы рассмотрим параметры реестра , определяющие общие сведения о службах, а далее в этой книге будут приведены параметры настройки конкретных служб.
• Group – этот параметр строкового типа определяет группу служб или драйверов, к которой относится данная служба. От названия группы зависит время, когда данная служба будет запущена. Дело в том, что все группы служб запускаются последовательно: сначала службы, принадлежащие одной группе, потом службы, принадлежащие другой группе, и т. д. Если же служба не принадлежит ни одной из групп, то она запускается одной из самых последних.
Сама последовательность запуска групп служб описана в параметре типа REG_MULTI_SZ List, расположенном в ветви реестра HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Control\ServiceGroupOrder.
...
Примечание
Просмотреть список групп, зарегистрированных в операционной системе Windows Vista, можно с помощью класса Win32_LoadOrderGroup, принадлежащего пространству имен \\root\cimv2. Экземпляры данного класса описывают отдельную группу и поддерживают следующие свойства: DriverEnabled (определяет, могут ли в данную группу входить драйверы), GroupOrder (указывает очередность загрузки элементов данной группы), Name (ключевое свойство, определяющее название группы).
• DependOnGroup – этот параметр типа REG_MULTI_SZ определяет группы служб или драйверов, которые обязательно должны быть запущены перед запуском данной службы. Предполагается, что все группы служб, описанные в этом параметре, необходимы для ее работы, поэтому без запуска любой описанной в параметре группы данная служба запущена не будет.
• DependOnService – имеет тип REG_MULTI_SZ и определяет службы, которые должны быть запущены перед запуском данной службы. Предполагается, что все службы, описанные в этом параметре, необходимы для ее работы, поэтому без запуска любой описанной в параметре службы данная служба запущена не будет.
...
Примечание
Если служба зависит от группы, запускающейся позже той, в которую входит служба, то выдается сообщение об ошибке запуска. Эта же ошибка выдается, если служба зависит от другой службы, которая входит в группу, запускаемую позднее.
• DisplayName – этот параметр строкового типа определяет название службы, используемое для ее отображения в оснастке services.msc.
• Description – имеет строковый тип и определяет описание службы, используемое для отображения строки ее описания в оснастке services.msc.
• ObjectName – данный параметр строкового типа определяет учетную запись пользователя, с правами которого будет запущена данная служба. Может принимать следующие значения.
Читать дальше
Конец ознакомительного отрывка
Купить книгу