QueryServiceStatus函数检索指定服务的当前状态。
BOOL QueryServiceStatus(
SC_HANDLE 【hService】, | //处理服务 |
LPSERVICE_STATUS 【lpServiceStatus】 | //服务状态结构的地址 |
); |
参数
【hService】
标识服务。该句柄由OpenService或CreateService函数返回,并且必须具有SERVICE_QUERY_STATUS访问权限。
【lpServiceStatus】
指向返回状态信息的SERVICE_STATUS结构。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
错误
服务控制管理器可以设置以下错误代码。其他错误代码可以由服务控制管理器调用的注册表函数设置。
值 | 含义 |
ERROR_ACCESS_DENIED | 在SERVICE_QUERY_STATUS访问中未打开指定的句柄。 |
ERROR_INVALID_HANDLE | 指定的句柄无效。 |
备注
QueryServiceStatus函数返回报告给服务控制管理器的最新服务状态信息。该服务可能刚刚更改其状态,可能尚未更新服务控制管理器。应用程序可以通过使用带有SERVICE_CONTROL_INTERROGATE控制代码的ControlService函数直接询问服务,找出绝对最新的服务状态。
也可以看看
ControlService, CreateService, OpenService, SERVICE_STATUS, SetServiceStatus