
Win32 서비스 종료 모드를 설정하는 방법은 다음과 같습니다.
1. 서비스 종료 모드를 설정하기 위해 `SCM` (서비스 컨트롤 매니저) API를 사용할 수 있습니다. `SCM` API는 서비스를 생성, 삭제, 시작, 중단, 종료 등 서비스를 관리하는 데 사용됩니다.
2. `SCM` API를 사용하여 서비스 종료 모드를 설정하는 함수는 `ChangeServiceConfig2` 함수입니다. 이 함수는 서비스의 구성 정보를 변경하는 데 사용되며, 서비스 종료 모드를 설정하는 데 사용할 수 있습니다.
3. `ChangeServiceConfig2` 함수는 두 가지 파라미터를 사용하여 서비스 종료 모드를 설정할 수 있습니다. 첫 번째 파라미터는 서비스의 핸들을 나타내는 `SERVICE_STATUS_HANDLE` 타입의 변수이며, 두 번째 파라미터는 서비스 종료 모드를 설정하는 데 사용되는 `SERVICE_CONFIG_INFORMATION` 구조체입니다.
4. `SERVICE_CONFIG_INFORMATION` 구조체에는 서비스 종료 모드를 설정하는 데 사용되는 필드가 있습니다. `dwWin32ExitCode` 필드는 서비스 종료 모드를 설정하는 데 사용됩니다. 이 필드는 서비스가 종료될 때 실행되는 명령어를 설정하는 데 사용할 수 있습니다.
5. `dwWin32ExitCode` 필드는 서비스 종료 모드를 설정하는 데 사용되는 32비트 정수 값입니다. 이 필드는 서비스가 종료될 때 실행되는 명령어를 설정하는 데 사용할 수 있습니다. 예를 들어, 서비스가 종료될 때 실행되는 명령어를 `exit.exe`로 설정하려면 `dwWin32ExitCode` 필드에 `0x00000000`을 설정하고, `exit.exe`를 실행하는 명령어를 `dwWin32ExitCode` 필드에 설정할 수 있습니다.
6. 예를 들어, 서비스가 종료될 때 실행되는 명령어를 `exit.exe`로 설정하려면 다음 코드를 사용할 수 있습니다.
#hostingforum.kr
c
SERVICE_STATUS_HANDLE hStatus = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
SERVICE_CONFIG_INFORMATION info;
info.dwWin32ExitCode = 0x00000000;
info.lpBinaryPathName = "exit.exe";
ChangeServiceConfig2(hStatus, SERVICE_CONFIG_INFORMATION, &info);
CloseServiceHandle(hStatus);
이 코드는 서비스 종료 모드를 설정하는 데 사용되는 `dwWin32ExitCode` 필드를 `0x00000000`으로 설정하고, `exit.exe`를 실행하는 명령어를 `lpBinaryPathName` 필드에 설정합니다.
2025-05-04 19:53