Установка сервиса
Чтобы проинсталлировать сервис в базе данных SCM, необходимо воспользоваться функцией CreateService. Для этого дескриптору schSCManager необходимо иметь права SC_MANAGER_CREATE_SERVICE в объекте SCManager. Следующий пример демонстрирует установку сервиса.
VOID CreateSampleService()
{
LPCTSTR lpszBinaryPathName =
"%SystemRoot%\\system\\testserv.exe";
schService = CreateService(
schSCManager, // база данныйх SCManager
"Sample_Srv", // имя сервиса
lpszDisplayName, // имя, которое будет показываться
SERVICE_ALL_ACCESS, // уровень доступа
SERVICE_WIN32_OWN_PROCESS, // сервис будет запускаться
// в собственном процессе
SERVICE_DEMAND_START, // будет запускаться "вручную"
SERVICE_ERROR_NORMAL, // стандартный режим
// протоколирования ошибок
lpszBinaryPathName, // путь к сервису
NULL, // сервис не принадлежит группе
NULL, // --""--
NULL, // нет зависимости
NULL, // С правами системы
NULL); // без пароля
if (schService == NULL)
MyErrorExit("CreateService");
else
printf("CreateService SUCCESS.\n");
CloseServiceHandle(schService);
}