Función QueryServiceLockStatusA (winsvc.h)

[Esta función no tiene ningún efecto a partir de Windows Vista.]

Recupera el estado de bloqueo de la base de datos del administrador de control de servicios especificada.

Sintaxis

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

Parámetros

[in] hSCManager

Identificador de la base de datos del administrador de control de servicios. La función OpenSCManager devuelve este identificador, que debe tener el derecho de acceso SC_MANAGER_QUERY_LOCK_STATUS. Para obtener más información, consulte Derechos de acceso y seguridad de servicio.

[out, optional] lpLockStatus

Se devuelve un puntero a una estructura de QUERY_SERVICE_LOCK_STATUS que recibe el estado de bloqueo de la base de datos especificada, además de las cadenas a las que apuntan sus miembros.

[in] cbBufSize

Tamaño del búfer al que apunta el parámetro lpLockStatus , en bytes.

[out] pcbBytesNeeded

Puntero a una variable que recibe el número de bytes necesarios para devolver toda la información de estado de bloqueo, si se produce un error en la función.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

El administrador de controles de servicio puede establecer los siguientes códigos de error. Otros códigos de error se pueden establecer mediante las funciones del Registro a las que llama el administrador de control de servicios.

Código devuelto Descripción
ERROR_ACCESS_DENIED
El identificador no tiene derecho de acceso SC_MANAGER_QUERY_LOCK_STATUS.
ERROR_INSUFFICIENT_BUFFER
Hay más información de estado de bloqueo que cabría en el búfer lpLockStatus . El número de bytes necesarios para obtener toda la información se devuelve en el parámetro pcbBytesNeeded . Nada está escrito en lpLockStatus.
ERROR_INVALID_HANDLE
El identificador especificado no es válido.

Comentarios

La función QueryServiceLockStatus devuelve una estructura de QUERY_SERVICE_LOCK_STATUS que indica si la base de datos especificada está bloqueada. Si la base de datos está bloqueada, la estructura proporciona el nombre de cuenta del usuario que posee el bloqueo y el período de tiempo que se ha mantenido el bloqueo.

Un proceso llama a la función LockServiceDatabase para adquirir la propiedad de un bloqueo de base de datos del Administrador de control de servicios y la función UnlockServiceDatabase para liberar el bloqueo.

Nota

El encabezado winsvc.h define QueryServiceLockStatus como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winsvc.h (incluye Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

LockServiceDatabase

OpenSCManager

QUERY_SERVICE_LOCK_STATUS

Configuración de servicio

Funciones de servicio

UnlockServiceDatabase