Функция QueryServiceLockStatusA (winsvc.h)
[Эта функция не влияет на Windows Vista.]
Извлекает состояние блокировки указанной базы данных диспетчера управления службами.
Синтаксис
BOOL QueryServiceLockStatusA(
[in] SC_HANDLE hSCManager,
[out, optional] LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded
);
Параметры
[in] hSCManager
Дескриптор базы данных диспетчера управления службами. Функция OpenSC Manager возвращает этот дескриптор, который должен иметь право доступа SC_MANAGER_QUERY_LOCK_STATUS. Дополнительные сведения см. в
[out, optional] lpLockStatus
Возвращается указатель на QUERY_SERVICE_LOCK_STATUS структуру, получающую состояние блокировки указанной базы данных, а также строки, к которым указывает его члены.
[in] cbBufSize
Размер буфера, на который указывает параметр lpLockStatus, в байтах.
[out] pcbBytesNeeded
Указатель на переменную, которая получает количество байтов, необходимых для возврата всех сведений о состоянии блокировки, если функция завершается ошибкой.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение ненулевое.
Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Следующие коды ошибок можно задать диспетчером управления службой. Другие коды ошибок можно задать функциями реестра, которые вызываются диспетчером управления службами.
Возвращаемый код | Описание |
---|---|
|
Дескриптор не имеет права доступа SC_MANAGER_QUERY_LOCK_STATUS. |
|
Существует больше сведений о состоянии блокировки, чем в буфер lpLockStatus. Количество байтов, необходимых для получения всех сведений, возвращается в параметре pcbBytesNeeded. Ничего не записывается в lpLockStatus. |
|
Указанный дескриптор недопустим. |
Замечания
Функция QueryServiceLockStatus возвращает структуру QUERY_SERVICE_LOCK_STATUS, которая указывает, заблокирована ли указанная база данных. Если база данных заблокирована, структура предоставляет имя учетной записи пользователя, которому принадлежит блокировка, и время проведения блокировки.
Процесс вызывает функцию LockServiceDatabase для получения владения блокировкой базы данных диспетчера управления службами и функции UnlockServiceDatabase для освобождения блокировки.
Заметка
Заголовок winsvc.h определяет QueryServiceLockStatus как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winsvc.h (включая Windows.h) |
библиотеки |
Advapi32.lib |
DLL | Advapi32.dll |
См. также
конфигурации службы