QUERY_SERVICE_CONFIGW struttura (winsvc.h)

Contiene informazioni di configurazione per un servizio installato. Viene usato dalla funzione QueryServiceConfig .

Sintassi

typedef struct _QUERY_SERVICE_CONFIGW {
  DWORD  dwServiceType;
  DWORD  dwStartType;
  DWORD  dwErrorControl;
  LPWSTR lpBinaryPathName;
  LPWSTR lpLoadOrderGroup;
  DWORD  dwTagId;
  LPWSTR lpDependencies;
  LPWSTR lpServiceStartName;
  LPWSTR lpDisplayName;
} QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;

Members

dwServiceType

Tipo di servizio. Questo membro può essere uno dei valori seguenti.

Valore Significato
SERVICE_FILE_SYSTEM_DRIVER
0x00000002
Servizio driver di file system.
SERVICE_KERNEL_DRIVER
0x00000001
Servizio driver.
SERVICE_WIN32_OWN_PROCESS
0x00000010
Servizio che viene eseguito nel proprio processo.
SERVICE_WIN32_SHARE_PROCESS
0x00000020
Servizio che condivide un processo con altri servizi.
 

Se il valore è SERVICE_WIN32_OWN_PROCESS o SERVICE_WIN32_SHARE_PROCESS e il servizio è in esecuzione nel contesto dell'account LocalSystem, è possibile specificare anche il tipo seguente.

Valore Significato
SERVICE_INTERACTIVE_PROCESS
0x00000100
Il servizio può interagire con il desktop.

Per altre informazioni, vedere Servizi interattivi.

dwStartType

Quando avviare il servizio. Questo membro può essere uno dei valori seguenti.

Valore Significato
SERVICE_AUTO_START
0x00000002
Un servizio avviato automaticamente dal gestore del controllo del servizio durante l'avvio del sistema.
SERVICE_BOOT_START
0x00000000
Un driver di dispositivo avviato dal caricatore di sistema. Questo valore è valido solo per i servizi del driver.
SERVICE_DEMAND_START
0x00000003
Un servizio avviato dal gestore di controllo del servizio quando un processo chiama la funzione StartService .
SERVICE_DISABLED
0x00000004
Servizio che non può essere avviato. Tenta di avviare il servizio nel codice di errore ERROR_SERVICE_DISABLED.
SERVICE_SYSTEM_START
0x00000001
Un driver di dispositivo avviato dalla funzione IoInitSystem . Questo valore è valido solo per i servizi del driver.

dwErrorControl

Gravità dell'errore e dell'azione eseguita, se il servizio non viene avviato. Questo membro può essere uno dei valori seguenti.

Valore Significato
SERVICE_ERROR_CRITICAL
0x00000003
Il programma di avvio registra l'errore nel registro eventi, se possibile. Se viene avviata l'ultima configurazione valida nota, l'operazione di avvio ha esito negativo. In caso contrario, il sistema viene riavviato con l'ultima configurazione valida nota.
SERVICE_ERROR_IGNORE
0x00000000
Il programma di avvio ignora l'errore e continua l'operazione di avvio.
SERVICE_ERROR_NORMAL
0x00000001
Il programma di avvio registra l'errore nel registro eventi e continua l'operazione di avvio.
SERVICE_ERROR_SEVERE
0x00000002
Il programma di avvio registra l'errore nel registro eventi. Se viene avviata l'ultima configurazione valida, l'operazione di avvio continua. In caso contrario, il sistema viene riavviato con l'ultima configurazione nota.

lpBinaryPathName

Percorso completo del file binario del servizio.

Il percorso può includere anche argomenti per un servizio di avvio automatico. Questi argomenti vengono passati al punto di ingresso del servizio (in genere la funzione principale ).

lpLoadOrderGroup

Nome del gruppo di ordinamento del carico a cui appartiene il servizio. Se il membro è NULL o una stringa vuota, il servizio non appartiene a un gruppo di ordinamento del carico.

