Freigeben über


QUERY_SERVICE_CONFIGA Struktur (winsvc.h)

Enthält Konfigurationsinformationen für einen installierten Dienst. Sie wird von der QueryServiceConfig--Funktion verwendet.

Syntax

typedef struct _QUERY_SERVICE_CONFIGA {
  DWORD dwServiceType;
  DWORD dwStartType;
  DWORD dwErrorControl;
  LPSTR lpBinaryPathName;
  LPSTR lpLoadOrderGroup;
  DWORD dwTagId;
  LPSTR lpDependencies;
  LPSTR lpServiceStartName;
  LPSTR lpDisplayName;
} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;

Angehörige

dwServiceType

Der Diensttyp. Dieses Element kann einer der folgenden Werte sein:

Wert Bedeutung
SERVICE_FILE_SYSTEM_DRIVER
0x00000002
Dateisystemtreiberdienst.
SERVICE_KERNEL_DRIVER
0x00000001
Treiberdienst.
SERVICE_WIN32_OWN_PROCESS
0x00000010
Dienst, der in einem eigenen Prozess ausgeführt wird.
SERVICE_WIN32_SHARE_PROCESS
0x00000020
Dienst, der einen Prozess mit anderen Diensten teilt.
 

Wenn der Wert SERVICE_WIN32_OWN_PROCESS oder SERVICE_WIN32_SHARE_PROCESSist und der Dienst im Kontext des LocalSystem-Kontosausgeführt wird, kann auch der folgende Typ angegeben werden.

Wert Bedeutung
SERVICE_INTERACTIVE_PROCESS
0x00000100
Der Dienst kann mit dem Desktop interagieren.

Weitere Informationen finden Sie unter Interactive Services.

dwStartType

Wann der Dienst gestartet werden soll. Dieses Element kann einer der folgenden Werte sein:

Wert Bedeutung
SERVICE_AUTO_START
0x00000002
Ein Dienst, der während des Systemstarts automatisch vom Dienststeuerungs-Manager gestartet wurde.
SERVICE_BOOT_START
0x00000000
Ein Gerätetreiber, der vom Systemladeprogramm gestartet wurde. Dieser Wert ist nur für Treiberdienste gültig.
SERVICE_DEMAND_START
0x00000003
Ein Dienst, der vom Dienststeuerungs-Manager gestartet wurde, wenn ein Prozess die StartService--Funktion aufruft.
SERVICE_DISABLED
0x00000004
Ein Dienst, der nicht gestartet werden kann. Versucht, den Dienst zu starten, führt der Fehlercode ERROR_SERVICE_DISABLED.
SERVICE_SYSTEM_START
0x00000001
Ein Gerätetreiber, der von der IoInitSystem--Funktion gestartet wurde. Dieser Wert ist nur für Treiberdienste gültig.

dwErrorControl

Der Schweregrad des Fehlers und der ausgeführten Aktion, wenn dieser Dienst nicht gestartet werden kann. Dieses Element kann einer der folgenden Werte sein:

Wert Bedeutung
SERVICE_ERROR_CRITICAL
0x00000003
Das Startprogramm protokolliert den Fehler im Ereignisprotokoll, falls möglich. Wenn die zuletzt bekannte gute Konfiguration gestartet wird, schlägt der Startvorgang fehl. Andernfalls wird das System mit der zuletzt bekannten guten Konfiguration neu gestartet.
SERVICE_ERROR_IGNORE
0x00000000
Das Startprogramm ignoriert den Fehler und setzt den Startvorgang fort.
SERVICE_ERROR_NORMAL
0x00000001
Das Startprogramm protokolliert den Fehler im Ereignisprotokoll und setzt den Startvorgang fort.
SERVICE_ERROR_SEVERE
0x00000002
Das Startprogramm protokolliert den Fehler im Ereignisprotokoll. Wenn die zuletzt bekannte gute Konfiguration gestartet wird, wird der Startvorgang fortgesetzt. Andernfalls wird das System mit der zuletzt bekannten Gut-Konfiguration neu gestartet.

lpBinaryPathName

Der vollqualifizierte Pfad zur Dienst-Binärdatei.

Der Pfad kann auch Argumente für einen Automatischstartdienst enthalten. Diese Argumente werden an den Diensteinstiegspunkt übergeben (in der Regel die Hauptfunktion).

lpLoadOrderGroup

Der Name der Lade sortiergruppe, zu der dieser Dienst gehört. Wenn das Element NULL oder eine leere Zeichenfolge ist, gehört der Dienst nicht zu einer Ladereihenfolgegruppe.

