自己写的系统服务程序停止问题

创建系统服务程序时,dwControlsAccepted设置如下:
ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_SHUTDOWN;
不接受SERVICE_ACCEPT_STOP命令,
即:ControlService( schService,
SERVICE_CONTROL_STOP,
(LPSERVICE_STATUS) &ssp )不起作用的情况下程序如何停止服务。

自己创建一个全局Event,服务循环中周期性检测这个Event,想退出时,第三方程序SetEvent触发这个事件

杀进程;
进程间通信;

杀进程不考虑,进程间通信我想到了,但是有个问题是,我如果从服务循环里退出呢,即:StartServiceCtrlDispatcher如何让他返回呢