Функция GetServiceKeyNameA (winsvc.h)
Извлекает имя указанной службы.
Синтаксис
BOOL GetServiceKeyNameA(
[in] SC_HANDLE hSCManager,
[in] LPCSTR lpDisplayName,
[out, optional] LPSTR lpServiceName,
[in, out] LPDWORD lpcchBuffer
);
Параметры
[in] hSCManager
Дескриптор для базы данных диспетчера управления службами компьютера, возвращенный OpenSCManager.
[in] lpDisplayName
Отображаемое имя службы. Максимальная длина этой строки равна 256 символам.
[out, optional] lpServiceName
Указатель на буфер, получающий имя службы. В случае сбоя функции этот буфер будет содержать пустую строку.
Максимальный размер этого массива составляет 4 КБ байт. Чтобы определить требуемый размер, укажите значение NULL для этого параметра и 0 для параметра lpcchBuffer . Функция завершится ошибкой, и GetLastError вернет ERROR_INSUFFICIENT_BUFFER. Параметр lpcchBuffer получит необходимый размер.
[in, out] lpcchBuffer
Указатель на переменную, указывающую размер буфера, на который указывает параметр lpServiceName , в TCHAR. При возврате функции этот параметр содержит размер имени службы в TCHAR, за исключением символа, завершающего значение NULL.
Если буфер, на который указывает lpServiceName , слишком мал, чтобы содержать имя службы, функция не сохраняет в нем данных. При возврате функции lpcchBuffer содержит размер имени службы, за исключением признака конца NULL.
Возвращаемое значение
Если функции выполняются успешно, возвращаемое значение не равно нулю.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Служба имеет два имени: имя службы и отображаемое имя. Имя службы — это имя раздела службы в реестре. Отображаемое имя — это понятное имя, которое отображается в приложении панели управления "Службы" и используется с командой NET START . Оба имени указываются с помощью функции CreateService и могут быть изменены с помощью функции ChangeServiceConfig . Сведения, указанные для службы, хранятся в разделе с тем же именем, что и имя службы в разделе реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ServiceName .
Чтобы сопоставить имя службы с отображаемым именем, используйте функцию GetServiceDisplayName . Чтобы сопоставить отображаемое имя с именем службы, используйте функцию GetServiceKeyName .
Примечание
Заголовок winsvc.h определяет GetServiceKeyName в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | winsvc.h (включая Windows.h) |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |