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


Функция QueryServiceConfigA (winsvc.h)

Извлекает параметры конфигурации указанной службы. Дополнительные параметры конфигурации доступны с помощью функции QueryServiceConfig2 .

Синтаксис

BOOL QueryServiceConfigA(
  [in]            SC_HANDLE               hService,
  [out, optional] LPQUERY_SERVICE_CONFIGA lpServiceConfig,
  [in]            DWORD                   cbBufSize,
  [out]           LPDWORD                 pcbBytesNeeded
);

Параметры

[in] hService

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

[out, optional] lpServiceConfig

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

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

[in] cbBufSize

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

[out] pcbBytesNeeded

Указатель на переменную, получающую количество байтов, необходимое для хранения всех сведений о конфигурации, если функция завершается сбоем с 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 он вступает в силу немедленно, независимо от того, запущена ли служба.

Примеры

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

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winsvc.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

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

ChangeServiceConfig

CreateService

OpenService

QUERY_SERVICE_CONFIG

QueryServiceConfig2

QueryServiceDynamicInformation

QueryServiceObjectSecurity

Конфигурация службы.

Функции службы