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 apportati ai servizi per Windows Vista.
Miglioramento | 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 pur fornendo 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 e ripristino degli errori |
Se un servizio non riesce, gestione controllo del servizio può eseguire un'azione di errore, ad esempio il riavvio del servizio in un tentativo di ripristino da tale errore. Per configurare un'azione di errore, chiamare ChangeServiceConfig2 con SERVICE_CONFIG_FAILURE_ACTIONS. |
notifiche di presshutdown |
Un servizio può registrarsi per ricevere una notifica di SERVICE_CONTROL_PRESHUTDOWN nella relativa funzione HandlerEx prima di ricevere la notifica di arresto effettiva. Ciò offre ai servizi una procedura di arresto lunga più tempo per l'arresto 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 a porte, protocolli o direzione del traffico di rete. Per limitare l'accesso di un servizio alla rete, usare l'interfaccia INetFwServiceRestriction. |
in esecuzione con privilegi minimi |
I servizi possono essere eseguiti con 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 proteggendoli con una voce di controllo di accesso che contiene un SID del servizio. Dopo l'assegnazione di 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. In questo modo un servizio può 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 registrarsi per ricevere una notifica quando un servizio viene creato, eliminato o ha una modifica dello stato usando la funzioneNotifyServiceStatusChange. Questa operazione è più efficiente rispetto alla chiamata della funzioneQueryServiceStatusExin un ciclo per eseguire il polling dello stato. |
Isolamento sessione 0 |
I servizi vengono sempre eseguiti nella sessione 0. Prima di Windows Vista, il primo utente a eseguire l'accesso è 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ò pubblicare o inviare un messaggio a un'applicazione e un'applicazione non può inviare o pubblicare 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 funzioneWTSSendMessageper visualizzare una finestra di dialogo in un'altra sessione. |