GetServiceKeyNameA-Funktion (winsvc.h)
Ruft den Dienstnamen des angegebenen Diensts ab.
Syntax
BOOL GetServiceKeyNameA(
[in] SC_HANDLE hSCManager,
[in] LPCSTR lpDisplayName,
[out, optional] LPSTR lpServiceName,
[in, out] LPDWORD lpcchBuffer
);
Parameter
[in] hSCManager
Ein Handle zur Dienststeuerungs-Manager-Datenbank des Computers, wie von OpenSCManagerzurückgegeben.
[in] lpDisplayName
Der Anzeigename des Diensts. Diese Zeichenfolge hat eine maximale Länge von 256 Zeichen.
[out, optional] lpServiceName
Ein Zeiger auf einen Puffer, der den Dienstnamen empfängt. Wenn die Funktion fehlschlägt, enthält dieser Puffer eine leere Zeichenfolge.
Die maximale Größe dieses Arrays beträgt 4K Bytes. Um die erforderliche Größe zu ermitteln, geben Sie NULL für diesen Parameter und 0 für den lpcchBuffer Parameter an. Die Funktion schlägt fehl, und GetLastError- wird ERROR_INSUFFICIENT_BUFFERzurückgegeben. Der lpcchBuffer Parameter erhält die erforderliche Größe.
[in, out] lpcchBuffer
Ein Zeiger auf eine Variable, der die Größe des Puffers angibt, auf den der parameter lpServiceName verweist, in TCHARs. Wenn die Funktion zurückgegeben wird, enthält dieser Parameter die Größe des Dienstnamens in TCHARsmit Ausnahme des Null-Endzeichens.
Wenn der puffer, auf lpServiceName verweist, zu klein ist, um den Dienstnamen zu enthalten, speichert die Funktion keine Daten darin. Wenn die Funktion zurückgegeben wird, enthält lpcchBuffer die Größe des Dienstnamens, mit Ausnahme des NULL-Terminators.
Rückgabewert
Wenn die Funktionen erfolgreich sind, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
Es gibt zwei Namen für einen Dienst: den Dienstnamen und den Anzeigenamen. Der Dienstname ist der Name des Dienstschlüssels in der Registrierung. Der Anzeigename ist ein benutzerfreundlicher Name, der in der Systemsteuerungsanwendung "Dienste" angezeigt wird und mit dem Befehl NET START verwendet wird. Beide Namen werden mit der funktion CreateService angegeben und können mit der ChangeServiceConfig-Funktion geändert werden. Informationen, die für einen Dienst angegeben werden, werden in einem Schlüssel mit demselben Namen wie der Dienstname unter dem HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ServiceName Registrierungsschlüssel gespeichert.
Um den Dienstnamen dem Anzeigenamen zuzuordnen, verwenden Sie die GetServiceDisplayName--Funktion. Um den Anzeigenamen dem Dienstnamen zuzuordnen, verwenden Sie die GetServiceKeyName--Funktion.
Anmerkung
Der winsvc.h-Header definiert GetServiceKeyName 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 |
---|---|
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 |