diff --git a/windows/svc/mgr/service.go b/windows/svc/mgr/service.go index ded1c7a4..aee2d3d2 100644 --- a/windows/svc/mgr/service.go +++ b/windows/svc/mgr/service.go @@ -68,8 +68,10 @@ func (s *Service) Query() (svc.Status, error) { return svc.Status{}, err } return svc.Status{ - State: svc.State(t.CurrentState), - Accepts: svc.Accepted(t.ControlsAccepted), - ProcessId: t.ProcessId, + State: svc.State(t.CurrentState), + Accepts: svc.Accepted(t.ControlsAccepted), + ProcessId: t.ProcessId, + Win32ExitCode: t.Win32ExitCode, + ServiceSpecificExitCode: t.ServiceSpecificExitCode, }, nil } diff --git a/windows/svc/service.go b/windows/svc/service.go index f7f4ff5b..37485286 100644 --- a/windows/svc/service.go +++ b/windows/svc/service.go @@ -71,11 +71,13 @@ const ( // Status combines State and Accepted commands to fully describe running service. type Status struct { - State State - Accepts Accepted - CheckPoint uint32 // used to report progress during a lengthy operation - WaitHint uint32 // estimated time required for a pending operation, in milliseconds - ProcessId uint32 // if the service is running, the process identifier of it, and otherwise zero + State State + Accepts Accepted + CheckPoint uint32 // used to report progress during a lengthy operation + WaitHint uint32 // estimated time required for a pending operation, in milliseconds + ProcessId uint32 // if the service is running, the process identifier of it, and otherwise zero + Win32ExitCode uint32 // set if the service has exited with a win32 exit code + ServiceSpecificExitCode uint32 // set if the service has exited with a service-specific exit code } // ChangeRequest is sent to the service Handler to request service status change.