서비스 제어 요청

실행 중인 서비스에 제어 요청을 보내기 위해 서비스 제어 프로그램은 ControlService 함수를 사용합니다. 이 함수는 지정된 서비스의 HandlerEx 함수에 전달되는 컨트롤 값을 지정합니다. 이 컨트롤 값은 사용자 정의 코드이거나 호출 프로그램이 다음 작업을 수행할 수 있도록 하는 표준 코드 중 하나일 수 있습니다.

  • 서비스 중지(SERVICE_CONTROL_STOP).
  • 서비스 일시 중지(SERVICE_CONTROL_PAUSE).
  • 일시 중지된 서비스(SERVICE_CONTROL_CONTINUE) 실행을 다시 시작합니다.
  • 서비스(SERVICE_CONTROL_INTERROGATE)에서 업데이트된 상태 정보를 검색합니다.

각 서비스는 수락하고 처리할 컨트롤 값을 지정합니다. 서비스에서 허용하는 표준 컨트롤 값을 확인하려면 QueryServiceStatusEx 함수를 사용하거나 ControlService 함수 호출에서 SERVICE_CONTROL_INTERROGATE 컨트롤 값을 지정합니다. 이러한 함수에서 반환된 SERVICE_STATUS 구조체의 dwControlsAccepted 멤버는 서비스를 중지, 일시 중지 또는 재개할 수 있는지 여부를 나타냅니다. 모든 서비스는 SERVICE_CONTROL_INTERROGATE 제어 값을 허용합니다.

QueryServiceStatusEx 함수는 지정된 서비스에 대한 최신 상태 보고하지만 서비스 자체에서 업데이트된 상태 받지 않습니다. ControlService 호출에서 SERVICE_CONTROL_INTERROGATE 컨트롤 값을 사용하면 반환된 상태 정보가 최신인지 확인합니다.

SC를 사용하여 서비스 제어