Структура QUERY_SERVICE_CONFIG используется функцией QueryServiceConfig, чтобы возвратить информацию о конфигурации установленной службы.
Синтаксис
typedef struct _QUERY_SERVICE_CONFIG { DWORD dwServiceType; DWORD dwStartType; DWORD dwErrorControl; LPTSTR lpBinaryPathName; LPTSTR lpLoadOrderGroup; DWORD dwTagId; LPTSTR lpDependencies; LPTSTR lpServiceStartName; LPTSTR lpDisplayName; } QUERY_SERVICE_CONFIG, *LPQUERY_SERVICE_CONFIG; |
Тип службы. Этот член структуры может быть одним из следующих значений.
Значение | Предназначение |
---|---|
SERVICE_FILE_SYSTEM_DRIVER | Сервисный драйвер файловой системы. |
SERVICE_KERNEL_DRIVER | Сервисный драйвер. |
SERVICE_WIN32_OWN_PROCESS | Служба, которая запускается в своем собственном процессе. |
SERVICE_WIN32_SHARE_PROCESS | Служба, которая совместно использует процесс с другими службами. |
Если это значение - SERVICE_WIN32_OWN_PROCESS или SERVICE_WIN32_SHARE_PROCESS, а служба запускается в контексте учетной записи LocalSystem, также может быть определен и следующий тип.
Значение | Предназначение |
---|---|
SERVICE_INTERACTIVE_PROCESS | Служба может взаимодействовать с рабочим столом.
Дополнительную информацию смотри в статье Диалоговые службы. |
dwStartType
Когда запускать службу. Этот член структуры может быть одним из следующих значений.
Значение | Предназначение |
---|---|
SERVICE_AUTO_START | Служба запускается автоматически диспетчером управления службами в ходе запуска системы. |
SERVICE_BOOT_START | Драйвер устройства запущен системным загрузчиком. Это значение действительно только для служб драйвера. |
SERVICE_DEMAND_START | Служба, запускается диспетчером управления службами, когда процесс вызывает функцию StartService. |
SERVICE_DISABLED | Служба, которая не может запуститься. Попытки запустить службу приводят к коду ошибки ERROR_SERVICE_DISABLED. |
SERVICE_SYSTEM_START | Драйвер устройства, запущенный функцией IoInitSystem. Это значение действительно только для служб драйвера. |
dwErrorControl
Серьезность ошибки и предпринятого действия, если эта служба не в состоянии запуститься. Этот член структуры может быть одним из следующих значений.
Значение | Предназначение |
---|---|
SERVICE_ERROR_IGNORE | Запуск (начальная загрузка) программы регистрирует ошибку, но продолжает операцию запуска. |
SERVICE_ERROR_NORMAL | Запуск программы регистрирует ошибку и показывает на экране всплывающее окно сообщения, но продолжает операцию запуска. |
SERVICE_ERROR_SEVERE | Запуск программы регистрирует ошибку. Если запускается последняя из известных конфигурация без ошибок, продолжается операция запуска. Иначе, система перезапускается с последней, заведомо без ошибок конфигурацией. |
SERVICE_ERROR_CRITICAL | Запуск программы, если возможно, регистрирует ошибку. Если запускается последняя из известных конфигурация без ошибок, операция запуска завершается ошибкой. Иначе, система перезапускается с последней из известных конфигураций без ошибок. |
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), или если он указывает на пустую строку, служба не имеет никаких зависимостей. Если имя группы определено, то в начале должен ставиться символ SC_GROUP_IDENTIFIER (определенный в Winsvc.h), чтобы отличать его от имени службы, потому что службы и группы служб совместно используют одно и то же пространство имен. Зависимость от службы означает, что эта служба может запуститься только тогда, если служба, от которой она зависит, запущена. Зависимость от группы означает, что эта служба может запуститься тогда, если по крайней мере один член группы запущен при попытке запустить все члены группы.
lpServiceStartName
Указатель на строку с завершающим нулем. Если тип службы - SERVICE_WIN32_OWN_PROCESS или SERVICE_WIN32_SHARE_PROCESS, то это - имя учетной записи, в котором процесс службы начнет работу как тогда, когда она запускается. Это имя может иметь форму DomainName\Username". Если учетная запись принадлежит встроенному домену, имя может иметь форму" .\Username". Имя может также быть "LocalSystem", если процесс запускается под учетной записью LocalSystem.
Если тип службы - SERVICE_KERNEL_DRIVER или SERVICE_FILE_SYSTEM_DRIVER, это имя - имя объекта драйвера (то есть, \FileSystem\Rdr или \Driver\Xns), которое система ввода/вывода данных (I/O) использует, чтобы загрузить драйвер устройства. Если этот член структуры - значение ПУСТО (NULL), драйвер должен быть запущен с именем объекта по умолчанию, созданным системой ввода/вывода (I/O) и основанной на имени службы.
lpDisplayName
Указатель на строку с завершающим нулем, которая задает отображаемое имя, которое используется программами управления службой, чтобы идентифицировать службу. Эта строка имеет максимальную длину 256 символов. Имя сохраняется с учетом регистра в диспетчере управления службами. Сравнения отображаемого имени всегда не чувствительны к регистру.
Информация о конфигурации для службы первоначально определяется тогда, когда служба создается вызовом функции CreateService. Информация может быть модифицирована, вызовом функции ChangeServiceConfig.
Смотри также
Обзор Службы, Структуры, используемые службами, ChangeServiceConfig, CreateService, QueryServiceConfig, StartService
Размещение и совместимость QUERY_SERVICE_CONFIG |
||
К | Windows XP | Да |
л | Windows 2000 Professional | Да |
и | Windows NT Workstation | Да |
е | Windows Me | Нет |
н | Windows 98 | Нет |
т | Windows 95 | Нет |
С | Windows Server 2003 | Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да |
в | ||
е | ||
р | ||
Используемая библиотека | - | |
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в | Winsvc.h | |
- включено в | Windows.h | |
Unicode | Объявлена как структура Unicode и ANSI | |
Замечания по платформе | Не имеется |