На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

LockServiceDatabase



The LockServiceDatabase function locks a specified database.

SC_LOCK LockServiceDatabase(

SC_HANDLE hSCManager // handle of service control manager database
);


Parameters

hSCManager

Identifies the service control manager database. The OpenSCManager function returns this handle, which must have SC_MANAGER_LOCK access.



Return Values

If the function succeeds, the return value is a lock 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 code may be set by the service control manager. Other error codes may be set by registry functions that are called by the service control manager.

Value Meaning
ERROR_ACCESS_DENIED The specified handle was not opened with SC_MANAGER_LOCK access.
ERROR_INVALID_HANDLE The specified handle is invalid.
ERROR_SERVICE_DATABASE_LOCKED The database is locked.


Remarks

The LockServiceDatabase function tries to acquire a lock on the specified database. Only one process at a time can have a lock on a database.
A lock is a protocol used by setup and configuration programs and the service control manager to serialize access to the service tree in the registry. The only time the service control manager acquires a lock is when it is starting a service. Setup and configuration programs are expected to acquire a lock before using the ChangeServiceConfig or SetServiceObjectSecurity function to reconfigure a service. They should also acquire a lock before using the registry functions to reconfigure a service. The lock prevents the service control manager from starting a service while it is being reconfigured.

A call to the StartService function to start a service in a locked database fails. All other service control manager functions are not affected by a lock.
The lock is held until the SC_LOCK handle is specified in a subsequent call to the UnlockServiceDatabase function. If a process that is holding a lock terminates, the service control manager automatically cleans up and releases the lock.

See Also

ChangeServiceConfig, OpenSCManager, QueryServiceLockStatus, SetServiceObjectSecurity, StartService, UnlockServiceDatabase




Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

LockServiceDatabase



Функция LockServiceDatabase запирает определенную базу данных.

SC_LOCK LockServiceDatabase(

ручка SC_HANDLE hSCManager // базы данных управляющего менеджера услуги
);


Параметры

hSCManager

Идентифицирует базу данных управляющего менеджера услуги. Функция OpenSCManager возвращает эту ручку, которая должна иметь доступ SC_MANAGER_LOCK.



Обратные Величины

Если функция добивается успеха, обратная величина является блокировкой управляющему менеджеру определенной базы данных услуги.
Если функция терпит неудачу, обратная величина НЕДЕЙСТВИТЕЛЬНА. Для того, чтобы расширять информацию ошибки, назовите GetLastError.

Ошибки

Следующий код ошибки может быть установлен управляющим менеджером услуги. Другие коды ошибки могут быть установлены функциями регистрации, что названы управляющим менеджером услуги.

Значение Величины
ERROR_ACCESS_DENIED определенная ручка не была открыта доступом SC_MANAGER_LOCK.
ERROR_INVALID_HANDLE определенная ручка недействительна.
ERROR_SERVICE_DATABASE_LOCKED база данных заперта.


Замечания

Функция LockServiceDatabase пытается приобретать блокировку на определенной базе данных. Только один процесс за один раз может иметь блокировку на базе данных.
Блокировка является протоколом использованным установкой и программами конфигурации и управляющий менеджер услуги, чтобы издавать сериями доступ к дереву услуги в регистрации. Единственное время управляющий менеджер услуги приобретает блокировку - когда она начинает с услуги. Установка и программы конфигурации ожидается, что приобрести блокировке перед использованием ChangeServiceConfig или функция SetServiceObjectSecurity, чтобы перестраивать услугу. Они должны также приобрести блокировку прежде, чем использование регистрации будет функционировать, чтобы перестраивать услугу. Блокировка мешает управляющего менеджера услуги чтобы начинать с услуги тогда как она перестраивается.

Вызов в функцию StartService, чтобы начинать с услуги в закрытой базе данных терпит неудачу. Все другие функции управляющего менеджера услуги не поражены блокировкой.
Блокировка воздержалась пока ручка SC_LOCK не будет определена на последующем вызове в функцию UnlockServiceDatabase. Если процесс, который удерживает блокировку завершается, управляющий менеджер услуги автоматически наводит порядок и выпускает блокировку.

Смотри Также

ChangeServiceConfig, OpenSCManager, QueryServiceLockStatus, SetServiceObjectSecurity, StartService, UnlockServiceDatabase




Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz