OpenServiceA-Funktion (winsvc.h)
Öffnet einen vorhandenen Dienst.
Syntax
SC_HANDLE OpenServiceA(
[in] SC_HANDLE hSCManager,
[in] LPCSTR lpServiceName,
[in] DWORD dwDesiredAccess
);
Parameter
[in] hSCManager
Ein Handle für die Dienststeuerungs-Manager-Datenbank. Die OpenSCManager--Funktion gibt dieses Handle zurück. Weitere Informationen finden Sie unter Service Security and Access Rights.
[in] lpServiceName
Der Name des zu öffnenden Diensts. Dies ist der Name, der durch den parameter lpServiceName der CreateService Funktion angegeben wird, wenn das Dienstobjekt erstellt wurde, nicht der Anzeigename des Diensts, der von Benutzeroberflächenanwendungen angezeigt wird, um den Dienst zu identifizieren.
Die maximale Zeichenfolgenlänge beträgt 256 Zeichen. Die Datenbank des Dienststeuerungs-Managers behält die Groß-/Kleinschreibung bei, bei Dienstnamenvergleichen wird jedoch immer die Groß-/Kleinschreibung beachtet. Schrägstrich (/) und umgekehrter Schrägstrich (\) sind ungültige Zeichen des Dienstnamens.
[in] dwDesiredAccess
Der Zugriff auf den Dienst. Eine Liste der Zugriffsrechte finden Sie unter Service Security and Access Rights.
Bevor der angeforderte Zugriff gewährt wird, überprüft das System das Zugriffstoken des aufrufenden Prozesses anhand der diskretionären Zugriffssteuerungsliste des Sicherheitsdeskriptors, der dem Dienstobjekt zugeordnet ist.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Handle für den Dienst.
Wenn die Funktion fehlschlägt, ist der Rückgabewert NULL. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Die folgenden Fehlercodes können vom Dienststeuerungs-Manager festgelegt werden. Andere können von den Registrierungsfunktionen festgelegt werden, die vom Dienststeuerungs-Manager aufgerufen werden.
Rückgabecode | Beschreibung |
---|---|
|
Das Handle hat keinen Zugriff auf den Dienst. |
|
Der angegebene Handle ist ungültig. |
|
Der angegebene Dienstname ist ungültig. |
|
Der angegebene Dienst ist nicht vorhanden. |
Bemerkungen
Das zurückgegebene Handle ist nur für den Prozess gültig, der OpenService-aufgerufen wurde. Sie kann durch Aufrufen der CloseServiceHandle--Funktion geschlossen werden.
Um OpenService-zu verwenden, sind neben SC_MANAGER_CONNECTkeine Berechtigungen erforderlich.
Beispiele
Ein Beispiel finden Sie unter Starten eines Dienst-.
Anmerkung
Der winsvc.h-Header definiert OpenService als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winsvc.h (enthalten Windows.h) |
Library | Advapi32.lib |
DLL- | Advapi32.dll |