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 参数指定 0。 函数将失败, GetLastError 将返回 ERROR_INSUFFICIENT_BUFFER。 lpcchBuffer 参数将接收所需的大小。
此参数可使用以下格式指定本地化字符串:
@[path]dllname,-strID
具有标识符 strID 的字符串从 dllname 加载; 路径 是可选的。 有关详细信息,请参阅 RegLoadMUIString。
Windows Server 2003 和 Windows XP: 在 Windows Vista 之前不支持本地化字符串。
[in, out] lpcchBuffer
指向变量的指针,该变量指定 TCHAR 中 lpDisplayName 指向的缓冲区的大小。
在输出时,此变量接收服务显示名称的大小(以字符为单位),不包括 null 终止字符。
如果 lpDisplayName 指向的缓冲区太小,无法包含显示名称,则函数不会存储它。 函数返回时, lpcchBuffer 包含服务显示名称的大小,不包括 null 终止字符。
返回值
如果函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
服务有两个名称:服务名称和显示名称。 服务名称是注册表中服务密钥的名称。 显示名称是显示在服务控制面板应用程序中的用户友好名称,与 NET START 命令一起使用。 若要将服务名称映射到显示名称,请使用 GetServiceDisplayName 函数。 若要将显示名称映射到服务名称,请使用 GetServiceKeyName 函数。
注意
winsvc.h 标头将 GetServiceDisplayName 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winsvc.h (包括 Windows.h) |
Library | Advapi32.lib |
DLL | Advapi32.dll |