Ensure systems recovery actions can happen.
authorIain Patterson <me@iain.cx>
Thu, 23 Sep 2010 14:27:14 +0000 (15:27 +0100)
committerIain Patterson <me@iain.cx>
Thu, 23 Sep 2010 15:32:57 +0000 (16:32 +0100)
commita7cd82567510bd8d674a3d2a62e3dfd5fe170fe4
tree9fd2af4a4b92d47d0a7f3fe40711c91087a688e6
parentf76171a9d3b313a233d84728d212f8237e5fd010
Ensure systems recovery actions can happen.

In Windows versions earlier than Vista the service manager would only
consider a service failed (and hence eligible for recovery action) if
the service exited without setting its state to SERVICE_STOPPED, even if
it signalled an error exit code.
In Vista and later the service manager can be configured to treat a
graceful shutdown with error code as a failure but this is not the
default behaviour.

Try to configure the service manager to use the new behaviour when
starting the service so users who set AppExit to Exit can use recovery
actions as expected.

Also recognise the new AppExit option Suicide for use on pre-Vista
systems.  When AppExit is Suicide don't stop the service but exit
inelegantly, which should be seen as a failure.
messages.mc
service.cpp
service.h