Функция 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
Дескриптор для базы данных диспетчера управления службами. Функция OpenSCManager возвращает этот дескриптор, который должен иметь право доступа 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 [только классические приложения] |
Целевая платформа | Windows |
Header | winsvc.h (включая Windows.h) |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |