Condividi tramite


Funzione QueryServiceLockStatusW (winsvc.h)

[Questa funzione non ha alcun effetto a partire da Windows Vista.]

Recupera lo stato del blocco del database di gestione controllo dei servizi specificato.

Sintassi

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

Parametri

[in] hSCManager

Handle per il database di Gestione controllo dei servizi. La funzione OpenSCManager restituisce questo handle, che deve avere il diritto di accesso SC_MANAGER_QUERY_LOCK_STATUS. Per altre informazioni, vedere Service Security and Access Rights.

[out, optional] lpLockStatus

Viene restituito un puntatore a una struttura QUERY_SERVICE_LOCK_STATUS che riceve lo stato di blocco del database specificato, oltre alle stringhe a cui puntano i relativi membri.

[in] cbBufSize

Dimensione del buffer a cui punta il parametro lpLockStatus in byte.

[out] pcbBytesNeeded

Puntatore a una variabile che riceve il numero di byte necessari per restituire tutte le informazioni sullo stato del blocco, se la funzione ha esito negativo.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

I codici di errore seguenti possono essere impostati dal gestore di controllo del servizio. Altri codici di errore possono essere impostati dalle funzioni del Registro di sistema chiamate dal gestore di controllo del servizio.

Codice restituito Descrizione
ERROR_ACCESS_DENIED
L'handle non dispone del diritto di accesso SC_MANAGER_QUERY_LOCK_STATUS.
ERROR_INSUFFICIENT_BUFFER
Sono disponibili più informazioni sullo stato del blocco rispetto al buffer lpLockStatus. Il numero di byte necessari per ottenere tutte le informazioni viene restituito nel parametro pcbBytesNeeded. Nulla viene scritto in lpLockStatus.
ERROR_INVALID_HANDLE
L'handle specificato non è valido.

Osservazioni

La funzione QueryServiceLockStatus restituisce una struttura QUERY_SERVICE_LOCK_STATUS che indica se il database specificato è bloccato. Se il database è bloccato, la struttura fornisce il nome dell'account dell'utente proprietario del blocco e il periodo di tempo in cui il blocco è stato mantenuto.

Un processo chiama la funzione LockServiceDatabase per acquisire la proprietà di un blocco del database di Gestione controllo dei servizi e la funzione UnlockServiceDatabase per rilasciare il blocco.

Nota

L'intestazione winsvc.h definisce QueryServiceLockStatus come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
piattaforma di destinazione Finestre
intestazione winsvc.h (include Windows.h)
libreria Advapi32.lib
dll Advapi32.dll

Vedere anche

LockServiceDatabase

OpenSCManager

QUERY_SERVICE_LOCK_STATUS

di configurazione del servizio

Funzioni del servizio

UnlockServiceDatabase