服務控制要求
若要將控制要求傳送至執行中的服務,服務控制程式會使用 ControlService 函式。 此函式會指定傳遞至指定服務的 HandlerEx 函式的控件值。 此控制項值可以是使用者定義的程式代碼,或者它可以是其中一個標準程式代碼,可讓呼叫程式執行下列動作:
- 停止服務(SERVICE_CONTROL_STOP)。
- 暫停服務(SERVICE_CONTROL_PAUSE)。
- 繼續執行暫停的服務(SERVICE_CONTROL_CONTINUE)。
- 從服務擷取更新的狀態資訊(SERVICE_CONTROL_INTERROGATE)。
每個服務都會指定將接受和處理的控制項值。 若要判斷服務接受的標準控件值,請使用 QueryServiceStatusEx 函式,或在呼叫 ControlService 函式中指定SERVICE_CONTROL_INTERROGATE控件值。 dwControlsAccepted 這些函式所傳回之 SERVICE_STATUS 結構的成員指出服務是否可以停止、暫停或繼續。 所有服務都接受SERVICE_CONTROL_INTERROGATE控件值。
QueryServiceStatusEx 函式會報告指定服務的最新狀態,但不會從服務本身取得更新的狀態。 在呼叫 ControlService 時使用 SERVICE_CONTROL_INTERROGATE 控件值, 可確保傳回的狀態資訊是目前的。
相關主題
-
使用 SC 控制服務