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

변경할 구성 정보입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
SERVICE_CONFIG_DELAYED_AUTO_START_INFO
3
lpInfo 매개 변수는 SERVICE_DELAYED_AUTO_START_INFO 구조체에 대한 포인터입니다.

Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

SERVICE_CONFIG_DESCRIPTION
1
lpInfo 매개 변수는 SERVICE_DESCRIPTION 구조체에 대한 포인터입니다.
SERVICE_CONFIG_FAILURE_ACTIONS
2
lpInfo 매개 변수는 SERVICE_FAILURE_ACTIONS 구조체에 대한 포인터입니다.

서비스 컨트롤러가 SC_ACTION_REBOOT 작업을 처리하는 경우 호출자에게 SE_SHUTDOWN_NAME 권한이 있어야 합니다. 자세한 내용은 특별 권한으로 실행을 참조하세요.

SERVICE_CONFIG_FAILURE_ACTIONS_FLAG
4
lpInfo 매개 변수는 SERVICE_FAILURE_ACTIONS_FLAG 구조체에 대한 포인터입니다.

Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

SERVICE_CONFIG_PREFERRED_NODE
9
lpInfo 매개 변수는 SERVICE_PREFERRED_NODE_INFO 구조체에 대한 포인터입니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

SERVICE_CONFIG_PRESHUTDOWN_INFO
7
lpInfo 매개 변수는 SERVICE_PRESHUTDOWN_INFO 구조체에 대한 포인터입니다.

Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO
6
lpInfo 매개 변수는 SERVICE_REQUIRED_PRIVILEGES_INFO 구조체에 대한 포인터입니다.

Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

SERVICE_CONFIG_SERVICE_SID_INFO
5
lpInfo 매개 변수는 SERVICE_SID_INFO 구조체에 대한 포인터입니다.
SERVICE_CONFIG_TRIGGER_INFO
8
lpInfo 매개 변수는 SERVICE_TRIGGER_INFO 구조체에 대한 포인터입니다. 이 값은 ANSI 버전의 ChangeServiceConfig2에서 지원되지 않습니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 Windows Server 2008 R2까지 지원되지 않습니다.

SERVICE_CONFIG_LAUNCH_PROTECTED
12
lpInfo 매개 변수는 SERVICE_LAUNCH_PROTECTED_INFO 구조체의 포인터입니다.
참고 이 값은 Windows 8.1 부터 지원됩니다.
 

[in, optional] lpInfo

구성 정보에 대해 설정할 새 값에 대한 포인터입니다. 이 데이터의 형식은 dwInfoLevel 매개 변수의 값에 따라 달라집니다. 이 값이 NULL이면 정보는 변경되지 않은 상태로 유지됩니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

ChangeServiceConfig2 함수는 서비스 제어 관리자 데이터베이스에서 지정된 서비스에 대한 선택적 구성 정보를 변경합니다. QueryServiceConfig2 함수를 사용하여 현재 선택적 구성 정보를 가져올 수 있습니다.

서비스 제어 관리자의 프로세스를 공유하는 서비스의 SERVICE_CONFIG_FAILURE_ACTIONS 값을 설정할 수 없습니다. 여기에는 실행 이미지가 "Services.exe"인 모든 서비스가 포함됩니다.

각각 ChangeServiceConfigQueryServiceConfig 함수를 사용하여 추가 구성 정보를 변경하고 쿼리할 수 있습니다.

서비스가 오류로 완료된 후 다시 시작하도록 구성된 경우 서비스 제어 관리자는 지정된 시간 지연 후에 다시 시작 작업을 큐에 대기합니다. 대기 중인 다시 시작 작업을 취소할 수 없습니다. 서비스가 수동으로 다시 시작되고 대기 중인 다시 시작 작업이 발생하기 전에 중지된 경우 시간이 지연되면 서비스가 예기치 않게 다시 시작됩니다. 서비스가 다시 시작되지 않도록 하려면 명시적으로 사용하지 않도록 설정해야 합니다.

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 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winsvc.h(Windows.h 포함)
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

ChangeServiceConfig

CreateService

OpenService

QueryServiceConfig

QueryServiceConfig2

QueryServiceDynamicInformation

SERVICE_DELAYED_AUTO_START_INFO

SERVICE_DESCRIPTION

SERVICE_FAILURE_ACTIONS

SERVICE_FAILURE_ACTIONS_FLAG

SERVICE_PRESHUTDOWN_INFO

SERVICE_REQUIRED_PRIVILEGES_INFO

SERVICE_SID_INFO

서비스 구성

서비스 함수