서비스 제어 매개 변수를 포함합니다.
구문
typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSA {
DWORD dwReason;
LPSTR pszComment;
SERVICE_STATUS_PROCESS ServiceStatus;
} SERVICE_CONTROL_STATUS_REASON_PARAMSA, *PSERVICE_CONTROL_STATUS_REASON_PARAMSA;
멤버
dwReason
서비스를 SERVICE_CONTROL_STOP 상태 변경하는 이유입니다. 현재 컨트롤 코드가 SERVICE_CONTROL_STOP 않으면 이 멤버는 무시됩니다.
이 멤버는 하나의 일반 코드, 하나의 주요 이유 코드 및 하나의 사소한 이유 코드의 조합으로 설정되어야 합니다.
다음은 일반적인 이유 코드입니다.
값 |
의미 |
-
SERVICE_STOP_REASON_FLAG_CUSTOM
- 0x20000000
|
이유 코드는 사용자가 정의합니다. 이 플래그가 없으면 시스템에서 이유 코드를 정의합니다. 시스템 이유 코드로 이 플래그를 지정하면 함수 호출이 실패합니다.
사용자는 SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM(0x00ff0000) 및 SERVICE_STOP_REASON_MINOR_MAX_CUSTOM(0x0000FFFF)을 통해 범위 SERVICE_STOP_REASON_MINOR_MIN_CUSTOM(0x00000100)의 사소한 이유 코드를 통해 범위 SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM(0x00400000)에 사용자 지정 주요 이유 코드를 만들 수 있습니다.
|
-
SERVICE_STOP_REASON_FLAG_PLANNED
- 0x40000000
|
서비스 중지가 계획되었습니다.
|
-
SERVICE_STOP_REASON_FLAG_UNPLANNED
- 0x10000000
|
서비스 중지가 계획되지 않았습니다.
|
주요 이유 코드는 다음과 같습니다.
값 |
의미 |
-
SERVICE_STOP_REASON_MAJOR_APPLICATION
- 0x00050000
|
애플리케이션 문제.
|
-
SERVICE_STOP_REASON_MAJOR_HARDWARE
- 0x00020000
|
하드웨어 문제입니다.
|
-
SERVICE_STOP_REASON_MAJOR_NONE
- 0x00060000
|
큰 이유가 없습니다.
|
-
SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM
- 0x00030000
|
운영 체제 문제.
|
-
SERVICE_STOP_REASON_MAJOR_OTHER
- 0x00010000
|
기타 문제.
|
-
SERVICE_STOP_REASON_MAJOR_SOFTWARE
- 0x00040000
|
소프트웨어 문제.
|
다음은 사소한 이유 코드입니다.
값 |
의미 |
-
SERVICE_STOP_REASON_MINOR_DISK
- 0x00000008
|
디스크를 선택해야 합니다.
|
-
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
- 0x0000000a
|
환경입니다.
|
-
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
- 0x0000000b
|
드라이버.
|
-
SERVICE_STOP_REASON_MINOR_HUNG
- 0x00000006
|
응답.
|
-
SERVICE_STOP_REASON_MINOR_INSTALLATION
- 0x00000003
|
설치.
|
-
SERVICE_STOP_REASON_MINOR_MAINTENANCE
- 0x00000002
|
유지 관리.
|
-
SERVICE_STOP_REASON_MINOR_MMC
- 0x00000016
|
MMC 문제.
|
-
SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY
- 0x00000011
|
네트워크 연결
|
-
SERVICE_STOP_REASON_MINOR_NETWORKCARD
- 0x00000009
|
네트워크 카드.
|
-
SERVICE_STOP_REASON_MINOR_NONE
- 0x00060000
|
사소한 이유가 없습니다.
|
-
SERVICE_STOP_REASON_MINOR_OTHER
- 0x00000001
|
기타 문제.
|
-
SERVICE_STOP_REASON_MINOR_OTHERDRIVER
- 0x0000000c
|
기타 드라이버 이벤트입니다.
|
-
SERVICE_STOP_REASON_MINOR_RECONFIG
- 0x00000005
|
재구성.
|
-
SERVICE_STOP_REASON_MINOR_SECURITY
- 0x00000010
|
보안 문제.
|
-
SERVICE_STOP_REASON_MINOR_SECURITYFIX
- 0x0000000f
|
보안 업데이트.
|
-
SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL
- 0x00000015
|
보안 업데이트 제거.
|
-
SERVICE_STOP_REASON_MINOR_SERVICEPACK
- 0x0000000d
|
서비스 팩.
|
-
SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL
- 0x00000013
|
서비스 팩 제거.
|
-
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE
- 0x0000000e
|
소프트웨어 업데이트.
|
-
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL
- 0x0000000e
|
소프트웨어 업데이트 제거.
|
-
SERVICE_STOP_REASON_MINOR_UNSTABLE
- 0x00000007
|
불안정.
|
-
SERVICE_STOP_REASON_MINOR_UPGRADE
- 0x00000004
|
업그레이드.
|
-
SERVICE_STOP_REASON_MINOR_WMI
- 0x00000012
|
WMI 문제.
|
pszComment
서비스 중지에 대한 추가 정보를 제공하는 선택적 문자열입니다. 이 문자열은 중지 이유 코드와 함께 이벤트 로그에 저장됩니다. 이 멤버는 NULL이거나 종료 null 문자를 포함하여 128자 미만의 유효한 문자열이어야 합니다.
ServiceStatus
최신 서비스 상태 정보를 수신하는 SERVICE_STATUS_PROCESS 구조체에 대한 포인터입니다. 반환되는 정보는 서비스가 서비스 제어 관리자에게 보고한 가장 최근의 상태 반영합니다.
Service Control Manager는 ControlServiceEx 가 NO_ERROR, ERROR_INVALID_SERVICE_CONTROL, ERROR_SERVICE_CANNOT_ACCEPT_CTRL 또는 ERROR_SERVICE_NOT_ACTIVE 오류 코드 중 하나를 반환하는 경우에만 구조를 채웁니다. 그렇지 않으면 구조체가 채워지지 않습니다.
참고
winsvc.h 헤더는 SERVICE_CONTROL_STATUS_REASON_PARAMS 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 |
값 |
지원되는 최소 클라이언트 |
Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 |
Windows Server 2008 [데스크톱 앱만 해당] |
머리글 |
winsvc.h(Windows.h 포함) |
추가 정보
ControlServiceEx
SERVICE_STATUS_PROCESS