Dienständerungen für Windows Vista

Es gab erhebliche Änderungen an dem Dienstmodell, um die Leistung, Zuverlässigkeit, Sicherheit, Verwaltung und Verwaltung von Diensten zu verbessern.

In der folgenden Tabelle werden die Verbesserungen für Dienste für Windows Vista zusammengefasst.

Erweiterung Beschreibung
Verzögertes Automatisches Starten
Verzögerte automatische Startdienste werden kurz nach dem Start des Systems gestartet. Dadurch wird die Systemstartleistung verbessert, während sie weiterhin den automatischen Start für diese Dienste bereitstellt. Rufen Sie zum Festlegen des verzögerten Automatischstart-Flags die Funktion ChangeServiceConfig2 mit SERVICE_CONFIG_DELAYED_AUTO_START_INFO auf.
Fehlererkennung und Wiederherstellung
Wenn ein Dienst fehlschlägt, kann der Dienststeuerungs-Manager (SCM) eine Fehleraktion ausführen, z. B. das Starten des Diensts in einem Versuch, diesen Fehler wiederherzustellen. Um eine Fehleraktion zu konfigurieren, rufen Sie ChangeServiceConfig2 mit SERVICE_CONFIG_FAILURE_ACTIONS auf.
Preshutdown-Benachrichtigungen
Ein Dienst kann registrieren, um eine SERVICE_CONTROL_PRESHUTDOWN Benachrichtigung in seiner HandlerEx-Funktion zu erhalten, bevor er die tatsächliche Herunterfahren-Benachrichtigung empfängt. Dadurch werden Dienste mit einer längeren Herunterfahrenprozedur mehr Zeit zum Herunterfahren bereitgestellt. Um den Timeoutwert festzulegen, rufen Sie ChangeServiceConfig2 mit SERVICE_CONFIG_PRESHUTDOWN_INFO auf.
Eingeschränkter Netzwerkzugriff
Sie können Dienst-SIDs verwenden, um den Zugriff auf Ports, Protokolle oder die Richtung des Netzwerkdatenverkehrs einzuschränken. Um den Zugriff eines Diensts auf das Netzwerk einzuschränken, verwenden Sie die INetFwServiceRestriction-Schnittstelle .
Ausführen mit den geringsten Berechtigungen
Dienste können unter jedem Konto ausgeführt werden, das die erforderlichen Berechtigungen enthält (LocalService, NetworkService, LocalSystem, ein Domänenkonto oder ein lokales Konto), und geben sie die erforderlichen Berechtigungen an, indem Sie ChangeServiceConfig2 mit SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO aufrufen. Der SCM entfernt alle Berechtigungen, die nicht erforderlich sind.
Dienstisolation
Ein Dienst kann Objekte wie Dateien oder Registrierungsschlüssel für seine exklusive Verwendung isolieren, indem sie mit einem Zugriffssteuerungseintrag gesichert werden, der eine Dienst-SID enthält. Nachdem diese SID einem Dienst zugewiesen wurde, kann der Dienstbesitzer die Zugriffssteuerungslisten der Objekte ändern, um Zugriff auf die SID zu gewähren. Dadurch kann ein Dienst auf bestimmte Objekte zugreifen, ohne unter einem Hochberechtigungskonto auszuführen oder die Sicherheit auf den Objekten zu verringern. Um die Dienst-SID festzulegen, rufen Sie ChangeServiceConfig2 mit SERVICE_CONFIG_SERVICE_SID_INFO auf.
Dienststatusänderungsbenachrichtigungen
Dienste können registriert werden, wenn ein Dienst erstellt, gelöscht oder einen Status geändert hat, indem er die Funktion " NotifyServiceStatusChange " verwendet. Dies ist effizienter als das Aufrufen der QueryServiceStatusEx-Funktion in einer Schleife, um den Status zu abfragen.
Sitzungsisolation 0
Dienste sind immer in Sitzung 0 ausgeführt. Bevor Windows Vista angemeldet wurde, wurde der erste Benutzer der Sitzung 0 zugewiesen. Die Sitzung 0 ist jetzt ausschließlich für Dienste und andere Anwendungen reserviert, die nicht einer interaktiven Benutzersitzung zugeordnet sind. (Der erste Benutzer zum Anmelden ist mit Sitzung 1 verbunden, der zweite Benutzer, der sich anmelden soll, ist mit Sitzung 2 verbunden und so weiter.) Sitzung 0 unterstützt keine Prozesse, die mit dem Benutzer interagieren.
Diese Änderung bedeutet, dass ein Dienst keine Nachricht an eine Anwendung posten oder senden kann und eine Anwendung keine Nachricht an einen Dienst senden oder posten kann. Darüber hinaus können Dienste kein Benutzeroberflächenelement wie z. B. ein Dialogfeld direkt anzeigen. Ein Dienst kann die WTSSendMessage-Funktion verwenden, um ein Dialogfeld in einer anderen Sitzung anzuzeigen.

Dienste