Datenbank installierter Dienste
Der SCM verwaltet eine Datenbank mit installierten Diensten in der Registrierung. Die Datenbank wird vom SCM und Programmen verwendet, die Dienste hinzufügen, ändern oder konfigurieren. Im Folgenden ist der Registrierungsschlüssel für diese Datenbank aufgeführt:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
Dieser Schlüssel enthält einen Unterschlüssel für jeden installierten Dienst und Treiberdienst. Der Name des Unterschlüssels ist der Name des Diensts, wie von der CreateService-Funktion angegeben, als der Dienst von einem Dienstkonfigurationsprogramm installiert wurde.
Eine erste Kopie der Datenbank wird erstellt, wenn das System installiert wird. Die Datenbank enthält Einträge für die Gerätetreiber, die während des Systemstarts erforderlich sind. Die Datenbank enthält die folgenden Informationen zu jedem installierten Dienst und Treiberdienst:
- Der Diensttyp. Dies gibt an, ob der Dienst in einem eigenen Prozess ausgeführt wird oder einen Prozess für andere Dienste freigibt. Bei Treiberdiensten gibt dies an, ob der Dienst ein Kerneltreiber oder ein Dateisystemtreiber ist.
- Der Starttyp. Dies gibt an, ob der Dienst oder Treiberdienst automatisch beim Systemstart (Automatischstartdienst) gestartet wird oder ob er vom SCM gestartet wird, wenn er von einem Dienststeuerungsprogramm (Dienst für Bedarfsstart) angefordert wird. Der Starttyp kann auch angeben, dass der Dienst oder Treiberdienst deaktiviert ist. In diesem Fall kann er nicht gestartet werden.
- Die Fehlersteuerungsstufe. Dies gibt den Schweregrad des Fehlers an, wenn der Dienst oder Treiberdienst während des Systemstarts nicht gestartet werden kann, und bestimmt die Aktion, die das Startprogramm ausführen wird.
- Der vollqualifizierte Pfad der ausführbaren Datei. Die Dateinamenerweiterung wird für Dienste und .SYS für Treiberdienste .EXE.
- Optionale Abhängigkeitsinformationen, die verwendet werden, um die richtige Reihenfolge für das Starten von Diensten oder Treiberdiensten zu bestimmen. Für Dienste können diese Informationen eine Liste der Dienste enthalten, die der SCM starten muss, bevor er den angegebenen Dienst starten kann, den Namen einer Ladereihenfolgegruppe, zu der der Dienst gehört, und einen Tagbezeichner, der die Startreihenfolge des Diensts in der Lastreihenfolgegruppe angibt. Für Treiberdienste enthält diese Informationen eine Liste der Treiber, die vor dem angegebenen Treiber gestartet werden müssen.
- Für Dienste ein optionaler Kontoname und ein Kennwort. Das Dienstprogramm wird im Kontext dieses Kontos ausgeführt. Wenn kein Konto angegeben ist, wird der Dienst im Kontext des LocalSystem-Kontos ausgeführt.
- Für Treiberdienste ein optionaler Treiberobjektname (z. B. \FileSystem\Rdr oder \Driver\Xns), der vom E/A-System zum Laden des Gerätetreibers verwendet wird. Wenn kein Name angegeben ist, erstellt das E/A-System basierend auf dem Namen des Treiberdiensts einen Standardnamen.
Hinweis
Diese Datenbank wird auch als ServicesActive-Datenbank oder SCM-Datenbank bezeichnet. Sie müssen die vom SCM bereitgestellten Funktionen verwenden, anstatt die Datenbank direkt zu ändern.