NULL);
if (*hPipe == INVALID_HANDLE_VALUE)
{
- ERR("CreateFileW() failed (Error %lu)\n", GetLastError());
+ ERR("CreateFileW() failed for pipe %S (Error %lu)\n", NtControlPipeName, GetLastError());
return ERROR_FAILED_SERVICE_CONTROLLER_CONNECT;
}
TRACE("Size: %lu\n", ControlPacket->dwSize);
TRACE("Service: %S\n", &ControlPacket->szArguments[0]);
- lpService = (PACTIVE_SERVICE)(ULONG_PTR)ControlPacket->hClient;
+ lpService = (PACTIVE_SERVICE)ControlPacket->hClient;
if (lpService == NULL)
{
TRACE("Service not found\n");
TRACE("Size: %lu\n", ControlPacket->dwSize);
TRACE("Service: %S\n", &ControlPacket->szArguments[0]);
- lpService = (PACTIVE_SERVICE)(ULONG_PTR)ControlPacket->hClient;
+ lpService = (PACTIVE_SERVICE)ControlPacket->hClient;
if (lpService == NULL)
{
TRACE("Service not found\n");
break;
default:
- TRACE("Unknown command %lu", ControlPacket->dwControl);
+ TRACE("Command %lu received", ControlPacket->dwControl);
+ ScControlService(ControlPacket);
continue;
}
Service = ScLookupServiceByServiceName((LPWSTR)lpServiceName);
if (Service == NULL)
{
- return INVALID_HANDLE_VALUE;
+ return (SERVICE_STATUS_HANDLE)NULL;
}
Service->HandlerFunction = lpHandlerProc;
Service->HandlerFunctionEx = lpHandlerProc;
Service->HandlerContext = lpContext;
- TRACE("RegisterServiceCtrlHandlerEx returning %lu", Service->hService);
+ TRACE("RegisterServiceCtrlHandlerEx returning %lu\n", Service->hService);
return (SERVICE_STATUS_HANDLE)Service->hService;
}
{
BOOL bResult;
- _SEH2_TRY
+ RpcTryExcept
{
/* Call to services.exe using RPC */
bResult = RI_ScSetServiceBitsA((RPC_SERVICE_STATUS_HANDLE)hServiceStatus,
bUpdateImmediately,
lpString);
}
- _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
SetLastError(ScmRpcStatusToWinError(RpcExceptionCode()));
bResult = FALSE;
}
- _SEH2_END;
+ RpcEndExcept;
return bResult;
}
{
BOOL bResult;
- _SEH2_TRY
+ RpcTryExcept
{
/* Call to services.exe using RPC */
bResult = RI_ScSetServiceBitsW((RPC_SERVICE_STATUS_HANDLE)hServiceStatus,
bUpdateImmediately,
lpString);
}
- _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
SetLastError(ScmRpcStatusToWinError(RpcExceptionCode()));
bResult = FALSE;
}
- _SEH2_END;
+ RpcEndExcept;
return bResult;
}
* @implemented
*/
BOOL WINAPI
-StartServiceCtrlDispatcherA(LPSERVICE_TABLE_ENTRYA lpServiceStartTable)
+StartServiceCtrlDispatcherA(const SERVICE_TABLE_ENTRYA * lpServiceStartTable)
{
ULONG i;
HANDLE hPipe;
* @implemented
*/
BOOL WINAPI
-StartServiceCtrlDispatcherW(LPSERVICE_TABLE_ENTRYW lpServiceStartTable)
+StartServiceCtrlDispatcherW(const SERVICE_TABLE_ENTRYW * lpServiceStartTable)
{
ULONG i;
HANDLE hPipe;