Функция OpenService открывает существующую службу.
Синтаксис
SC_HANDLE OpenService( SC_HANDLE hSCManager, LPCTSTR lpServiceName, DWORD dwDesiredAccess ); |
hSCManager
[in] Дескриптор базы данных диспетчера управления службой. Функция OpenSCManager возвращает этот дескриптор.
lpServiceName
[in] Указатель на строку с завершающим нулем, которая задает имя открываемой службы. Максимальная длина строки - 256 символов. База данных диспетчера управления службами сохраняет регистр символов, но сравнения имени службы всегда нечувствительны к регистру. Прямой слэш (/) и обратный слэш (\) - неиспользуемые символы имени службы.
dwDesiredAccess
[in] Доступ к службе. Перечень прав доступа см. в статье Защита службы и права доступа.
Перед предоставлением затребованного доступа, система проверяет маркер доступа вызывающего процесса, опираясь на список разграничительного контроля доступа дескриптора безопасности, связанного с объектом службы.
Если функция завершается успешно, возвращаемое значение - дескриптор службы.
Если функция завершается ошибкой, возвращаемое значение - значение ПУСТО (NULL). Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError .
Следующие коды ошибки могут установиться диспетчером управления службами. Другие могут установиться функциями реестра, которые вызывает диспетчер управления службами.
Код возврата | Описание |
---|---|
ERROR_ACCESS_DENIED | Дескриптор не имеет доступа к службе. |
ERROR_INVALID_HANDLE | Указанный дескриптор недействителен. |
ERROR_INVALID_NAME | Указанное имя службы недействительно. |
ERROR_SERVICE_DOES_NOT_EXIST | Указанная служба не существует. |
Возвращенный дескриптор действителен только для процесса, который вызван функцией OpenService. Он может быть закрыт при помощи вызова функции CloseServiceHandle.
Пример смотри в статье Запуск службы.
Обзор Службы,
Функции,
используемые службами,
ChangeServiceConfig,
CloseServiceHandle,
ControlService,
CreateService,
DeleteService,
EnumDependentServices,
OpenSCManager,
QueryServiceConfig,
Размещение и совместимость OpenService |
||
К | Windows XP | Да |
л | Windows 2000 Professional | Да |
и | Windows NT Workstation | Да |
е | Windows Me | Нет |
н | Windows 98 | Нет |
т | Windows 95 | Нет |
С | Windows Server 2003 | Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да |
в | ||
е | ||
р | ||
Используемая библиотека | Advapi32.lib | |
Используемая DLL | advapi32.dll | |
Заголовочный файл | ||
- объявлено в | Winsvc.h | |
- включено в | Windows.h | |
Unicode | Реализуется как OpenServiceW(Unicode) и OpenServiceA (ANSI) | |
Замечания по платформе | Не имеется |