Программирование для Windows NT (том 2)



         

Установка сервиса - часть 3


/p>

В параметре lpBinaryPathName вы должны указать полный путь к загрузочному файлу сервиса.

Через параметр lpLoadOrderGroup передается указатель на имя группы порядка загрузки сервиса. Сделав сервис членом одной из групп порядка загрузки, вы можете определить последовательность загрузки вашего сервиса относительно других сервисов. Список групп порядка загрузки находится в регистрационной базе данных:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

Если относительный порядок загрузки не имеет значения, укажите для параметра lpLoadOrderGroup значение NULL.

Параметр lpdwTagId используется только в том случае, если значение параметра lpLoadOrderGroup не равно NULL.

Параметр lpDependencies должен содержать указатель на массив строк имен сервисов или групп порядка загрузки, которые должны быть запущены перед запуском данного сервиса. Последняя строка такого массива должна быть закрыта двумя двоичными нулями. Если зависимостей от других сервисов нет, для параметра lpDependencies можно указать значение NULL.

Последние два параметра функции lpServiceStartName и lpPassword указывают, соответственно, имя и пароль пользователя, с правами которого данный сервис будет работать в системе (имя указывается в форме “ИмяДомена\имяПользователя”). Если параметр lpServiceStartName указан как NULL, сервис подключится к системе как пользователь LocalSystem. При этом параметр lpPassword должен быть указан как NULL.

Ниже мы привели фрагмент исходного текста приложения, в котором выполняется установка сервиса из каталога  c:\ntbk2\src\service\small\debug:

schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

schService = CreateService(

  schSCManager, MYServiceName, MYServiceName,

  SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS,

  SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,

  "c:\\ntbk2\\src\\service\\small\\debug\\small.exe",

  NULL, NULL, "", NULL, NULL);

CloseServiceHandle(schSCManager);




Содержание  Назад  Вперед