// Query returns current status of service s. func (s *Service) Query() (svc.Status, error) { var t windows.SERVICE_STATUS err := windows.QueryServiceStatus(s.Handle, &t) if err != nil { return svc.Status{}, err } return svc.Status{ State: svc.State(t.CurrentState), Accepts: svc.Accepted(t.ControlsAccepted), }, nil }
// Control sends state change request c to the servce s. func (s *Service) Control(c svc.Cmd) (svc.Status, error) { var t windows.SERVICE_STATUS err := windows.ControlService(s.Handle, uint32(c), &t) if err != nil { return svc.Status{}, err } return svc.Status{ State: svc.State(t.CurrentState), Accepts: svc.Accepted(t.ControlsAccepted), }, nil }