windows: use RegisterServiceCtrlHandlerEx to allow for advanced notifications

This allows services written with this library to register for more
advanced notifications like SERVICE_CONTROL_DEVICEEVENT for example.

Also the code now exposes the service status handle through a new
api call, because the handle is needed to register for such
notifications and can not be obtained by any other means.

Change-Id: I80796e1dd9d94ec9d6c236d0413b17288c67fe1f
Reviewed-on: https://go-review.googlesource.com/42812
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Julian Pastarmov
2017-05-18 05:52:01 +00:00
committed by Alex Brainman
parent 98b5b1e7e8
commit e62c3de784
4 changed files with 58 additions and 29 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ func Run(name string, handler svc.Handler) error {
for {
select {
case <-sig:
cmds <- svc.ChangeRequest{svc.Stop, status}
cmds <- svc.ChangeRequest{svc.Stop, 0, 0, status}
case status = <-changes:
}
}