Freigeben über


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

Siehe auch

GetServiceDisplayName-

OpenSCManager-

Dienstfunktionen