2 * PROJECT: ReactOS Services
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: base/applications/sc/start.c
5 * PURPOSE: Start a service
6 * COPYRIGHT: Copyright 2005 - 2006 Ged Murphy <gedmurphy@gmail.com>
12 BOOL
Start(LPCTSTR ServiceName
, LPCTSTR
*ServiceArgs
, INT ArgCount
)
14 SC_HANDLE hSCManager
= NULL
;
16 LPSERVICE_STATUS_PROCESS pServiceInfo
= NULL
;
20 LPCTSTR
*TmpArgs
= ServiceArgs
;
21 INT TmpCnt
= ArgCount
;
22 _tprintf(_T("service to control - %s\n"), ServiceName
);
23 _tprintf(_T("Arguments:\n"));
26 _tprintf(_T(" %s\n"), *TmpArgs
);
33 hSCManager
= OpenSCManager(NULL
,
36 if (hSCManager
== NULL
)
38 _tprintf(_T("[SC] OpenSCManager FAILED %lu:\n\n"), GetLastError());
43 hSc
= OpenService(hSCManager
,
45 SERVICE_START
| SERVICE_QUERY_STATUS
);
48 _tprintf(_T("[SC] OpenService FAILED %lu:\n\n"), GetLastError());
58 if (!StartService(hSc
,
62 _tprintf(_T("[SC] StartService FAILED %lu:\n\n"), GetLastError());
67 pServiceInfo
= QueryService(ServiceName
);
68 if (pServiceInfo
!= NULL
)
70 PrintService(ServiceName
,
74 HeapFree(GetProcessHeap(), 0, pServiceInfo
);
82 CloseServiceHandle(hSc
);
85 CloseServiceHandle(hSCManager
);