Dienststeuerungsanforderungen

Um Steuerelementanforderungen an einen ausgeführten Dienst zu senden, verwendet ein Dienststeuerungsprogramm die ControlService-Funktion . Diese Funktion gibt einen Steuerelementwert an, der an die HandlerEx-Funktion des angegebenen Diensts übergeben wird. Dieser Steuerelementwert kann ein benutzerdefinierter Code oder einer der Standardcodes sein, mit denen das aufrufende Programm die folgenden Aktionen ausführen kann:

  • Beenden Sie einen Dienst (SERVICE_CONTROL_STOP).
  • Anhalten eines Diensts (SERVICE_CONTROL_PAUSE).
  • Fortsetzen der Ausführung eines angehaltenen Diensts (SERVICE_CONTROL_CONTINUE).
  • Abrufen aktualisierter status Informationen aus einem Dienst (SERVICE_CONTROL_INTERROGATE).

Jeder Dienst gibt die Steuerelementwerte an, die er akzeptiert und verarbeitet. Um zu bestimmen, welche der Standardsteuerelementwerte von einem Dienst akzeptiert werden, verwenden Sie die QueryServiceStatusEx-Funktion , oder geben Sie den SERVICE_CONTROL_INTERROGATE-Steuerelementwert in einem Aufruf der ControlService-Funktion an. Das dwControlsAccepted-Element der SERVICE_STATUS Struktur, die von diesen Funktionen zurückgegeben wird, gibt an, ob der Dienst beendet, angehalten oder fortgesetzt werden kann. Alle Dienste akzeptieren den SERVICE_CONTROL_INTERROGATE-Steuerelementwert.

Die QueryServiceStatusEx-Funktion meldet die neueste status für einen angegebenen Dienst, erhält jedoch keine aktualisierte status vom Dienst selbst. Die Verwendung des SERVICE_CONTROL_INTERROGATE-Steuerelementwerts in einem Aufruf von ControlService stellt sicher, dass die zurückgegebenen status Informationen aktuell sind.

Steuern eines Diensts mithilfe von SC