QueryServiceLockStatusA, fonction (winsvc.h)

[Cette fonction n’a aucun effet à partir de Windows Vista.]

Récupère le status de verrou de la base de données du gestionnaire de contrôle de service spécifiée.

Syntaxe

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

Paramètres

[in] hSCManager

Handle de la base de données du gestionnaire de contrôle de service. La fonction OpenSCManager retourne ce handle, qui doit avoir le droit d’accès SC_MANAGER_QUERY_LOCK_STATUS. Pour plus d’informations, consultez Sécurité du service et droits d’accès.

[out, optional] lpLockStatus

Pointeur vers une structure de QUERY_SERVICE_LOCK_STATUS qui reçoit le verrou status de la base de données spécifiée est retourné, ainsi que les chaînes vers lesquelles pointent ses membres.

[in] cbBufSize

Taille de la mémoire tampon vers laquelle pointe le paramètre lpLockStatus , en octets.

[out] pcbBytesNeeded

Pointeur vers une variable qui reçoit le nombre d’octets nécessaires pour retourner toutes les informations de status de verrou, en cas d’échec de la fonction.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Les codes d’erreur suivants peuvent être définis par le gestionnaire de contrôle de service. D’autres codes d’erreur peuvent être définis par les fonctions de Registre appelées par le gestionnaire de contrôle de service.

Code de retour Description
ERROR_ACCESS_DENIED
Le handle n’a pas le droit d’accès SC_MANAGER_QUERY_LOCK_STATUS.
ERROR_INSUFFICIENT_BUFFER
Il y a plus d’informations de status de verrouillage que ne le feraient dans la mémoire tampon lpLockStatus. Le nombre d’octets requis pour obtenir toutes les informations est retourné dans le paramètre pcbBytesNeeded . Rien n’est écrit dans lpLockStatus.
ERROR_INVALID_HANDLE
Le handle spécifié n’est pas valide.

Remarques

La fonction QueryServiceLockStatus retourne une structure QUERY_SERVICE_LOCK_STATUS qui indique si la base de données spécifiée est verrouillée. Si la base de données est verrouillée, la structure fournit le nom du compte de l’utilisateur propriétaire du verrou et la durée pendant laquelle le verrou a été conservé.

Un processus appelle la fonction LockServiceDatabase pour acquérir la propriété d’un verrou de base de données du gestionnaire de contrôle de service et de la fonction UnlockServiceDatabase pour libérer le verrou.

Notes

L’en-tête winsvc.h définit QueryServiceLockStatus en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winsvc.h (inclure Windows.h)
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

LockServiceDatabase

OpenSCManager

QUERY_SERVICE_LOCK_STATUS

Configuration de service

Fonctions de service

UnlockServiceDatabase