|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
OpenSCManager
The OpenSCManager function establishes a connection to the service control manager on the specified computer and opens the specified database.
SC_HANDLE OpenSCManager(
LPCTSTR lpMachineName, // pointer to machine name string LPCTSTR lpDatabaseName, // pointer to database name string DWORD dwDesiredAccess // type of access );
Parameters
lpMachineName
Points to a null-terminated string that names the target computer. If the pointer is NULL or if it points to an empty string, the function connects to the service control manager on the local computer.
lpDatabaseName
Points to a null-terminated string that names the service control manager database to open. This string should specify ServicesActive. If the pointer is NULL, the ServicesActive database is opened by default.
dwDesiredAccess
Specifies the access to the service control manager. Before granting the requested access, the system checks the access token of the calling process against the discretionary access-control list of the security descriptor associated with the service control manager object. The SC_MANAGER_CONNECT access type is implicitly specified by calling this function. In addition, any or all of the following service control manager object access types can be specified:
Type Description SC_MANAGER_ALL_ACCESS Includes STANDARD_RIGHTS_REQUIRED, in addition to all of the access types listed in this table. SC_MANAGER_CONNECT Enables connecting to the service control manager. SC_MANAGER_CREATE_SERVICE Enables calling of the CreateService function to create a service object and add it to the database. SC_MANAGER_ENUMERATE_SERVICE Enables calling of the EnumServicesStatus function to list the services that are in the database. SC_MANAGER_LOCK Enables calling of the LockServiceDatabase function to acquire a lock on the database. SC_MANAGER_QUERY_LOCK_STATUS Enables calling of the QueryServiceLockStatus function to retrieve the lock status information for the database.
The dwDesiredAccess parameter can specify any or all of the following generic access types:
Generic access Service manager access GENERIC_READ Combines the following access: STANDARD_RIGHTS_READ, SC_MANAGER_ENUMERATE_SERVICE, and SC_MANAGER_QUERY_LOCK_STATUS. GENERIC_WRITE Combines the following access: STANDARD_RIGHTS_WRITE, SC_MANAGER_CREATE_SERVICE, and SC_MANAGER_MODIFY_BOOT_CONFIG. GENERIC_EXECUTE Combines the following access: STANDARD_RIGHTS_EXECUTE, SC_MANAGER_CONNECT, and SC_MANAGER_LOCK.
Return Values
If the function succeeds, the return value is a handle to the specified service control manager database. If the function fails, the return value is NULL. To get extended error information, call GetLastError.
Errors
The following error codes may be set by the service control manager. Other error codes may be set by the registry functions that are called by the service control manager.
Error code Meaning ERROR_ACCESS_DENIED The requested access was denied. ERROR_DATABASE_DOES_NOT_EXIST The specified database does not exist. ERROR_INVALID_PARAMETER A parameter that was specified is invalid.
Remarks
When a process uses the OpenSCManager function to open a handle to a service control manager database, the system performs a security check before granting the requested access. All processes are permitted SC_MANAGER_CONNECT, SC_MANAGER_ENUMERATE_SERVICE, and SC_MANAGER_QUERY_LOCK_STATUS access to all service control manager databases. This enables any process to open a service control manager database handle that it can use in the OpenService, EnumServicesStatus, and QueryServiceLockStatus functions. Only processes with Administrator privileges are able to open a database handle used by the CreateService and LockServiceDatabase functions.
The calling process can use the returned handle to identify the database in the following functions, if the appropriate access rights are enabled: CreateService EnumServicesStatus LockServiceDatabase OpenService QueryServiceLockStatus The returned handle is only valid for the process that called the OpenSCManager function. It can be closed by calling the CloseServiceHandle function.
See Also
CloseServiceHandle, CreateService, EnumServicesStatus, LockServiceDatabase, OpenService, QueryServiceLockStatus
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
OpenSCManager
Функция OpenSCManager устанавливает связь управляющему менеджеру услуги в определенном компьютере и открывает определенную базу данных.
SC_HANDLE OpenSCManager(
LPCTSTR lpMachineName, // УКАЗАТЕЛЬ в машинную строку имени LPCTSTR lpDatabaseName, // указатель в тип базы данных имени строки DWORD dwDesiredAccess // доступа );
Параметры
lpMachineName
Точки на недействительный расторгнутую строку, которые называют целевой компьютер. Если указатель НЕДЕЙСТВИТЕЛЕН или если он указывает на пустую строку, функция подключает к управляющему менеджеру услуги в локальном компьютере.
lpDatabaseName
Точки на недействительный расторгнутую строку, которые называют базу данных управляющего менеджера услуги, чтобы открываться. Эта строка должна определить ServicesActive. Если указатель НЕДЕЙСТВИТЕЛЕН, база данных ServicesActive открывается по умолчанию.
dwDesiredAccess
Определяет доступ к управляющему менеджеру услуги. Перед предоставлять запрошенного доступа, система проверяет признак доступа вызова процесса против дискреционного иметь доступ к-управляющему списку дескриптора безопасности связанной объектом управляющего менеджера услуги. Тип доступа SC_MANAGER_CONNECT подразумевающийо определен вызовом этой функции. Кроме того, любое или все следующее услуги управляющего объектного доступа менеджера набирает может быть определено:
Тип Description SC_MANAGER_ALL_ACCESS Включает STANDARD_RIGHTS_REQUIRED, дополнительно к всем типам доступа указанным в этой таблице. SC_MANAGER_CONNECT Приспосабливается соединяясь управляющему менеджеру услуги. SC_MANAGER_CREATE_SERVICE Позволяет функции CreateService, чтобы создавать объект услуги и добавлять это к базе данных. SC_MANAGER_ENUMERATE_SERVICE Позволяет функции EnumServicesStatus, чтобы указывать услуги, которые - в базе данных. SC_MANAGER_LOCK Позволяет функции LockServiceDatabase, чтобы приобретать блокировку на базе данных. SC_MANAGER_QUERY_LOCK_STATUS Позволяет функции QueryServiceLockStatus, чтобы извлекать информацию статуса блокировки для базы данных.
Параметр dwDesiredAccess может определить любые или все следующие общие типы доступа:
Менеджер Услуги Общего доступа доступа GENERIC_READ Объединяет следующее доступа: STANDARD_RIGHTS_READ, SC_MANAGER_ENUMERATE_SERVICE, и SC_MANAGER_QUERY_LOCK_STATUS. GENERIC_WRITE Объединяет следующее доступа: STANDARD_RIGHTS_WRITE, SC_MANAGER_CREATE_SERVICE, и SC_MANAGER_MODIFY_BOOT_CONFIG. GENERIC_EXECUTE Объединяет следующее доступа: STANDARD_RIGHTS_EXECUTE, SC_MANAGER_CONNECT, и SC_MANAGER_LOCK.
Обратные Величины
Если функция добивается успеха, обратная величина является ручкой управляющему менеджеру определенной базы данных услуги. Если функция терпит неудачу, обратная величина НЕДЕЙСТВИТЕЛЬНА. Для того, чтобы расширять информацию ошибки, назовите GetLastError.
Ошибки
Следующие коды ошибки могут быть установлены управляющим менеджером услуги. Другие коды ошибки могут быть установлены функциями регистрации, что названы управляющим менеджером услуги.
Кодовое Значение Ошибки ERROR_ACCESS_DENIED запрошенный доступ был запрещен. ERROR_DATABASE_DOES_NOT_EXIST определенная база данных не существует. ERROR_INVALID_PARAMETER параметр, который был определен, недействительно.
Замечания
Когда процесс использует функцию OpenSCManager, чтобы открывать ручку базе данных управляющего менеджера услуги, система выполняет чек безопасности перед предоставлять запрошенного доступа. Все процессы разрешены SC_MANAGER_CONNECT, SC_MANAGER_ENUMERATE_SERVICE, и доступ SC_MANAGER_QUERY_LOCK_STATUS ко всем базам данных управляющего менеджера услуги. Это позволяет процесс, чтобы открывать базу данных ручки управляющего менеджера услуги, которую он может использоваться в OpenService, EnumServicesStatus, и функциях QueryServiceLockStatus. Только процессы с привилегиями Администратора способные открыть базу данных ручки использованную CreateService и функции LockServiceDatabase.
Вызов процесса может использовать возвращанную ручку, чтобы идентифицировать базу данных в следующем функций, если подходящие права доступа приспособлены: CreateService EnumServicesStatus LockServiceDatabase OpenService QueryServiceLockStatus Возвращанная ручка только правильная для процесса, который был назван функция OpenSCManager. Может близко вызывая функцию CloseServiceHandle.
Смотри Также
CloseServiceHandle, CreateService, EnumServicesStatus, LockServiceDatabase, OpenService, QueryServiceLockStatus
|
|
|
|
| |