Funzione EnumServicesStatusA (winsvc.h)
Enumera i servizi nel database di Gestione controllo dei servizi specificato. Vengono forniti il nome e lo stato di ogni servizio.
Questa funzione è stata sostituita dalla funzione
Sintassi
BOOL EnumServicesStatusA(
[in] SC_HANDLE hSCManager,
[in] DWORD dwServiceType,
[in] DWORD dwServiceState,
[out, optional] LPENUM_SERVICE_STATUSA lpServices,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded,
[out] LPDWORD lpServicesReturned,
[in, out, optional] LPDWORD lpResumeHandle
);
Parametri
[in] hSCManager
Handle per il database di Gestione controllo dei servizi. Questo handle viene restituito dalla funzione OpenSCManager
[in] dwServiceType
Tipo di servizi da enumerare. Questo parametro può essere uno o più dei valori seguenti.
Valore | Significato |
---|---|
|
Servizi di tipo SERVICE_KERNEL_DRIVER e SERVICE_FILE_SYSTEM_DRIVER. |
|
Servizi driver del file system. |
|
Servizi driver. |
|
Servizi di tipo SERVICE_WIN32_OWN_PROCESS e SERVICE_WIN32_SHARE_PROCESS. |
|
Servizi eseguiti nei propri processi. |
|
Servizi che condividono un processo con uno o più servizi. Per altre informazioni, vedere Service Programs. |
[in] dwServiceState
Stato dei servizi da enumerare. Questo parametro può essere uno dei valori seguenti.
[out, optional] lpServices
Puntatore a un buffer che contiene una matrice di strutture ENUM_SERVICE_STATUS che ricevono le informazioni sullo stato del nome e del servizio per ogni servizio nel database. Il buffer deve essere sufficientemente grande da contenere le strutture, oltre alle stringhe a cui puntano i membri.
La dimensione massima di questa matrice è di 256.000 byte. Per determinare le dimensioni necessarie, specificare NULL per questo parametro e 0 per il parametro cbBufSize
Windows Server 2003 e Windows XP: La dimensione massima di questa matrice è di 64.000 byte. Questo limite è stato aumentato a partire da Windows Server 2003 con SP1 e Windows XP con SP2.
[in] cbBufSize
Dimensioni del buffer a cui punta il parametro lpServices
[out] pcbBytesNeeded
Puntatore a una variabile che riceve il numero di byte necessari per restituire le voci del servizio rimanenti, se il buffer è troppo piccolo.
[out] lpServicesReturned
Puntatore a una variabile che riceve il numero di voci del servizio restituite.
[in, out, optional] lpResumeHandle
Puntatore a una variabile che, in input, specifica il punto iniziale dell'enumerazione. È necessario impostare questo valore su zero alla prima chiamata di questa funzione. Nell'output questo valore è zero se la funzione ha esito positivo. Tuttavia, se la funzione restituisce zero e la funzione GetLastError restituisce ERROR_MORE_DATA, questo valore viene utilizzato per indicare la voce di servizio successiva da leggere quando viene chiamata la funzione per recuperare i dati aggiuntivi.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.
I codici di errore seguenti possono essere impostati dal gestore di controllo del servizio. Altri codici di errore possono essere impostati dalle funzioni del Registro di sistema chiamate dal gestore di controllo del servizio.
Codice restituito | Descrizione |
---|---|
|
L'handle non dispone del diritto di accesso SC_MANAGER_ENUMERATE_SERVICE. |
|
L'handle specificato non è valido. |
|
Parametro specificato non valido. |
|
Sono presenti più voci del servizio che si adattano al buffer |
Osservazioni
Nota
L'intestazione winsvc.h definisce EnumServicesStatus 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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [solo app desktop] |
server minimo supportato | Windows Server 2003 [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winsvc.h (include Windows.h) |
libreria |
Advapi32.lib |
dll | Advapi32.dll |