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