Datenbank der installierten Dienste
Der SCM verwaltet eine Datenbank mit installierten Diensten in der Registrierung. Die Datenbank wird von SCM und Programmen verwendet, die Dienste hinzufügen, ändern oder konfigurieren. Es folgt der Registrierungsschlüssel für diese Datenbank: 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 durch die CreateService Funktion angegeben, als der Dienst von einem Dienstkonfigurationsprogramm installiert wurde.
Beim Installieren des Systems wird eine ursprüngliche Kopie der Datenbank erstellt. 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 seinem 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 beim Systemstart (AutoStartdienst) automatisch gestartet wird oder ob der SCM gestartet wird, wenn er von einem Dienststeuerungsprogramm angefordert wird (Bedarfsstartdienst). Der Starttyp kann auch angeben, dass der Dienst oder Treiberdienst deaktiviert ist, in diesem Fall kann er nicht gestartet werden.
- Die Fehlersteuerungsebene. Dies gibt den Schweregrad des Fehlers an, wenn der Dienst oder treiberdienst beim Systemstart 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 .EXE und .SYS für Treiberdienste.
- 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 von Diensten 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 seiner Ladereihenfolgegruppe angibt. Bei Treiberdiensten enthält diese Informationen eine Liste der Treiber, die vor dem angegebenen Treiber gestartet werden müssen.
- Für Dienste, einen optionalen Kontonamen und ein Kennwort. Das Dienstprogramm wird im Kontext dieses Kontos ausgeführt. Wenn kein Konto angegeben ist, wird der Dienst im Kontext des LocalSystem-Kontosausgeführt.
- Bei Treiberdiensten wird ein optionaler Treiberobjektname (z. B. \FileSystem\Rdr oder \Driver\Xns) verwendet, der vom E/A-System zum Laden des Gerätetreibers verwendet wird. Wenn kein Name angegeben ist, erstellt das E/A-System einen Standardnamen basierend auf dem Treiberdienstnamen.
Anmerkung
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.