Установка сервиса.
Чтобы проинсталлировать сервис в базе данных 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);
}
|