Функция ChangeServiceConfig2A (winsvc.h)
Изменяет необязательные параметры конфигурации службы.
Синтаксис
BOOL ChangeServiceConfig2A(
[in] SC_HANDLE hService,
[in] DWORD dwInfoLevel,
[in, optional] LPVOID lpInfo
);
Параметры
[in] hService
Дескриптор службы. Этот дескриптор возвращается функцией OpenService или CreateService и должен иметь право доступа SERVICE_CHANGE_CONFIG . Дополнительные сведения см. в разделе Безопасность службы и права доступа.
Если контроллер службы обрабатывает действие SC_ACTION_RESTART , hService должен иметь право доступа к SERVICE_START .
[in] dwInfoLevel
Сведения о конфигурации, которые необходимо изменить. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Параметр lpInfo является указателем на структуру SERVICE_DELAYED_AUTO_START_INFO .
Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр lpInfo является указателем на структуру SERVICE_DESCRIPTION . |
|
Параметр lpInfo является указателем на структуру SERVICE_FAILURE_ACTIONS .
Если контроллер службы обрабатывает действие SC_ACTION_REBOOT, вызывающий объект должен иметь права SE_SHUTDOWN_NAME. Дополнительные сведения см. в разделе Выполнение с особыми привилегиями. |
|
Параметр lpInfo является указателем на структуру SERVICE_FAILURE_ACTIONS_FLAG .
Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр lpInfo является указателем на структуру SERVICE_PREFERRED_NODE_INFO .
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр lpInfo является указателем на структуру SERVICE_PRESHUTDOWN_INFO .
Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр lpInfo является указателем на структуру SERVICE_REQUIRED_PRIVILEGES_INFO .
Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Параметр lpInfo является указателем на структуру SERVICE_SID_INFO . |
|
Параметр lpInfo является указателем на структуру SERVICE_TRIGGER_INFO . Это значение не поддерживается версией ANSI ChangeServiceConfig2.
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается до Windows Server 2008 R2. |
|
Параметр lpInfo является указателем SERVICE_LAUNCH_PROTECTED_INFO структуры.
Примечание Это значение поддерживается начиная с Windows 8.1.
|
[in, optional] lpInfo
Указатель на новое значение, которое необходимо задать для сведений о конфигурации. Формат этих данных зависит от значения параметра dwInfoLevel . Если это значение равно NULL, сведения остаются неизменными.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Функция ChangeServiceConfig2 изменяет необязательные сведения о конфигурации для указанной службы в базе данных диспетчера управления службами. Текущие необязательные сведения о конфигурации можно получить с помощью функции QueryServiceConfig2 .
Нельзя задать значение SERVICE_CONFIG_FAILURE_ACTIONS для службы, которая использует процесс диспетчера управления службами. Сюда входят все службы, исполняемый образ которых имеет значение "Services.exe".
Вы можете изменять и запрашивать дополнительные сведения о конфигурации с помощью функций ChangeServiceConfig и QueryServiceConfig соответственно.
Если служба настроена для перезапуска после ее завершения с ошибкой, диспетчер управления службами помещает действие перезапуска в очередь после указанной задержки времени. Действие перезапуска в очереди не может быть отменено. Если служба перезапускается вручную, а затем останавливается до выполнения действия перезапуска в очереди, служба неожиданно перезапустится по истечении времени. Служба должна быть явно отключена, чтобы предотвратить ее перезапуск.
Значение SERVICE_CONFIG_LAUNCH_PROTECTED можно использовать для запуска службы как защищенной. Чтобы запустить службу как защищенную, она должна быть подписана специальным сертификатом.
SERVICE_CONFIG_LAUNCH_PROTECTED пример:
SERVICE_LAUNCH_PROTECTED_INFO Info;
SC_HANDLE hService;
Info.dwLaunchProtected = SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT;
hService = CreateService (...);
if (ChangeServiceConfig2(hService,
SERVICE_CONFIG_LAUNCH_PROTECTED,
&Info) == FALSE)
{
Result = GetLastError();
}
Примеры
Пример см. в разделе Изменение конфигурации службы.
Примечание
Заголовок winsvc.h определяет ChangeServiceConfig2 как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | winsvc.h (включая Windows.h) |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |
См. также раздел
QueryServiceDynamicInformation
SERVICE_DELAYED_AUTO_START_INFO