QueryServiceStatus:
获取服务运行状态,函数原型如下:
BOOL QueryServiceStatus(
SC_HANDLE hService,
LPSERVICE_STATUS lpServiceStatus);
参数hService是服务句柄,lpServiceStatus指向保存服务状态信息的SERVICE_STATUS机构的变量,返回表示是否成功。
SetServiceStatus:
设置服务运行状态,函数原型如下:
BOOL SetServiceStatus(
SERVICE_STATUS_HANDLE hService_status,
LPSERVICE_STATUS lpServiceStatus);
参数与返回值意义与QueryServiceStatusEX类似。
SERVICE_STATUSj结构:
typedef struct _SERVICE_STATUS{
DWORD dwServiceType;
DWORD dwCurrentState;
DWORD dwControlsAccepted;
DWORD dwWin32ExitCode;
DWORD dwServiceSpecificExitCode;
DWORD dwCheckPoint;
DWORD dwWaitHint;
} SERVICE_STATUS, *LPSERVICE_STATUS;
结构的dwCurrentState表示服务状态,其值可能是SERVICE_CONTINUE_PENDING、SERVICE_PAUSE_PENDING、SERVICE_PAUSED、SERVICE_RUNNING、SERVICE_START_PENDING、SERVICE_STOP_PENDING、SERVICE_STOPPED。