6 SC_HANDLE serviceControlManager = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
7 if (serviceControlManager == NULL) {
14 if (service == NULL) {
18 CloseServiceHandle(serviceControlManager);
22 SERVICE_STATUS serviceStatus;
24 if (!ControlService(service, SERVICE_CONTROL_INTERROGATE, &serviceStatus)) {
27 else if (serviceStatus.dwCurrentState == SERVICE_STOPPED)
31 else if (serviceStatus.dwCurrentState == SERVICE_RUNNING)
36 CloseServiceHandle(service);
37 CloseServiceHandle(serviceControlManager);
39 return serviceStatusReturn;
44 SC_HANDLE serviceControlManager = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
45 if (serviceControlManager == NULL) {
52 if (service == NULL) {
56 CloseServiceHandle(serviceControlManager);
60 SERVICE_STATUS serviceStatus;
61 if (!ControlService(service, SERVICE_CONTROL_STOP, &serviceStatus)) {
62 DWORD errorCode = GetLastError();
63 if (errorCode != ERROR_SERVICE_NOT_ACTIVE) {
68 else if (errorCode == ERROR_SERVICE_NOT_ACTIVE) {
76 CloseServiceHandle(service);
77 CloseServiceHandle(serviceControlManager);
84 SC_HANDLE serviceControlManager = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
85 if (serviceControlManager == NULL) {
92 if (service == NULL) {
97 CloseServiceHandle(serviceControlManager);
101 if (!StartService(service, 0, NULL)) {
102 if (GetLastError() == ERROR_SERVICE_ALREADY_RUNNING) {
103 SERVICE_STATUS serviceStatus;
105 if (!ControlService(service, SERVICE_CONTROL_STOP, &serviceStatus)) {
112 if (!StartService(service, 0, NULL)) {
126 CloseServiceHandle(service);
127 CloseServiceHandle(serviceControlManager);