Поделиться через


структура QUERY_SERVICE_CONFIGA (winsvc.h)

Содержит сведения о конфигурации для установленной службы. Он используется функцией QueryServiceConfig .

Синтаксис

typedef struct _QUERY_SERVICE_CONFIGA {
  DWORD dwServiceType;
  DWORD dwStartType;
  DWORD dwErrorControl;
  LPSTR lpBinaryPathName;
  LPSTR lpLoadOrderGroup;
  DWORD dwTagId;
  LPSTR lpDependencies;
  LPSTR lpServiceStartName;
  LPSTR lpDisplayName;
} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;

Члены

dwServiceType

Тип службы. Этот элемент может быть одним из следующих значений.

Значение Значение
SERVICE_FILE_SYSTEM_DRIVER
0x00000002
Служба драйверов файловой системы.
SERVICE_KERNEL_DRIVER
0x00000001
Служба драйверов.
SERVICE_WIN32_OWN_PROCESS
0x00000010
Служба, которая выполняется в собственном процессе.
SERVICE_WIN32_SHARE_PROCESS
0x00000020
Служба, которая совместно использует процесс с другими службами.
 

Если значение равно SERVICE_WIN32_OWN_PROCESS или SERVICE_WIN32_SHARE_PROCESS, а служба выполняется в контексте учетной записи LocalSystem, можно также указать следующий тип.

Значение Значение
SERVICE_INTERACTIVE_PROCESS
0x00000100
Служба может взаимодействовать с рабочим столом.

Дополнительные сведения см. в разделе Интерактивные службы.

dwStartType

Когда следует запускать службу. Этот элемент может быть одним из следующих значений.

Значение Значение
SERVICE_AUTO_START
0x00000002
Служба автоматически запускается диспетчером управления службами во время запуска системы.
SERVICE_BOOT_START
0x00000000
Драйвер устройства, запущенный системным загрузчиком. Это значение допустимо только для служб драйверов.
SERVICE_DEMAND_START
0x00000003
Служба, запущенная диспетчером управления службами, когда процесс вызывает функцию StartService .
SERVICE_DISABLED
0x00000004
Служба, которая не может быть запущена. Попытки запустить службу приводят к ERROR_SERVICE_DISABLED кода ошибки.
SERVICE_SYSTEM_START
0x00000001
Драйвер устройства, запущенный функцией IoInitSystem . Это значение допустимо только для служб драйверов.

dwErrorControl

Серьезность ошибки и выполняемое действие, если эта служба не запускается. Этот элемент может быть одним из следующих значений.

Значение Значение
SERVICE_ERROR_CRITICAL
0x00000003
Программа запуска регистрирует ошибку в журнале событий, если это возможно. Если запускается последняя известная хорошая конфигурация, операция запуска завершается сбоем. В противном случае система перезапускается с последней известной хорошей конфигурацией.
SERVICE_ERROR_IGNORE
0x00000000
Программа запуска игнорирует ошибку и продолжает операцию запуска.
SERVICE_ERROR_NORMAL
0x00000001
Программа запуска регистрирует ошибку в журнале событий и продолжает операцию запуска.
SERVICE_ERROR_SEVERE
0x00000002
Программа запуска регистрирует ошибку в журнале событий. Если запускается последняя известная хорошая конфигурация, операция запуска продолжается. В противном случае система перезапускается с последней известной хорошей конфигурацией.

lpBinaryPathName

Полный путь к двоичному файлу службы.

Путь также может содержать аргументы для службы автоматического запуска. Эти аргументы передаются в точку входа службы (обычно это функция main).

lpLoadOrderGroup

Имя группы упорядочения нагрузки, к которой принадлежит эта служба. Если элемент имеет значение NULL или пустую строку, служба не принадлежит к группе упорядочения загрузки.

Программа запуска использует группы упорядочения загрузки для загрузки групп служб в указанном порядке по отношению к другим группам. Список групп упорядочения нагрузки содержится в следующем значении реестра:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

dwTagId

Уникальное значение тега для этой службы в группе, заданной параметром lpLoadOrderGroup . Нулевое значение указывает, что службе не назначен тег. Вы можете использовать тег для запуска службы заказов в группе заказов загрузки, указав вектор порядка тегов в реестре, расположенном по адресу:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

Теги оцениваются только для служб SERVICE_KERNEL_DRIVER и SERVICE_FILE_SYSTEM_DRIVER типов, имеющих SERVICE_BOOT_START или SERVICE_SYSTEM_START типы запуска.

lpDependencies

Указатель на массив имен служб, разделенных значением NULL, или групп упорядочения загрузки, которые должны начинаться перед этой службой. Массив вдвойне завершается null. Если указатель имеет значение NULL или указывает на пустую строку, служба не имеет зависимостей. Если указано имя группы, оно должно быть с префиксом SC_GROUP_IDENTIFIER (определенным в WinSvc.h), чтобы отличить его от имени службы, так как службы и группы служб используют одно и то же пространство имен. Зависимость от службы означает, что эта служба может выполняться только в том случае, если запущена служба, от которую она зависит. Зависимость от группы означает, что эта служба может запускаться, если хотя бы один член группы работает после попытки запустить всех участников группы.

lpServiceStartName

Если тип службы SERVICE_WIN32_OWN_PROCESS или SERVICE_WIN32_SHARE_PROCESS, это имя учетной записи, в которую будет входить процесс службы при его запуске. Это имя может иметь видИмя пользователядомена\. Если учетная запись принадлежит встроенному домену, имя может иметь вид .\UserName. Имя также может быть "LocalSystem", если процесс выполняется под учетной записью LocalSystem.

Если тип службы SERVICE_KERNEL_DRIVER илиSERVICE_FILE_SYSTEM_DRIVER, то этот элемент является именем объекта драйвера (то есть \FileSystem\Rdr или \Driver\Xns), который система ввода-вывода использует для загрузки драйвера устройства. Если этот член имеет значение NULL, драйвер должен запускаться с именем объекта по умолчанию, созданным системой ввода-вывода на основе имени службы.

lpDisplayName

Отображаемое имя, используемое программами управления службой для идентификации службы. Максимальная длина этой строки равна 256 символам. Имя сохраняется в диспетчере управления службами. Сравнение отображаемых имен всегда не учитывает регистр.

Этот параметр может указать локализованную строку в следующем формате:

@[Path]DLLName,-StrID

Строка с идентификатором StrID загружается из DLLName; Путь является необязательным. Дополнительные сведения см. в разделе RegLoadMUIString.

Windows Server 2003 и Windows XP: Локализованные строки не поддерживаются до Windows Vista.

Комментарии

Сведения о конфигурации службы изначально указываются при создании службы путем вызова функции CreateService . Сведения можно изменить, вызвав функцию ChangeServiceConfig .

Примеры

Пример см. в разделе Запрос конфигурации службы.

Примечание

Заголовок winsvc.h определяет QUERY_SERVICE_CONFIG как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть winsvc.h (включая Windows.h)

См. также раздел

ChangeServiceConfig

CreateService

QueryServiceConfig

StartService