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


Функция 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. Параметр pcbBytesNeed получит необходимый размер.

[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 [только классические приложения]
целевая платформа Виндоус
заголовка winsvc.h (включая Windows.h)
библиотеки Advapi32.lib
DLL Advapi32.dll

См. также

ChangeServiceConfig

CreateService

OpenService

QUERY_SERVICE_CONFIG

QueryServiceConfig2

QueryServiceDynamicInformation

QueryServiceObjectSecurity

конфигурации службы

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