Функция QueryServiceConfig

Функция QueryServiceConfig извлекает параметры конфигурации указанной службы. Дополнительные параметры конфигурации - разрешает использовать функция QueryServiceConfig2.

Синтаксис

BOOL QueryServiceConfig(
  SC_HANDLE hService,
  LPQUERY_SERVICE_CONFIG lpServiceConfig,
  DWORD cbBufSize,
  LPDWORD pcbBytesNeeded
);

Параметры

hService

[in] Дескриптор службы. Этот дескриптор возвращается функцией OpenService или CreateService и должен иметь право доступа SERVICE_QUERY_CONFIG. Дополнительную информацию смотри в статье Защита службы и права доступа.

lpServiceConfig

[out] Указатель на буфер, который получает информацию о конфигурации службы. Формат данных - это структура QUERY_SERVICE_CONFIG.

Максимальный размер этого массива - 8 КБ. Чтобы определять необходимый размер, задайте значение ПУСТО (NULL) для этого параметра и 0 для параметра cbBufSize. Функция завершится ошибкой, а GetLastError возвратит значение ERROR_INSUFFICIENT_BUFFER. Параметр pcbBytesNeeded получит необходимый размер.

cbBufSize

[in] Размер буфера, на который указывает параметр lpServiceConfig, в байтах.

pcbBytesNeeded

[out] Указатель на переменную, которая получает число байтов, необходимых для сохранения всей информации о конфигурации, если функция завершается ошибкой со значением ERROR_INSUFFICIENT_BUFFER.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение является ненулевым.

Если функция завершается ошибкой, возвращаемое значение - ноль. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.

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

Код возврата Описание
ERROR_ACCESS_DENIED Дескриптор не имеет права доступа SERVICE_QUERY_CONFIG.
ERROR_INSUFFICIENT_BUFFER Информации о конфигурации  службы больше, чем вместится в  буфер lpServiceConfig. Число байтов, необходимых для получения всей информации возвращается в параметре pcbBytesNeeded . В lpServiceConfig ничего не пишется.
ERROR_INVALID_HANDLE Указанный дескриптор недействителен.

Замечания

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

Если служба была запущена, когда информация о конфигурации была последний раз изменена, то информация, возвращенная функцией QueryServiceConfig не будет отражать текущую конфигурацию службы. Вместо этого она отразит конфигурацию службы, периода запуска. Ключ DisplayName - исключение для этого. Когда ключ DisplayName изменяется, то он вступает в силу немедленно, независимо от того, запускается ли служба.

Демонстрационный код

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

Смотри также

Обзор Службы, Функции, используемые службамиChangeServiceConfig, CreateService, OpenService, QueryServiceConfig2, QueryServiceObjectSecurityQUERY_SERVICE_CONFIG

Размещение и совместимость QueryServiceConfig 

К Windows XP Да 
л Windows 2000 Professional Да
и Windows NT Workstation Да
е Windows Me Нет
н Windows 98 Нет
т Windows 95 Нет
 
С Windows Server 2003 Да
е Windows 2000 Server Да
р Windows NT Server Да
в    
е    
р    
Используемая библиотека Advapi32.lib
Используемая DLL advapi32.dll
 Заголовочный файл  
- объявлено в Winsvc.h
 - включено в Windows.h
 Unicode Реализуется как QueryServiceConfigW (Unicode) и QueryServiceConfigA (ANSI).
 Замечания по платформе Не имеется

 

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

Hosted by uCoz