[SKEL_SERVICE]

The HandlerEx control handler is DWORD WINAPI, not VOID WINAPI .
Patch by Hermes BELUSCA - MAITO.
Fixes ROSAPPS-243.

svn path=/trunk/; revision=57324
This commit is contained in:
Eric Kohl 2012-09-18 20:37:51 +00:00
parent 133310457d
commit fa8ab28a6d

View file

@ -100,7 +100,7 @@ CreateServiceThread(PSERVICEINFO pServInfo)
} }
VOID WINAPI DWORD WINAPI
ServerCtrlHandler(DWORD dwControl, ServerCtrlHandler(DWORD dwControl,
DWORD dwEventType, DWORD dwEventType,
LPVOID lpEventData, LPVOID lpEventData,
@ -118,29 +118,34 @@ ServerCtrlHandler(DWORD dwControl,
pServInfo->servStatus.dwWin32ExitCode = 0; pServInfo->servStatus.dwWin32ExitCode = 0;
pServInfo->servStatus.dwWaitHint = 0; pServInfo->servStatus.dwWaitHint = 0;
UpdateStatus(pServInfo, SERVICE_STOP_PENDING, 1); UpdateStatus(pServInfo, SERVICE_STOP_PENDING, 1);
break; return ERROR_SUCCESS;
case SERVICE_CONTROL_PAUSE: case SERVICE_CONTROL_PAUSE:
LogEvent(_T("Setting the service to SERVICE_PAUSED"), 0, 0, LOG_FILE); LogEvent(_T("Setting the service to SERVICE_PAUSED"), 0, 0, LOG_FILE);
InterlockedExchange((LONG *)&bPause, TRUE); InterlockedExchange((LONG *)&bPause, TRUE);
UpdateStatus(pServInfo, SERVICE_PAUSED, 0); UpdateStatus(pServInfo, SERVICE_PAUSED, 0);
break; return ERROR_SUCCESS;
case SERVICE_CONTROL_CONTINUE: case SERVICE_CONTROL_CONTINUE:
LogEvent(_T("Setting the service to SERVICE_RUNNING"), 0, 0, LOG_FILE); LogEvent(_T("Setting the service to SERVICE_RUNNING"), 0, 0, LOG_FILE);
InterlockedExchange((LONG *)&bPause, FALSE); InterlockedExchange((LONG *)&bPause, FALSE);
UpdateStatus(pServInfo, SERVICE_RUNNING, 0); UpdateStatus(pServInfo, SERVICE_RUNNING, 0);
break; return ERROR_SUCCESS;
case SERVICE_CONTROL_INTERROGATE: case SERVICE_CONTROL_INTERROGATE:
break; return ERROR_SUCCESS;
default: default:
if (dwControl > 127 && dwControl < 256) /* user defined */ if (dwControl >= 128 && dwControl <= 255) /* User defined */
{
LogEvent(_T("User defined control code"), 0, 0, LOG_FILE); LogEvent(_T("User defined control code"), 0, 0, LOG_FILE);
return ERROR_SUCCESS;
}
else else
{
LogEvent(_T("ERROR: Bad control code"), 0, 0, LOG_FILE); LogEvent(_T("ERROR: Bad control code"), 0, 0, LOG_FILE);
break; return ERROR_INVALID_SERVICE_CONTROL;
}
} }
} }