QueryServiceStatus

The QueryServiceStatus function retrieves the current status of the specified service.

BOOL QueryServiceStatus(
  SC_HANDLE hService,  // handle of service
  LPSERVICE_STATUS lpServiceStatus 
                       // address of service status structure
);
 

Parameters

hService
Handle to the service. This handle is returned by the OpenService or the CreateService function, and it must have SERVICE_QUERY_STATUS access.
lpServiceStatus
Pointer to a SERVICE_STATUS structure in which the status information is returned.

Return Values

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Errors

The following error codes can be set by the service control manager. Other error codes can be set by the registry functions that are called by the service control manager.

Value Meaning
ERROR_ACCESS_DENIED The specified handle was not opened with SERVICE_QUERY_STATUS access.
ERROR_INVALID_HANDLE The specified handle is invalid.

Remarks

The QueryServiceStatus function returns the most recent service status information reported to the service control manager. If the service just changed its status, it may not have updated the service control manager yet. Applications can find out the current service status by interrogating the service directly using the ControlService function with the SERVICE_CONTROL_INTERROGATE control code.

QuickInfo

  Windows NT: Requires version 3.1 or later.
  Windows: Unsupported.
  Windows CE: Unsupported.
  Header: Declared in winsvc.h.
  Import Library: Use advapi32.lib.

See Also

Services Overview, Service Functions, ControlService, CreateService, OpenService, SERVICE_STATUS, SetServiceStatus