Dienstprogramme
Ein Dienstprogramm enthält ausführbaren Code für einen oder mehrere Dienste. Ein Dienstprogramm, das mit dem Typ SERVICE_WIN32_OWN_PROCESS erstellt wurde, enthält den Code für nur einen Dienst. Ein Dienstprogramm, das mit dem Typ SERVICE_WIN32_SHARE_PROCESS erstellt wurde, enthält Code für mehrere Dienste, sodass sie Code freigeben können. Ein Beispiel für ein Dienstprogramm, das dies tut, ist der generische Diensthostprozess Svchost.exe, der interne Windows-Dienste hostet. Beachten Sie, dass Svchost.exe für die Verwendung durch das Betriebssystem reserviert ist und nicht von Nicht-Windows-Diensten verwendet werden darf. Stattdessen sollten Entwickler ihre eigenen Diensthostingprogramme implementieren.
Ein Dienstprogramm kann so konfiguriert werden, dass es im Kontext eines Benutzerkontos aus der integrierten (lokalen), primären oder vertrauenswürdigen Domäne ausgeführt wird. Es kann auch für die Ausführung in einem speziellen Dienstbenutzerkonto konfiguriert werden.
In den folgenden Themen werden die Schnittstellenanforderungen des Dienststeuerungs-Managers (Service Control Manager , SCM) beschrieben, die ein Dienstprogramm enthalten muss:
Diese Themen gelten nicht für Treiberdienste. Informationen zu Schnittstellenanforderungen von Treiberdiensten finden Sie im Windows Driver Kit (WDK).
Ein Dienst wird als Hintergrundprozess ausgeführt, der sich auf die Systemleistung, Reaktionsfähigkeit, Energieeffizienz und Sicherheit auswirken kann. Richtlinien zur Dienstoptimierung finden Sie unter Entwickeln effizienter Hintergrundprozesse für Windows. In den folgenden Themen werden zusätzliche Überlegungen zur Programmierung beschrieben:
- Dienststatusübergänge
- Empfangen von Ereignissen in einem Dienst
- Multithreaded Services
- Dienste und die Registrierung
- Dienste und umgeleitete Laufwerke
- Diensttriggerereignisse
Beachten Sie, dass das Dienstprogramm, wenn es als RPC-Server fungiert, dynamische Endpunkte und gegenseitige Authentifizierung verwenden sollte.