Поделиться через


Функция 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.

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

Возвращаемый код Описание
ERROR_ACCESS_DENIED
Дескриптор не имеет права доступа SC_MANAGER_QUERY_LOCK_STATUS.
ERROR_INSUFFICIENT_BUFFER
Существует больше сведений о состоянии блокировки, чем в буфер lpLockStatus. Количество байтов, необходимых для получения всех сведений, возвращается в параметре pcbBytesNeeded. Ничего не записывается в lpLockStatus.
ERROR_INVALID_HANDLE
Указанный дескриптор недопустим.

Замечания

Функция 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

См. также

LockServiceDatabase

OpenSCManager

QUERY_SERVICE_LOCK_STATUS

конфигурации службы

Функции службы

UnlockServiceDatabase