Функция OpenSCManagerA (winsvc.h)
Устанавливает подключение к диспетчеру управления службой на указанном компьютере и открывает указанную базу данных диспетчера управления службами.
Синтаксис
SC_HANDLE OpenSCManagerA(
[in, optional] LPCSTR lpMachineName,
[in, optional] LPCSTR lpDatabaseName,
[in] DWORD dwDesiredAccess
);
Параметры
[in, optional] lpMachineName
Имя целевого компьютера. Если указатель имеет значение NULL или указывает на пустую строку, функция подключается к диспетчеру управления службой на локальном компьютере.
[in, optional] lpDatabaseName
Имя базы данных диспетчера управления службами. Этот параметр должен иметь значение SERVICES_ACTIVE_DATABASE. Если значение NULL, база данных SERVICES_ACTIVE_DATABASE открывается по умолчанию.
[in] dwDesiredAccess
Доступ к диспетчеру управления службами. Список прав доступа см. в службы безопасности и доступа.
Перед предоставлением запрошенных прав доступа система проверяет маркер доступа вызывающего процесса в соответствии со списком дескриптора безопасности, связанного с диспетчером управления службами.
Право доступа SC_MANAGER_CONNECT неявно указывается путем вызова этой функции.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение является дескриптором указанной базы данных диспетчера управления службами.
Если функция завершается ошибкой, возвращаемое значение равно NULL. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Следующие коды ошибок можно задать с помощью SCM. Другие коды ошибок можно задать функциями реестра, вызываемыми SCM.
Возвращаемый код | Описание |
---|---|
|
Запрошенный доступ был отклонен. |
|
Указанная база данных не существует. |
Замечания
Когда процесс использует функцию OpenSCManager для открытия дескриптора в базе данных диспетчера управления службами, система выполняет проверку безопасности перед предоставлением запрошенного доступа. Дополнительные сведения см. в
Если текущий пользователь не имеет правильного доступа при подключении к службе на другом компьютере, вызов функции OpenSCManager завершается ошибкой. Чтобы подключиться к службе удаленно, вызовите функцию
Только процессы с правами администратора могут открывать дескриптор базы данных, который можно использовать функцией CreateService.
Возвращенный дескриптор действителен только для процесса, вызывающего функцию OpenSCManager. Его можно закрыть, вызвав функцию CloseServiceHandle.
Примеры
Пример см. в разделе Изменениеконфигурации службы.
Заметка
Заголовок winsvc.h определяет OpenSCManager как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winsvc.h (включая Windows.h) |
библиотеки |
Advapi32.lib |
DLL | Advapi32.dll |