GetServiceDisplayNameA 函数 (winsvc.h)

检索指定服务的显示名称。

语法

BOOL GetServiceDisplayNameA(
  [in]            SC_HANDLE hSCManager,
  [in]            LPCSTR    lpServiceName,
  [out, optional] LPSTR     lpDisplayName,
  [in, out]       LPDWORD   lpcchBuffer
);

参数

[in] hSCManager

OpenSCManager 函数返回的服务控制管理器数据库的句柄。

[in] lpServiceName

服务名称。 此名称与服务的注册表项名称相同。 最好选择少于 256 个字符的名称。

[out, optional] lpDisplayName

指向接收服务的显示名称的缓冲区的指针。 如果函数失败,此缓冲区将包含空字符串。

此数组的最大大小为 4K 字节。 若要确定所需的大小,请为此参数指定 NULL,并为 lpcchBuffer 参数指定 NULL。 该函数将失败,GetLastError 将返回 ERROR_INSUFFICIENT_BUFFERlpcchBuffer 参数将收到所需的大小。

此参数可以使用以下格式指定本地化字符串:

@[路径]dllname,-strID

dllname加载标识符 strID 的字符串;路径 是可选的。 有关详细信息,请参阅 RegLoadMUIString

Windows Server 2003 和 Windows XP:在 Windows Vista 之前不支持本地化字符串

[in, out] lpcchBuffer

指向变量的指针,该变量指定 lpDisplayName所指向的缓冲区的大小,TCHAR

在输出中,此变量接收服务显示名称的大小(以字符为单位),不包括 null 终止字符。

如果 lpDisplayName 指向的缓冲区太小,无法包含显示名称,则函数不会存储它。 函数返回时,lpcchBuffer 包含服务显示名称的大小,不包括 null 终止字符。

返回值

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError

言论

服务有两个名称:服务名称和显示名称。 服务名称是注册表中服务密钥的名称。 显示名称是显示在服务控制面板应用程序中的用户友好名称,与 NET START 命令一起使用。 若要将服务名称映射到显示名称,请使用 GetServiceDisplayName 函数。 若要将显示名称映射到服务名称,请使用 GetServiceKeyName 函数。

注意

winsvc.h 标头将 GetServiceDisplayName 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 winsvc.h (包括 Windows.h)
Advapi32.lib
DLL Advapi32.dll

另请参阅

GetServiceKeyNameOpenSCManagerService Functions