MCPcopy Create free account
hub / github.com/dobin/RedEdr / StartPplService

Function StartPplService

RedEdr/pplmanager.cpp:257–300  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

255
256
257BOOL StartPplService()
258{
259 SC_HANDLE hService;
260 SC_HANDLE hSCManager;
261 BOOL bSuccess = FALSE;
262 DWORD retval = 0;
263 DWORD SCManagerAccess = SC_MANAGER_ALL_ACCESS;
264 hSCManager = OpenSCManager(NULL, NULL, SCManagerAccess);
265 if (hSCManager == NULL) {
266 LOG_A(LOG_ERROR, "ETW-TI: install_service: OpenSCManager Error: %d", GetLastError());
267 return FALSE;
268 }
269
270 // Start service
271 hService = OpenService(hSCManager, SERVICE_NAME, SERVICE_START | SERVICE_QUERY_STATUS);
272 if (hService == NULL) {
273 LOG_A(LOG_ERROR, "ETW-TI: OpenService failed, error: %d", GetLastError());
274 CloseServiceHandle(hSCManager);
275 return FALSE;
276 }
277 bSuccess = StartService(hService, 0, NULL);
278 if (!bSuccess) {
279 retval = GetLastError();
280 CloseServiceHandle(hService);
281 CloseServiceHandle(hSCManager);
282 if (retval == ERROR_SERVICE_ALREADY_RUNNING) {
283 LOG_A(LOG_WARNING, "ETW-TI: Service is already running");
284 return TRUE;
285 }
286 else {
287 LOG_A(LOG_ERROR, "ETW-TI: StartService failed, error: %d", retval);
288 return FALSE;
289 }
290 }
291 else {
292 LOG_A(LOG_INFO, "ETW-TI: Service started successfully");
293 }
294
295 // Close handles
296 CloseServiceHandle(hService);
297 CloseServiceHandle(hSCManager);
298
299 return TRUE;
300}
301
302
303// No worky as no PPLy

Callers 1

StartThePplServiceFunction · 0.85

Calls 1

LOG_AFunction · 0.70

Tested by

no test coverage detected