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;

Member

dwServiceType

Der Diensttyp. Dieser Member 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 gemeinsam mit anderen Diensten verwendet.
 

Wenn der Wert SERVICE_WIN32_OWN_PROCESS oder SERVICE_WIN32_SHARE_PROCESS ist und der Dienst im Kontext des LocalSystem-Kontos ausgefü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 Interaktive Dienste.

dwStartType

Wann der Dienst gestartet werden soll. Dieser Member kann einer der folgenden Werte sein.

Wert Bedeutung
SERVICE_AUTO_START
0x00000002
Ein Dienst, der während des Systemstarts automatisch vom Dienststeuerungs-Manager gestartet wird.
SERVICE_BOOT_START
0x00000000
Ein Gerätetreiber, der vom Systemladeprogramm gestartet wurde. Dieses Wert ist nur für Treiberdienste gültig.
SERVICE_DEMAND_START
0x00000003
Ein Dienst, der vom Dienststeuerungs-Manager gestartet wird, wenn ein Prozess die StartService-Funktion aufruft.
SERVICE_DISABLED
0x00000004
Ein Dienst, der nicht gestartet werden kann. Versuche, den Dienst zu starten, führen dazu, dass der Fehlercode ERROR_SERVICE_DISABLED.
SERVICE_SYSTEM_START
0x00000001
Ein Gerätetreiber, der von der IoInitSystem-Funktion gestartet wurde. Dieses 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. Dieser Member kann einer der folgenden Werte sein.

Wert Bedeutung
SERVICE_ERROR_CRITICAL
0x00000003
Das Startprogramm protokolliert den Fehler nach Möglichkeit im Ereignisprotokoll. 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 letzten zweifelsfrei funktionierenden Konfiguration neu gestartet.

lpBinaryPathName

Der vollqualifizierte Pfad zur Binärdatei des Diensts.

Der Pfad kann auch Argumente für einen Dienst mit automatischem Start enthalten. Diese Argumente werden an den Diensteinstiegspunkt (in der Regel die Standard-Funktion) übergeben.

lpLoadOrderGroup

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

Das Startprogramm verwendet Ladereihenfolgegruppen, um Gruppen von Diensten in einer angegebenen Reihenfolge in Bezug auf die anderen Gruppen zu laden. Die Liste der Lastreihenfolgegruppen 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 lpLoadOrderGroup-Parameter angegeben wird. Der Wert 0 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 befindet:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

Tags werden nur für SERVICE_KERNEL_DRIVER - und SERVICE_FILE_SYSTEM_DRIVER-Typdienste ausgewertet, die über SERVICE_BOOT_START - oder SERVICE_SYSTEM_START Starttypen verfügen.

lpDependencies

Ein Zeiger auf ein Array mit null getrennten Namen von Diensten oder Lastenreihenfolgegruppen, die vor diesem Dienst gestartet werden müssen. Das Array ist doppelt NULL-beendet. Wenn der Zeiger NULL ist oder auf eine leere Zeichenfolge verweist, weist der Dienst keine Abhängigkeiten auf. Wenn ein Gruppenname angegeben ist, muss der SC_GROUP_IDENTIFIER (definiert in WinSvc.h) vorangestellt werden, um ihn von einem Dienstnamen zu unterscheiden, da Dienste und Dienstgruppen denselben Namensraum verwenden. Abhängigkeit von einem Dienst bedeutet, dass dieser Dienst nur ausgeführt werden kann, wenn der Dienst, von dem er abhängig ist, ausgeführt wird. „Abhängigkeit von einer Gruppe“ bedeutet, dass dieser Dienst ausgeführt werden kann, wenn nach einem Versuch, alle Mitglieder der Gruppe zu starten, mindestens ein Mitglied der Gruppe ausgeführt wird.

lpServiceStartName

Wenn der Diensttyp SERVICE_WIN32_OWN_PROCESS oder SERVICE_WIN32_SHARE_PROCESS ist, ist dieser Member der Name des Kontos, bei dem der Dienstprozess wie bei der Ausführung angemeldet wird. Dieser Name kann das FormatDomänenbenutzername\ haben. Wenn das Konto zur integrierten Domäne gehört, kann der Name das Format .\UserName haben. 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_DRIVER ist, ist dieser Member der Treiberobjektname (d. h. \FileSystem\Rdr oder \Driver\Xns), den das Eingabe- und Ausgabesystem (E/A) zum Laden des Gerätetreibers verwendet. Wenn dieser Member NULL ist, muss der Treiber mit einem Standardobjektnamen ausgeführt werden, der vom E/A-System basierend auf dem Dienstnamen erstellt wird.

lpDisplayName

Der Anzeigename, der von Dienststeuerungsprogrammen zur Identifizierung des Diensts verwendet werden soll. Die maximale Länge der Zeichenfolge beträgt 256 Zeichen. Der Name wird im Dienststeuerungs-Manager beibehalten. Bei Anzeigenamenvergleichen wird immer die Groß-/Kleinschreibung nicht beachtet.

Dieser Parameter kann eine lokalisierte Zeichenfolge im folgenden Format angeben:

@[Pfad]DLLName,-StrID

Die Zeichenfolge mit dem Bezeichner StrID wird aus DLLName geladen. Der Pfad ist optional. Weitere Informationen finden Sie unter RegLoadMUIString.

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

Hinweise

Die Konfigurationsinformationen für einen Dienst werden zunächst 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 Konfiguration eines Diensts.

Hinweis

Der winsvc.h-Header definiert QUERY_SERVICE_CONFIG als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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]
Kopfzeile winsvc.h (einschließen von Windows.h)

Weitere Informationen

ChangeServiceConfig

CreateService

QueryServiceConfig

Startservice