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 Datenbank des Dienststeuerungs-Managers. Die OpenSCManager-Funktion gibt dieses Handle zurück. Weitere Informationen finden Sie unter Dienstsicherheit und Zugriffsrechte.
[in] lpServiceName
Der Name des zu öffnenden Diensts. Dies ist der Name, der vom lpServiceName-Parameter der CreateService-Funktion angegeben wurde, als das Dienstobjekt erstellt wurde, nicht der Dienstanzeigename, der von Benutzeroberflächenanwendungen zur Identifizierung des Diensts angezeigt wird.
Die maximale Zeichenfolgenlänge beträgt 256 Zeichen. Die Datenbank des Dienststeuerungs-Managers behält die Groß-/Kleinschreibung der Zeichen bei, bei Dienstnamenvergleichen wird jedoch immer die Groß-/Kleinschreibung nicht beachtet. Schrägstrich (/) und umgekehrter Schrägstrich (\) sind ungültige Dienstnamenzeichen.
[in] dwDesiredAccess
Der Zugriff auf den Dienst. Eine Liste der Zugriffsrechte finden Sie unter Dienstsicherheit und Zugriffsrechte.
Bevor der angeforderte Zugriff gewährt wird, überprüft das System das Zugriffstoken des aufrufenden Prozesses anhand der zugriffskontrollbasierten Liste 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 bei der Funktion ein Fehler auftritt, ist der Rückgabewert NULL. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
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. |
|
Das angegebene Handle ist ungültig. |
|
Der angegebene Dienstname ist ungültig. |
|
Der angegebene Dient ist nicht vorhanden. |
Hinweise
Das zurückgegebene Handle ist nur für den Prozess gültig, der OpenService aufgerufen hat. Sie kann durch Aufrufen der CloseServiceHandle-Funktion geschlossen werden.
Für die Verwendung von OpenService sind außer SC_MANAGER_CONNECT keine Berechtigungen erforderlich.
Beispiele
Ein Beispiel finden Sie unter Starten eines Diensts.
Hinweis
Der winsvc.h-Header definiert OpenService als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch 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 |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winsvc.h (windows.h einschließen) |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |