![]() |
![]() |
|
![]() |
||||||||||||||||||
![]() |
![]() |
![]() |
||||||||||||||||
|
![]() |
|
![]() |
|
||||||||||||||
![]() |
![]() |
Функция OpenSCManager. / Сервисы NT / Система. Общее |
![]() |
Функция OpenSCManager.Функция OpenSCManager устанавливает связь с менеджером управления сервисами и открывает его базу данных. SC_HANDLE OpenSCManager( LPCTSTR lpMachineName, LPCTSTR lpDatabaseName, DWORD dwDesiredAccess ); Параметры
Возвращаемое значение В случае успеха, функция возвращает дескриптор базы данных менеджера управления сервисами. В случае ошибки, функция вернёт NULL. Для получения более подробной информации об ошибке см. функцию GetLastError. Стандартные коды ошибок, возвращаемые SCM приведены в таблице:
ЗаметкиПеред тем, как разрешить процессу доступ к базе данных менеджера управления сервисами с запрошенными правами, система проводит проверку безопасности. Windows 2000 и ранние версии: Все процессы имею следующие права на доступ к базе: SC_MANAGER_CONNECT, SC_MANAGER_ENUMERATE_SERVICE, и SC_MANAGER_QUERY_LOCK_STATUS. Тем самым, любому процессу разрешается открыть базу менеджера управления сервисами, получить её дескриптор и использовать его в функциях OpenService, EnumServicesStatus, и QueryServiceLockStatus. Windows XP: Правами SC_MANAGER_CONNECT, SC_MANAGER_ENUMERATE_SERVICE, и SC_MANAGER_QUERY_LOCK_STATUS могут воспользоваться только авторизованные пользователи. Использовать функции CreateService и LockServiceDatabase могут только процессы имеющие права Администратора. Использовать дескриптор может только тот процесс, который вызвал функцию OpenSCManager. Закрыть его можно при помощи функции CloseServiceHandle. Пример См. Открытие базы данных SCManager. Дополнительная информация Windows NT/2000/XP: Присутствует начиная с Windows NT 3.1.
|
![]() |
![]() |
![]() |
|