Структура QUERY_SERVICE_CONFIG


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

Члены структуры

dwServiceType

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

Значение Предназначение
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
 Замечания по платформе Не имеется

 

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz