서비스를 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)에 사용자 지정 주요 이유 코드를 만들 수 있습니다.
서비스 중지에 대한 추가 정보를 제공하는 선택적 문자열입니다. 이 문자열은 중지 이유 코드와 함께 이벤트 로그에 저장됩니다. 이 멤버는 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 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.