Freigeben über


QueryServiceLockStatusA-Funktion (winsvc.h)

[Diese Funktion hat ab Windows Vista keine Auswirkungen.]

Ruft die Sperr-status der angegebenen Dienststeuerungs-Manager-Datenbank ab.

Syntax

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

Parameter

[in] hSCManager

Ein Handle für die Dienststeuerungs-Manager-Datenbank. Die OpenSCManager-Funktion gibt dieses Handle zurück, das über das zugriffsrecht SC_MANAGER_QUERY_LOCK_STATUS verfügen muss. Weitere Informationen finden Sie unter Dienstsicherheit und Zugriffsrechte.

[out, optional] lpLockStatus

Ein Zeiger auf eine QUERY_SERVICE_LOCK_STATUS-Struktur, die die status der angegebenen Datenbank empfängt, sowie die Zeichenfolgen, auf die die Member verweisen.

[in] cbBufSize

Die Größe des Puffers, auf den der lpLockStatus-Parameter in Bytes verweist.

[out] pcbBytesNeeded

Ein Zeiger auf eine Variable, die die Anzahl der Bytes empfängt, die benötigt werden, um alle Sperr-status Informationen zurückzugeben, wenn die Funktion fehlschlägt.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Die folgenden Fehlercodes können vom Dienststeuerungs-Manager festgelegt werden. Andere Fehlercodes können von den Registrierungsfunktionen festgelegt werden, die vom Dienststeuerungs-Manager aufgerufen werden.

Rückgabecode Beschreibung
ERROR_ACCESS_DENIED
Das Handle verfügt nicht über das zugriffsrecht SC_MANAGER_QUERY_LOCK_STATUS.
ERROR_INSUFFICIENT_BUFFER
Es gibt mehr Sperrinformationen status, als in den puffer lpLockStatus passen würden. Die Anzahl der Bytes, die zum Abrufen aller Informationen erforderlich sind, wird im parameter pcbBytesNeeded zurückgegeben. Nichts wird in lpLockStatus geschrieben.
ERROR_INVALID_HANDLE
Das angegebene Handle ist ungültig.

Hinweise

Die QueryServiceLockStatus-Funktion gibt eine QUERY_SERVICE_LOCK_STATUS-Struktur zurück, die angibt, ob die angegebene Datenbank gesperrt ist. Wenn die Datenbank gesperrt ist, gibt die Struktur den Kontonamen des Benutzers an, der die Sperre besitzt, und die Dauer, für die die Sperre gehalten wurde.

Ein Prozess ruft die LockServiceDatabase-Funktion auf, um den Besitz einer Datenbanksperre des Dienststeuerungs-Managers und der UnlockServiceDatabase-Funktion zum Freigeben der Sperre zu erlangen.

Hinweis

Der winsvc.h-Header definiert QueryServiceLockStatus als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winsvc.h (einschließen von Windows.h)
Bibliothek Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

LockServiceDatabase

OpenSCManager

QUERY_SERVICE_LOCK_STATUS

Dienstkonfiguration:

Dienstfunktionen

UnlockServiceDatabase