15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Функция OpenService.

Функция OpenService открывает существующий сервис.

 

SC_HANDLE OpenService(
  SC_HANDLE hSCManager,
  LPCTSTR lpServiceName,
  DWORD dwDesiredAccess
);

Параметры

hSCManager
Дескриптор базы данных менеджера управления сервисами. Этот дескриптор можно получить при помощи функции OpenSCManager.
lpServiceName
Указатель на строку (заканчивающуюся нулевым символом), содержащую имя открываемого сервиса. Длина строки не должна превышать 256 символов.
dwDesiredAccess
Тип доступа к сервису. См. Безопасность сервисов и типы доступа.

Перед тем, как разрешить доступ к сервису, система проверяет права процесса, из которого пришёл запрос.

Возвращаемое значение

В случае успеха, функция возвращает дескриптор сервиса.

В случае ошибки, функция вернёт NULL. Для получения более подробной информации об ошибке, можно воспользоваться функцией GetLastError.

В следующей таблице приведены стандартные коды ошибок:

 

Значение Описание
ERROR_ACCESS_DENIED Дескриптор не емеет достаточных прав для доступа к сервису.
ERROR_INVALID_HANDLE Указан неправильный дескриптор.
ERROR_INVALID_NAME Указано неправильное имя сервиса.
ERROR_SERVICE_DOES_NOT_EXIST Указанный сервис не существует.


Замечания

Полученный дескриптор будет действовать только для того процесса, который вызвал OpenService. Закрыть дескриптор можно при помощи функции CloseServiceHandle.

Пример

См. Запуск сервиса.

Дополнительная информация

Windows NT/2000/XP: Присутствует начиная с Windows NT 3.1 и выше.
Unicode: Существует как Unicode, так и ANSI версия этой функции.
Заголовок: Объявлена в Winsvc.h; включена в Windows.h.
Библиотека: Advapi32.lib.