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.
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 |
---|---|
|
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 |
---|---|
|
Ein Dienst, der während des Systemstarts automatisch vom Dienststeuerungs-Manager gestartet wird. |
|
Ein Gerätetreiber, der vom Systemladeprogramm gestartet wurde. Dieses Wert ist nur für Treiberdienste gültig. |
|
Ein Dienst, der vom Dienststeuerungs-Manager gestartet wird, wenn ein Prozess die StartService-Funktion aufruft. |
|
Ein Dienst, der nicht gestartet werden kann. Versuche, den Dienst zu starten, führen dazu, dass der Fehlercode ERROR_SERVICE_DISABLED. |
|
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.
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) |