Funzione OpenServiceA (winsvc.h)
Apre un servizio esistente.
Sintassi
SC_HANDLE OpenServiceA(
[in] SC_HANDLE hSCManager,
[in] LPCSTR lpServiceName,
[in] DWORD dwDesiredAccess
);
Parametri
[in] hSCManager
Handle per il database di Gestione controllo dei servizi. La funzione OpenSCManager restituisce questo handle. Per altre informazioni, vedere Sicurezza del servizio e diritti di accesso.
[in] lpServiceName
Nome del servizio da aprire. Questo è il nome specificato dal parametro lpServiceName della funzione CreateService quando è stato creato l'oggetto servizio, non il nome visualizzato del servizio visualizzato dalle applicazioni dell'interfaccia utente per identificare il servizio.
La lunghezza massima della stringa è di 256 caratteri. Il database di Gestione controllo dei servizi mantiene la distinzione tra maiuscole e minuscole, ma i confronti dei nomi del servizio non fanno sempre distinzione tra maiuscole e minuscole. La barra (/) e la barra rovesciata (\) non sono caratteri di nome del servizio non validi.
[in] dwDesiredAccess
Accesso al servizio. Per un elenco dei diritti di accesso, vedere Sicurezza dei servizi e diritti di accesso.
Prima di concedere l'accesso richiesto, il sistema controlla il token di accesso del processo chiamante rispetto all'elenco di controllo di accesso discrezionale del descrittore di sicurezza associato all'oggetto servizio.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un handle per il servizio.
Se la funzione ha esito negativo, il valore restituito è NULL. Per informazioni dettagliate sull'errore, chiamare GetLastError.
I codici di errore seguenti possono essere impostati dal gestore di controllo del servizio. Altri possono essere impostati dalle funzioni del Registro di sistema chiamate dal gestore di controllo del servizio.
Codice restituito | Descrizione |
---|---|
|
L'handle non ha accesso al servizio. |
|
L'handle specificato non è valido. |
|
Il nome del servizio specificato non è valido. |
|
Il servizio specificato non esiste. |
Commenti
L'handle restituito è valido solo per il processo denominato OpenService. Può essere chiuso chiamando la funzione CloseServiceHandle .
Per usare OpenService, non sono necessari privilegi diversi da SC_MANAGER_CONNECT.
Esempio
Per un esempio, vedere Avvio di un servizio.
Nota
L'intestazione winsvc.h definisce OpenService 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] |
Piattaforma di destinazione | Windows |
Intestazione | winsvc.h (include Windows.h) |
Libreria | Advapi32.lib |
DLL | Advapi32.dll |