Condividi tramite


Modifiche al servizio per Windows Vista

Sono state apportate modifiche significative al modello di servizi per migliorare le prestazioni, l'affidabilità, la sicurezza, la gestione e l'amministrazione dei servizi.

La tabella seguente riepiloga i miglioramenti ai servizi per Windows Vista.

Funzionalità avanzata Descrizione
Avvio automatico ritardato
I servizi di avvio automatico ritardato vengono avviati poco dopo l'avvio del sistema. Ciò migliora le prestazioni di avvio del sistema, fornendo comunque l'avvio automatico per questi servizi. Per impostare il flag di avvio automatico ritardato, chiamare la funzione ChangeServiceConfig2 con SERVICE_CONFIG_DELAYED_AUTO_START_INFO.
Rilevamento errori e ripristino
Se un servizio ha esito negativo, gestione controllo del servizio può eseguire un'azione di errore, ad esempio riavviare il servizio in un tentativo di ripristino da tale errore. Per configurare un'azione di errore, chiamare ChangeServiceConfig2 con SERVICE_CONFIG_FAILURE_ACTIONS.
Notifiche preshutdown
Un servizio può registrarsi per ricevere una notifica di SERVICE_CONTROL_PRESHUTDOWN nella funzione HandlerEx prima di ricevere la notifica di arresto effettiva. In questo modo, i servizi offrono una procedura di arresto lunga più tempo per arrestare in modo normale. Per impostare il valore di timeout, chiamare ChangeServiceConfig2 con SERVICE_CONFIG_PRESHUTDOWN_INFO.
Accesso alla rete con restrizioni
È possibile usare i SID del servizio per limitare l'accesso alle porte, ai protocolli o alla direzione del traffico di rete. Per limitare l'accesso di un servizio alla rete, usare l'interfaccia INetFwServiceRestriction .
Esecuzione con privilegi minimi
I servizi possono essere eseguiti in qualsiasi account contenente i privilegi necessari (LocalService, NetworkService, LocalSystem, un account di dominio o un account locale) e indicare i privilegi necessari chiamando ChangeServiceConfig2 con SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO. SCM rimuove tutti i privilegi non necessari.
Isolamento del servizio
Un servizio può isolare oggetti, ad esempio file o chiavi del Registro di sistema, per l'uso esclusivo con una voce di controllo di accesso che contiene un SID del servizio. Dopo aver assegnato questo SID a un servizio, il proprietario del servizio può modificare gli elenchi di controllo di accesso degli oggetti per concedere l'accesso al SID. Ciò consente a un servizio di accedere a oggetti specifici senza eseguire con un account con privilegi elevati o ridurre la sicurezza sugli oggetti. Per impostare il SID del servizio, chiamare ChangeServiceConfig2 con SERVICE_CONFIG_SERVICE_SID_INFO.
Notifiche di modifica dello stato del servizio
I servizi possono essere registrati per ricevere una notifica quando un servizio viene creato, eliminato o ha una modifica dello stato usando la funzione NotifyServiceStatusChange . Questa operazione è più efficiente rispetto alla chiamata della funzione QueryServiceStatusEx in un ciclo per eseguire il polling dello stato.
Isolamento sessione 0
I servizi sono sempre eseguiti nella sessione 0. Prima di Windows Vista, il primo utente a accedere è stato assegnato anche alla sessione 0. A questo punto, la sessione 0 è riservata esclusivamente ai servizi e ad altre applicazioni non associate a una sessione utente interattiva. Il primo utente a cui accedere è connesso alla sessione 1, il secondo utente per l'accesso è connesso alla sessione 2 e così via. La sessione 0 non supporta i processi che interagiscono con l'utente.
Questa modifica significa che un servizio non può inviare o inviare un messaggio a un'applicazione e un'applicazione non può inviare o inviare un messaggio a un servizio. Inoltre, i servizi non possono visualizzare direttamente un elemento dell'interfaccia utente, ad esempio una finestra di dialogo. Un servizio può usare la funzione WTSSendMessage per visualizzare una finestra di dialogo in un'altra sessione.

Services