Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Начало работы сервиса

Читайте также:
  1. A) внезапное начало
  2. B. Оценка устойчивости работы ХО к воздействию светового излучения.
  3. I Актуальность дипломной работы
  4. I Начало карьеры чиновника Перхотина
  5. I период работы
  6. I. Начало карьеры чиновника Перхотина
  7. I. НАЧАЛО ЭКСПЕРИМЕНТА

Перед запросом к SCM на запуск сервиса, информация о сервисе должна быть занесена в базу данных SCM. Регистрация сервиса выполняется программой установки, которая должна быть SCP-приложением, путем вызова функции SreateService. В результате SCM посылается сообщение о том, где будет находится данный сервис.

Программа установки должна передать функции SreateService некоторые параметры:

1) тип сервиса – выполняется ли сервис в собственном процессе или разделяет с другими сервисами общее адресное пространство;

2) местонахождения его исполняемого файла;

3) необязательное экранное имя;

4) необязательные имя и пароль для запуска сервиса в контексте защиты определенной учетной записи;

5) тип запуска – запускается ли он автоматически при загрузки системы или вручную под управлением SCP;

6) код, указывающий, как система должна реагировать на ошибку при запуске сервиса;

7) необязательную информацию о моменте запуска относительно других сервисов, если сервис запускается автоматически.

Диспетчер управления службами (SCM) хранит каждую характеристику как параметр в разделе реестра, созданном для данного сервиса. В таблице 1 перечислены характеристики сервиса, многие из которых применимы и к драйверам.

Таблица 1. Параметры реестра для сервисов и драйверов

Параметр Значение Описание
Start SERVICE_ROOT_START (0)     SERVICE_SYSTEM_START (1)   SERVICE_AUTO_START (2)     SERVICE_DEMAND_START (3)   SERVICE_DISABLED (4)   Ntldr или Osloader предварительно загружают драйвер, чтобы во время загрузки он находился в памяти. Подобные драйверы инициализи-руются непосредственно перед драй-верами типа SERVICE_SYSTEM_START. Драйвер загружается и инициализи-руется после инициализации драйверов типа SERVICE_BOOT_START. Драйвер или сервис, запускаемый SCM после запуска SCM-процесса Services.exe. Драйвер или сервис запускается SCM по требованию. Драйвер или сервис не загружается и не инициализируется.
ErrorControl SERVICE_ERROR_IGNORE(0)     SERVICE_ERROR_NORMAL(1)     SERVICE_ERROR_SEVERE(2)     SERVICE_ERROR_SRITICAL(3)     Диспетчер ввода-вывода игнорирует возвращаемые драйвером или сервисом коды ошибок. Предупреждения не выводятся и не регистрируются. Если драйвер или сервис сообщает об ошибке, выводится предупреждение. Если драйвер или сервис сообщает об ошибке и последняя удачная конфигурация еще не используется, загружается именно эта конфигурация, если она уже используется, загрузка продолжа-ется. Если драйвер или сервис сообщает об ошибке и последняя удачная конфигурация еще не используется, загружается именно эта конфигурация. Если она уже используется, загрузка останавлива- ется и выводится «синий экран».
Type SERVICE_KERNEL_DRIVER(1)   SERVICE_FILE_SYSTEM_ DRIVER (2)   SERVICE_ADAPTER (4)   SERVICE_RECOGNIZER_ DRIVER (8)   SERVICE_WIN32_OWN_ PROCESS (16)   SERVICE_WIN32_SHARE_ PROCESS (32)   SERVICE_INTERACTIVE_ PROCESS (256)     Драйвер устройства   Драйвер файловой системы режима ядра   Устаревшее значение   Драйвер, распознающий файловую систему   Сервис выполняется в собственном процессе, предназначенном только для него. Сервис выполняется в процессе, ис- Пользуемом несколькими сервисами.   Сервис может выводить на консоль окна и принимать ввод от пользователя.
Group Имя группы Драйвер или сервис инициализиру-ется при инициализации этой группы.
Tag Номер тэга Указывает порядковый номер в по- следовательности инициализации группы. Этот параметр не при-меним к сервисам.
ImagePath Путь к исполняемому файлу сер- Виса или драйвера Если ImagePath не определен, диспетчер ввода-вывода ищет драй-верыв \Windows\System32\Drivers, а SCM использует Windows-функции для поиска образа по значению переменной окружения PATH
DependOnGroup Имя группы Драйвер или сервис не загружается пока не будет загружен драйвер или сервис из указанной группы
DependOnService Имя сервиса Сервис не загружается, пока не бу- дет загружен указанный сервис. Этот параметр неприменим к драйверам устройств, кроме тех, у которых тип запуска определен как SERVICE_AUTO_START
ObjectName Обычно Local System, но может быть именем учетной записи. Например,.\Administrator Указывает учетную запись, под ко- торой будет работать сервис. Усли ObjectName не определен, использется учетная запись Local System. Этот параметр не применим к драйверам устройств.
DisplayName Имя сервиса Имя сервиса, показываемое сервисным приложениям на экране. Если это имя не указано, именем сервиса считается его имя в реестре.
Description Описание сервиса Строка длиной до 32767 байтов.
FailureActions Описание действий SCM при неожиданном завершении процесса сервиса Действия при сбое включают перезапуск процесса, перезагрузку системы и запуск указанной программы. Этот параметр неприменим к драйверам.
FailureCommand Командная строка программы SCM считывает этот параметр, только если в FailureActions указана необходимость запуска какой-либо программы при сбое сервиса. Этот параметр неприменим к сервисам.
Security Дескриптор защиты Содержит дескриптор защиты, оп- Ределяющий, кто и с какими правами может получать доступ к объекту сервиса, соединенному с SCM.

 

К драйверам устройств применимы три значения параметра Type. Они используются драйверами устройств, которые также хранят свои параметры в разделе реестра Services. SCM отвечает за запуск драйверов со значение Start, равным SERVICE_AUTO_START или SERVICE_DEMAND_START, поэтому база данных SCM естественным образом включает и драйверы. Сервисы используют другие типы: SERVICE_WIN32_OWN_PROCESS и SERVICE_WIN32_SHARE_PROCESS, которые являются взаимоисключающими. Программы, использующие более одного сервиса, указывают тип SERVICE_WIN32_SHARE_PROCESS. При этом экономятся ресурсы системы, связанные с диспетчеризацией процессов. Но потенциальный недостаток этой схемы в том, что работа всех сервисов данного процесса прекращается, если один из них вызовет ошибку, из-зи которой завершается процесс. Кроме того, все сервисы одного процесса должны выполняться под одной учетной записью.

Зарегистрировав сервис, программа установки или управляющее приложение может запустить его, вызвав функцию StartService. Поскольку некоторые сервисы необходимо инициализировать при запуске системы, программа установки должна зарегистрировать сервис как запускаемый автоматически.


Дата добавления: 2015-08-13; просмотров: 53 | Нарушение авторских прав


Читайте в этой же книге: Службы Windows. | Диспетчер управления сервисами (SCM) | Программы управления сервисами | Структура программы сервиса | Точка входа main | Точка входа в сервис (ServiceMain) | Пример функций сервиса. | Отладка сервиса. |
<== предыдущая страница | следующая страница ==>
Учетные зависи сервиса| Выполнение сервиса

mybiblioteka.su - 2015-2024 год. (0.009 сек.)