Функция QueryServiceConfig2 извлекает дополнительные параметры конфигурации указанной службы.
Синтаксис
BOOL QueryServiceConfig2( SC_HANDLE hService, DWORD dwInfoLevel, LPBYTE lpBuffer, DWORD cbBufSize, LPDWORD pcbBytesNeeded ); |
hService
[in] Дескриптор службы. Этот дескриптор возвращается функцией OpenService или CreateService и должен иметь право доступа SERVICE_QUERY_CONFIG. Дополнительную информацию смотри в статье Защита службы и права доступа.
dwInfoLevel
[in] Запрашиваемая информация о конфигурации. Этот параметр может быть одним из следующих значений.
Значение | Предназначение |
---|---|
SERVICE_CONFIG_DESCRIPTION | Параметр lpBuffer - указатель на структуру SERVICE_DESCRIPTION. |
SERVICE_CONFIG_FAILURE_ACTIONS | Параметр lpBuffer - указатель на структуру SERVICE_FAILURE_ACTIONS. |
lpBuffer
[out] Указатель на буфер, который получает информацию о конфигурации службы. Формат этих данных зависит от значения параметра dwInfoLevel.
Максимальный размер этого массива - 8 КБ. Чтобы определить необходимый размер, задайте значение ПУСТО (NULL) для этого параметра и 0 для параметра cbBufSize. Функция завершится ошибкой, а GetLastError возвратит значение ERROR_INSUFFICIENT_BUFFER. Параметр pcbBytesNeeded получит необходимый размер.
cbBufSize
[in] Размер структуры, на которую указывает параметр lpBuffer, в байтах.
pcbBytesNeeded
[out] Указатель на переменную, которая получает число байтов необходимых для сохранения информацию о конфигурации, если функция завершается ошибкой с ERROR_INSUFFICIENT_BUFFER.
Если функция завершается успешно, возвращаемое значение является ненулевым.
Если функция завершается ошибкой, возвращаемое значение - нуль. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Следующие коды ошибки могут быть установлены диспетчером управления службами. Другие могут устанавливаться функциями реестра, которые вызывает диспетчер управления службами.
Код возврата | Описание |
---|---|
ERROR_ACCESS_DENIED | Дескриптор не имеет права доступа SERVICE_QUERY_CONFIG. |
ERROR_INSUFFICIENT_BUFFER | Информации о конфигурации службы больше, чем вместится в буфер lpBuffer. Число байтов, необходимых для получения всей информации возвращается в параметре pcbBytesNeeded . В lpServiceConfig ничего не пишется. |
ERROR_INVALID_HANDLE | Указанный дескриптор недействителен. |
Функция QueryServiceConfig2 возвращает дополнительную информацию о конфигурации, сохраненную в базе данных диспетчера управления службами для указанной службы. Вы можете изменить эту информацию о конфигурации при помощи использования функции ChangeServiceConfig2.
Вы можете изменить и сделать запрос дополнительной информации о конфигурации, используя функции ChangeServiceConfig и QueryServiceConfig, соответственно.
Пример смотри в статье Запрос конфигурации службы.
Обзор Службы, Функции, используемые службами, ChangeServiceConfig, ChangeServiceConfig2, CreateService, OpenService, QueryServiceConfig, SERVICE_DESCRIPTION, SERVICE_FAILURE_ACTIONS
Размещение и совместимость QueryServiceConfig2 |
||
К | Windows XP | Да |
л | Windows 2000 Professional | Да |
и | Windows NT | Нет |
е | 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 | Реализуется как QueryServiceConfig2W(Unicode) и QueryServiceConfig2A (ANSI). | |
Замечания по платформе | Не имеется |