Das Startprogramm verwendet Ladenreihenfolgegruppen, um Dienstgruppen in einer bestimmten Reihenfolge in Bezug auf die anderen Gruppen zu laden. Die Liste der Laden sortiergruppen ist im folgenden Registrierungswert enthalten:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

dwTagId

Ein eindeutiger Tagwert für diesen Dienst in der gruppe, die durch den parameter lpLoadOrderGroup angegeben wird. Ein Wert von Null gibt an, dass dem Dienst kein Tag zugewiesen wurde. Sie können ein Tag zum Bestellen des Dienststarts innerhalb einer Ladereihenfolgegruppe verwenden, indem Sie einen Tagreihenfolgevektor in der Registrierung angeben, die sich unter:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

Tags werden nur für SERVICE_KERNEL_DRIVER- und SERVICE_FILE_SYSTEM_DRIVER Typdienste mit SERVICE_BOOT_START oder SERVICE_SYSTEM_START Starttypen ausgewertet.

lpDependencies

Ein Zeiger auf ein Array mit nulltrennten Namen von Diensten oder Laden von Sortiergruppen, die vor diesem Dienst gestartet werden müssen. Das Array ist doubly null-terminated. Wenn der Zeiger NULL- ist oder auf eine leere Zeichenfolge zeigt, weist der Dienst keine Abhängigkeiten auf. Wenn ein Gruppenname angegeben ist, muss er dem SC_GROUP_IDENTIFIER (definiert in WinSvc.h) vorangestellt werden, um ihn von einem Dienstnamen zu unterscheiden, da Dienste und Dienstgruppen denselben Namensraum aufweisen. Abhängigkeit von einem Dienst bedeutet, dass dieser Dienst nur ausgeführt werden kann, wenn der dienst, von dem er abhängt, ausgeführt wird. Abhängigkeit von einer Gruppe bedeutet, dass dieser Dienst ausgeführt werden kann, wenn mindestens ein Mitglied der Gruppe ausgeführt wird, nachdem versucht wurde, alle Mitglieder der Gruppe zu starten.

lpServiceStartName

Wenn der Diensttyp SERVICE_WIN32_OWN_PROCESS oder SERVICE_WIN32_SHARE_PROCESSist, ist dieses Mitglied der Name des Kontos, bei dem der Dienstprozess bei der Ausführung angemeldet wird. Dieser Name kann das Formular Domain\UserNamesein. Wenn das Konto zur integrierten Domäne gehört, kann der Name des Formulars .\UserNamesein. Der Name kann auch "LocalSystem" lauten, wenn der Prozess unter dem LocalSystem-Konto ausgeführt wird.

Wenn der Diensttyp SERVICE_KERNEL_DRIVER oder SERVICE_FILE_SYSTEM_DRIVERist, ist dieses Element der Name des Treiberobjekts (d. h. \FileSystem\Rdr oder \Driver\Xns), das vom Eingabe- und Ausgabesystem (I/O) zum Laden des Gerätetreibers verwendet wird. Wenn dieses Element NULL ist, wird der Treiber basierend auf dem Dienstnamen mit einem standardobjektnamen ausgeführt, der vom E/A-System erstellt wurde.

lpDisplayName

Der Anzeigename, der von Dienststeuerungsprogrammen verwendet werden soll, um den Dienst zu identifizieren. Diese Zeichenfolge hat eine maximale Länge von 256 Zeichen. Der Name wird im Dienststeuerungs-Manager in der Groß-/Kleinschreibung beibehalten. Bei Anzeigenamenvergleichen wird immer die Groß-/Kleinschreibung beachtet.

Dieser Parameter kann eine lokalisierte Zeichenfolge mit dem folgenden Format angeben:

@[Path]DLLName,-StrID-

Die Zeichenfolge mit bezeichner StrID- wird aus DLLNamegeladen; der Path optional ist. Weitere Informationen finden Sie unter RegLoadMUIString.

Windows Server 2003 und Windows XP: Lokalisierte Zeichenfolgen werden erst unter Windows Vista unterstützt.

Bemerkungen

Die Konfigurationsinformationen für einen Dienst werden anfangs angegeben, wenn der Dienst durch einen Aufruf der CreateService--Funktion erstellt wird. Die Informationen können durch Aufrufen der ChangeServiceConfig-Funktion geändert werden.

Beispiele

Ein Beispiel finden Sie unter Abfragen der Konfigurations-eines Diensts.

Anmerkung

Der winsvc.h-Header definiert QUERY_SERVICE_CONFIG 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]
Header- winsvc.h (enthalten Windows.h)

Siehe auch

ChangeServiceConfig-

CreateService-

QueryServiceConfig-

StartService-