GetServiceKeyName function

Retrieves the service name of the specified service.


BOOL WINAPI GetServiceKeyName(
  _In_      SC_HANDLE hSCManager,
  _In_      LPCTSTR   lpDisplayName,
  _Out_opt_ LPTSTR    lpServiceName,
  _Inout_   LPDWORD   lpcchBuffer


hSCManager [in]

A handle to the computer's service control manager database, as returned by OpenSCManager.

lpDisplayName [in]

The service display name. This string has a maximum length of 256 characters.

lpServiceName [out, optional]

A pointer to a buffer that receives the service name. If the function fails, this buffer will contain an empty string.

The maximum size of this array is 4K bytes. To determine the required size, specify NULL for this parameter and 0 for the lpcchBuffer parameter. The function will fail and GetLastError will return ERROR_INSUFFICIENT_BUFFER. The lpcchBuffer parameter will receive the required size.

lpcchBuffer [in, out]

A pointer to variable that specifies the size of the buffer pointed to by the lpServiceName parameter, in TCHARs. When the function returns, this parameter contains the size of the service name, in TCHARs, excluding the null-terminating character.

If the buffer pointed to by lpServiceName is too small to contain the service name, the function stores no data in it. When the function returns, lpcchBuffer contains the size of the service name, excluding the NULL terminator.

Return value

If the functions succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.


There are two names for a service: the service name and the display name. The service name is the name of the service's key in the registry. The display name is a user-friendly name that appears in the Services control panel application, and is used with the NET START command. Both names are specified with the CreateService function and can be modified with the ChangeServiceConfig function. Information specified for a service is stored in a key with the same name as the service name under the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ServiceName registry key.

To map the service name to the display name, use the GetServiceDisplayName function. To map the display name to the service name, use the GetServiceKeyName function.


Minimum supported client

Windows XP [desktop apps only]

Minimum supported server

Windows Server 2003 [desktop apps only]


Winsvc.h (include Windows.h)





Unicode and ANSI names

GetServiceKeyNameW (Unicode) and GetServiceKeyNameA (ANSI)

See also

Service Functions