Через параметр dwServiceType необходимо передать тип сервиса. Здесь вы можете указывать те же самые флаги, что и в поле dwServiceType структуры SERVICE_STATUS, описанной выше:
Флаг |
Описание |
SERVICE_WIN32_OWN_PROCESS |
Сервис работает как отдельный процесс |
SERVICE_WIN32_SHARE_PROCESS |
Сервис работает вместе с другими сервисами в рамках одного и того же процесса |
SERVICE_KERNEL_DRIVER |
Сервис представляет собой драйвер операционной системы Microsoft Windows NT |
SERVICE_FILE_SYSTEM_DRIVER |
Сервис является драйвером файловой системы |
SERVICE_INTERACTIVE_PROCESS |
Сервисный процесс может взаимодействовать с программным интерфейсом рабочего стола Desktop |
В параметре dwStartType указывается один из следующих способов запуска сервиса:
Константа |
Способ запуска |
SERVICE_BOOT_START |
Используется только для сервисов типа SERVICE_KERNEL_DRIVER или SERVICE_FILE_SYSTEM_DRIVER (драйверы). Указывает, что драйвер должен загружаться при загрузке операционной системы |
SERVICE_SYSTEM_START |
Аналогично предыдущему, но драйвер запускается при помощи функции IoInitSystem, не описанной в нашей книге |
SERVICE_AUTO_START |
Драйвер или обычный сервис, который запускается при загрузке операционной системы |
SERVICE_DEMAND_START |
Драйвер или обычный сервис, который запускается функцией StartService |
SERVICE_DISABLED |
Отключение возможности запуска драйвера или обычного сервиса |
Параметр dwErrorControl задает действия, выполняемые при обнаружении ошибки в момент загрузки сервиса. Здесь можно указывать одно из следующих значений:
Значение |
Реакция на ошибку |
SERVICE_ERROR_IGNORE |
Протоколирование ошибки в системном журнале и продолжение процедуры запуска сервиса |
SERVICE_ERROR_NORMAL |
Протоколирование ошибки в системном журнале без продолжения процедуры запуска сервиса |
SERVICE_ERROR_SEVERE |
Протоколирование ошибки в системном журнале. Если это возможно, используется конфигурация, с которой сервис успешно был запущен в прошлый раз. В противном случае система перезапускается с использованием работоспособной конфигурации |
SERVICE_ERROR_CRITICAL |
Криичная ошибка. Сообщение при возможности записывается в системный журнал. Операция запуска отменяется, система перезапускается с с использованием работоспособной конфигурации |