QueryServiceConfigA-Funktion (winsvc.h)
Ruft die Konfigurationsparameter des angegebenen Diensts ab. Optionale Konfigurationsparameter stehen mithilfe der QueryServiceConfig2--Funktion zur Verfügung.
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 SERVICE_QUERY_CONFIG Zugriffsrecht verfügen. Weitere Informationen finden Sie unter Service Security and Access Rights.
[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 8K Bytes. Um die erforderliche Größe zu ermitteln, 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 pcbBytesNeededed Parameter erhält die erforderliche Größe.
[in] cbBufSize
Die Größe des Puffers, auf den der lpServiceConfig Parameter in Byte verweist.
[out] pcbBytesNeeded
Ein Zeiger auf eine Variable, die die Anzahl der Zum Speichern aller Konfigurationsinformationen benötigten Bytes empfängt, 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 fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Die folgenden Fehlercodes können vom Dienststeuerungs-Manager festgelegt werden. Andere können von den Registrierungsfunktionen festgelegt werden, die vom Dienststeuerungs-Manager aufgerufen werden.
Rückgabecode | Beschreibung |
---|---|
|
Das Handle verfügt nicht über das zugriffsrecht SERVICE_QUERY_CONFIG. |
|
Es gibt mehr Dienstkonfigurationsinformationen, als in den lpServiceConfig Puffer passen würden. Die Anzahl der Bytes, die zum Abrufen aller Informationen erforderlich sind, wird im pcbBytesNeededed Parameter zurückgegeben. Nichts wird in lpServiceConfiggeschrieben. |
|
Der angegebene Handle ist ungültig. |
Bemerkungen
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 mithilfe 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, entsprechen die von QueryServiceConfig zurückgegebenen Informationen nicht der aktuellen Konfiguration des Diensts. Stattdessen spiegelt sie die Konfiguration des Diensts wider, wenn er als nächstes ausgeführt wird. Der schlüssel DisplayName ist eine Ausnahme. Wenn der DisplayName-Taste geändert wird, wird er sofort wirksam, unabhängig davon, ob der Dienst ausgeführt wird.
Beispiele
Ein Beispiel finden Sie unter Abfragen der Konfigurations-eines Diensts.
Anmerkung
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 Code, der nicht codierungsneutral ist, 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 |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winsvc.h (enthalten Windows.h) |
Library | Advapi32.lib |
DLL- | Advapi32.dll |