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


структура 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 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

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

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

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 или если он указывает на пустую строку, служба не имеет зависимостей. Если указано имя группы, он должен быть префиксирован символом 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), который используется системой ввода-вывода (I/O) для загрузки драйвера устройства. Если этот элемент имеет значение 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