Programmi di servizio
Un programma di servizio contiene codice eseguibile per uno o più servizi. Un programma di servizio creato con il tipo SERVICE_WIN32_OWN_PROCESS contiene il codice per un solo servizio. Un programma di servizio creato con il tipo SERVICE_WIN32_SHARE_PROCESS contiene codice per più di un servizio, consentendo loro di condividere il codice. Un esempio di programma di servizio che esegue questa operazione è il processo host del servizio generico, Svchost.exe, che ospita i servizi Windows interni. Si noti che Svchost.exe è riservato per l'uso dal sistema operativo e non deve essere usato dai servizi non Windows. Gli sviluppatori devono invece implementare i propri programmi di hosting del servizio.
Un programma di servizio può essere configurato per l'esecuzione nel contesto di un account utente dal dominio predefinito (locale), primario o attendibile. Può anche essere configurato per l'esecuzione in un account utente del servizio speciale.
Gli argomenti seguenti descrivono i requisiti dell'interfaccia di Gestione controllo del servizio (SCM) che un programma di servizio deve includere:
Questi argomenti non si applicano ai servizi driver. Per i requisiti di interfaccia dei servizi driver, vedere Windows Driver Kit (WDK).
Un servizio viene eseguito come processo in background che può influire sulle prestazioni del sistema, sulla velocità di risposta, sull'efficienza energetica e sulla sicurezza. Per le linee guida per l'ottimizzazione dei servizi, vedere Sviluppo di processi in background efficienti per Windows. Gli argomenti seguenti descrivono considerazioni aggiuntive sulla programmazione:
- Transizioni dello stato del servizio
- Ricezione di eventi in un servizio
- Servizi multithreaded
- Servizi e Registro di sistema
- Servizi e unità reindirizzate
- Eventi del trigger di servizio
Si noti che se il programma di servizio funziona come server RPC, deve usare endpoint dinamici e autenticazione reciproca.