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
[in] lpServiceName
Nome del servizio da aprire. Questo è il nome specificato dal parametro
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 Service Security and Access Rights.
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 ottenere informazioni estese 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 del 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. |
Osservazioni
L'handle restituito è valido solo per il processo denominato OpenService. Può essere chiuso chiamando la funzione CloseServiceHandle
Per usare OpenService, non sono necessari privilegi a parte SC_MANAGER_CONNECT.
Esempi
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 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 |