Функция 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,
Размещение и совместимость 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). | |
Замечания по платформе | Не имеется |