A service configuration program uses the CreateService function to install a service in a SCM database. The application-defined schSCManager
handle must have SC_MANAGER_CREATE_SERVICE access to the SCManager object. The following example shows how to install a service.
VOID CreateSampleService()
{
LPCTSTR lpszBinaryPathName =
TEXT("%SystemRoot%\\system\\testserv.exe");
schService = CreateService(
schSCManager, // SCManager database
TEXT("Sample_Srv"), // name of service
lpszDisplayName, // service name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_WIN32_OWN_PROCESS, // service type
SERVICE_DEMAND_START, // start type
SERVICE_ERROR_NORMAL, // error control type
lpszBinaryPathName, // service's binary
NULL, // no load ordering group
NULL, // no tag identifier
NULL, // no dependencies
NULL, // LocalSystem account
NULL); // no password
if (schService == NULL)
MyErrorExit("CreateService");
else
printf("CreateService SUCCESS\n");
CloseServiceHandle(schService);
}