queryServiceStatus 函数 (winsvc.h)

检索指定服务的当前状态。

此函数已被 QueryServiceStatusEx 函数取代。 QueryServiceStatusEx 返回 QueryServiceStatus 返回的相同信息,同时添加了服务的进程标识符和其他信息。

语法

BOOL QueryServiceStatus(
  [in]  SC_HANDLE        hService,
  [out] LPSERVICE_STATUS lpServiceStatus
);

参数

[in] hService

服务的句柄。 此句柄由 OpenServiceCreateService 函数返回,并且它必须具有SERVICE_QUERY_STATUS访问权限。 有关详细信息,请参阅 服务安全和访问权限

[out] lpServiceStatus

指向接收状态信息的 SERVICE_STATUS 结构的指针。

返回值

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

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

服务控制管理器可以设置以下错误代码。 其他错误代码可由服务控制管理器调用的注册表函数设置。

返回代码 说明
ERROR_ACCESS_DENIED
句柄没有SERVICE_QUERY_STATUS访问权限。
ERROR_INVALID_HANDLE
该句柄无效。

注解

QueryServiceStatus 函数返回向服务控制管理器报告的最新服务状态信息。 如果服务刚刚更改了其状态,则可能尚未更新服务控制管理器。

要求

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

另请参阅

ControlService

CreateService

OpenService

QueryServiceStatusEx

SERVICE_STATUS

服务函数

服务启动

SetServiceStatus