Il programma di avvio usa i gruppi di ordinamento del carico per caricare i gruppi di servizi in un ordine specificato rispetto agli altri gruppi. L'elenco dei gruppi di ordinamento del carico è contenuto nel valore del Registro di sistema seguente:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

dwTagId

Valore di tag univoco per questo servizio nel gruppo specificato dal parametro lpLoadOrderGroup . Un valore pari a zero indica che il servizio non è stato assegnato un tag. È possibile usare un tag per l'avvio del servizio all'interno di un gruppo di ordini di carico specificando un vettore di ordine tag nel Registro di sistema che si trova in:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

I tag vengono valutati solo per SERVICE_KERNEL_DRIVERe SERVICE_FILE_SYSTEM_DRIVER tipi di servizi con SERVICE_BOOT_STARTo SERVICE_SYSTEM_START tipi di avvio.

lpDependencies

Puntatore a una matrice di nomi separati da null di servizi o gruppi di ordinamento di carico che devono iniziare prima di questo servizio. La matrice è terminata con valore null doubly. Se il puntatore è NULL o se punta a una stringa vuota, il servizio non ha dipendenze. Se viene specificato un nome di gruppo, deve essere preceduto dal carattere SC_GROUP_IDENTIFIER (definito in WinSvc.h) per differenziarlo da un nome del servizio, poiché i servizi e i gruppi di servizi condividono lo stesso spazio dei nomi. La dipendenza da un servizio significa che questo servizio può essere eseguito solo se il servizio dipende dall'esecuzione. La dipendenza da un gruppo significa che questo servizio può essere eseguito se almeno un membro del gruppo è in esecuzione dopo un tentativo di avviare tutti i membri del gruppo.

lpServiceStartName

Se il tipo di servizio è SERVICE_WIN32_OWN_PROCESS o SERVICE_WIN32_SHARE_PROCESS, questo membro è il nome dell'account in cui verrà eseguito il processo di servizio come quando viene eseguito. Questo nome può essere del nomeutentedi dominio\ modulo. Se l'account appartiene al dominio predefinito, il nome può essere del formato .\UserName. Il nome può essere anche "LocalSystem" se il processo è in esecuzione nell'account LocalSystem.

Se il tipo di servizio è SERVICE_KERNEL_DRIVER o SERVICE_FILE_SYSTEM_DRIVER, questo membro è il nome dell'oggetto driver, ovvero \FileSystem\Rdr o \Driver\Xns, che il sistema di input e output (I/O) usa per caricare il driver di dispositivo. Se questo membro è NULL, il driver deve essere eseguito con un nome di oggetto predefinito creato dal sistema di I/O, in base al nome del servizio.

lpDisplayName

Nome visualizzato da utilizzare dai programmi di controllo del servizio per identificare il servizio. La lunghezza massima della stringa è di 256 caratteri. Il nome viene mantenuto senza maiuscole/minuscole nella gestione controllo del servizio. I confronti dei nomi visualizzati sono sempre senza distinzione tra maiuscole e minuscole.

Questo parametro può specificare una stringa localizzata usando il formato seguente:

@[Path]DLLName,-StrID

La stringa con identificatore StrID viene caricata da DLLName; Il percorso è facoltativo. Per altre informazioni, vedere RegLoadMUIString.

Windows Server 2003 e Windows XP: Le stringhe localizzate non sono supportate fino a Windows Vista.

Commenti

Le informazioni di configurazione per un servizio vengono inizialmente specificate quando il servizio viene creato da una chiamata alla funzione CreateService . Le informazioni possono essere modificate chiamando la funzione ChangeServiceConfig .

Esempio

Per un esempio, vedere Esecuzione di query sulla configurazione di un servizio.

Nota

L'intestazione winsvc.h definisce QUERY_SERVICE_CONFIG come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione winsvc.h (include Windows.h)

Vedi anche

ChangeServiceConfig

CreateService

QueryServiceConfig

Startservice