Condividi tramite


Richieste di controllo del servizio

Per inviare richieste di controllo a un servizio in esecuzione, un programma di controllo del servizio usa la funzione ControlService . Questa funzione specifica un valore di controllo passato alla funzione HandlerEx del servizio specificato. Questo valore di controllo può essere un codice definito dall'utente oppure può essere uno dei codici standard che consentono al programma chiamante di eseguire le azioni seguenti:

  • Arrestare un servizio (SERVICE_CONTROL_STOP).
  • Sospendere un servizio (SERVICE_CONTROL_PAUSE).
  • Riprendere l'esecuzione di un servizio sospeso (SERVICE_CONTROL_CONTINUE).
  • Recuperare le informazioni sullo stato aggiornate da un servizio (SERVICE_CONTROL_INTERROGATE).

Ogni servizio specifica i valori del controllo che accetterà ed elaborerà. Per determinare quale dei valori di controllo standard vengono accettati da un servizio, usare la funzione QueryServiceStatusEx o specificare il valore del controllo SERVICE_CONTROL_INTERROGATE in una chiamata alla funzione ControlService . Il membro dwControlsAccepted della struttura SERVICE_STATUS restituita da queste funzioni indica se il servizio può essere arrestato, sospeso o ripreso. Tutti i servizi accettano il valore del controllo SERVICE_CONTROL_INTERROGATE.

La funzione QueryServiceStatusEx segnala lo stato più recente per un servizio specificato, ma non ottiene uno stato aggiornato dal servizio stesso. L'uso del valore del controllo SERVICE_CONTROL_INTERROGATE in una chiamata a ControlService garantisce che le informazioni sullo stato restituite siano correnti.

Controllo di un servizio tramite SC