Compartilhar via


Função QueryServiceLockStatusA (winsvc.h)

[Essa função não tem efeito a partir do Windows Vista.]

Recupera o status de bloqueio do banco de dados do gerenciador de controle de serviço especificado.

Sintaxe

BOOL QueryServiceLockStatusA(
  [in]            SC_HANDLE                    hSCManager,
  [out, optional] LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus,
  [in]            DWORD                        cbBufSize,
  [out]           LPDWORD                      pcbBytesNeeded
);

Parâmetros

[in] hSCManager

Um identificador para o banco de dados do gerenciador de controle de serviço. A função OpenSCManager retorna esse identificador, que deve ter o acesso SC_MANAGER_QUERY_LOCK_STATUS correto. Para obter mais informações, consulte Segurança do serviço e Direitos de Acesso.

[out, optional] lpLockStatus

Um ponteiro para uma estrutura QUERY_SERVICE_LOCK_STATUS que recebe o bloqueio status do banco de dados especificado é retornado, além das cadeias de caracteres para as quais seus membros apontam.

[in] cbBufSize

O tamanho do buffer apontado pelo parâmetro lpLockStatus , em bytes.

[out] pcbBytesNeeded

Um ponteiro para uma variável que recebe o número de bytes necessários para retornar todas as informações de status de bloqueio, se a função falhar.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Os códigos de erro a seguir podem ser definidos pelo gerenciador de controle de serviço. Outros códigos de erro podem ser definidos pelas funções do Registro que são chamadas pelo gerenciador de controle de serviço.

Código de retorno Descrição
ERROR_ACCESS_DENIED
O identificador não tem o acesso de SC_MANAGER_QUERY_LOCK_STATUS correto.
ERROR_INSUFFICIENT_BUFFER
Há mais informações de status de bloqueio do que caberia no buffer lpLockStatus. O número de bytes necessários para obter todas as informações é retornado no parâmetro pcbBytesNeeded . Nada é escrito em lpLockStatus.
ERROR_INVALID_HANDLE
O identificador especificado é inválido.

Comentários

A função QueryServiceLockStatus retorna uma estrutura QUERY_SERVICE_LOCK_STATUS que indica se o banco de dados especificado está bloqueado. Se o banco de dados estiver bloqueado, a estrutura fornecerá o nome da conta do usuário que possui o bloqueio e o período de tempo que o bloqueio foi mantido.

Um processo chama a função LockServiceDatabase para adquirir a propriedade de um bloqueio de banco de dados do gerenciador de controle de serviço e a função UnlockServiceDatabase para liberar o bloqueio.

Observação

O cabeçalho winsvc.h define QueryServiceLockStatus como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winsvc.h (inclua Windows.h)
Biblioteca Advapi32.lib
DLL Advapi32.dll

Confira também

LockServiceDatabase

OpenSCManager

QUERY_SERVICE_LOCK_STATUS

Configuração de serviço

Funções de serviço

UnlockServiceDatabase