Freigeben über


QueryServiceConfigA-Funktion (winsvc.h)

Ruft die Konfigurationsparameter des angegebenen Diensts ab. Optionale Konfigurationsparameter sind mit der QueryServiceConfig2-Funktion verfügbar.

Syntax

BOOL QueryServiceConfigA(
  [in]            SC_HANDLE               hService,
  [out, optional] LPQUERY_SERVICE_CONFIGA lpServiceConfig,
  [in]            DWORD                   cbBufSize,
  [out]           LPDWORD                 pcbBytesNeeded
);

Parameter

[in] hService

Ein Handle für den Dienst. Dieses Handle wird von der OpenService - oder CreateService-Funktion zurückgegeben und muss über das zugriffsrecht SERVICE_QUERY_CONFIG verfügen. Weitere Informationen finden Sie unter Dienstsicherheit und Zugriffsrechte.

[out, optional] lpServiceConfig

Ein Zeiger auf einen Puffer, der die Dienstkonfigurationsinformationen empfängt. Das Format der Daten ist eine QUERY_SERVICE_CONFIG Struktur.

Die maximale Größe dieses Arrays beträgt 8.000 Bytes. Um die erforderliche Größe zu bestimmen, geben Sie NULL für diesen Parameter und 0 für den cbBufSize-Parameter an. Die Funktion schlägt fehl, und GetLastError gibt ERROR_INSUFFICIENT_BUFFER zurück. Der parameter pcbBytesNeeded empfängt die erforderliche Größe.

[in] cbBufSize

Die Größe des Puffers, auf den der parameter lpServiceConfig in Bytes verweist.

[out] pcbBytesNeeded

Ein Zeiger auf eine Variable, die die Anzahl von Bytes empfängt, die zum Speichern aller Konfigurationsinformationen benötigt werden, wenn die Funktion mit ERROR_INSUFFICIENT_BUFFER 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 können durch die Registrierungsfunktionen festgelegt werden, die vom Dienststeuerungs-Manager aufgerufen werden.

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

Hinweise

Die QueryServiceConfig-Funktion gibt die Dienstkonfigurationsinformationen zurück, die in der Registrierung für einen bestimmten Dienst gespeichert sind. Diese Konfigurationsinformationen werden zuerst von einem Dienststeuerungsprogramm mit der CreateService-Funktion festgelegt. Diese Informationen wurden möglicherweise von einem Dienstkonfigurationsprogramm mithilfe der ChangeServiceConfig-Funktion aktualisiert.

Wenn der Dienst ausgeführt wurde, als die Konfigurationsinformationen zuletzt geändert wurden, spiegeln die von QueryServiceConfig zurückgegebenen Informationen nicht die aktuelle Konfiguration des Diensts wider. Stattdessen spiegelt er die Konfiguration des Diensts wider, wenn er das nächste Mal ausgeführt wird. Die DisplayName-Taste ist eine Ausnahme. Wenn die DisplayName-Taste geändert wird, wird sie sofort wirksam, unabhängig davon, ob der Dienst ausgeführt wird.

Beispiele

Ein Beispiel finden Sie unter Abfragen der Konfiguration eines Diensts.

Hinweis

Der winsvc.h-Header definiert QueryServiceConfig 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

ChangeServiceConfig

CreateService

Openservice

QUERY_SERVICE_CONFIG

QueryServiceConfig2

QueryServiceDynamicInformation

QueryServiceObjectSecurity

Dienstkonfiguration:

Dienstfunktionen