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 de Direitos de Acesso e Segurança do Serviço.

[out, optional] lpLockStatus

Um ponteiro para uma estrutura de QUERY_SERVICE_LOCK_STATUS que recebe o status de bloqueio 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 de retorno

Se a função for bem-sucedida, o valor retornado não será 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 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 pcbBytesNeededed. Nada é escrito para lpLockStatus.
ERROR_INVALID_HANDLE
O identificador especificado é inválido.

Observações

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.

Nota

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. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho winsvc.h (incluir Windows.h)
biblioteca Advapi32.lib
de DLL Advapi32.dll

Consulte também

LockServiceDatabase

OpenSCManager

QUERY_SERVICE_LOCK_STATUS

de Configuração de Serviço do

Funções de serviço

UnlockServiceDatabase