Функция 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.
Диспетчер управления службами может задать следующие коды ошибок. Другие могут быть заданы функциями реестра, которые вызываются диспетчером управления службами.
Код возврата | Описание |
---|---|
|
Дескриптор не имеет права доступа к SERVICE_QUERY_CONFIG. |
|
Существует больше сведений о конфигурации службы, чем в буфере lpServiceConfig . Число байтов, необходимых для получения всех сведений, возвращается в параметре pcbBytesNeeded . Ничего не записывается в lpServiceConfig. |
|
Указанный дескриптор недопустим. |
Комментарии
Функция 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 |