Ricezione di eventi in un servizio

Un servizio che è un'applicazione console può registrare un gestore di controllo della console per ricevere una notifica quando un utente si disconnette. Tuttavia, non esiste alcun evento console inviato quando un utente interattivo accede. Per informazioni sulla ricezione della notifica quando un utente accede, vedere Creazione di un pacchetto di notifica Winlogon.

Il sistema trasmette gli eventi di modifica del dispositivo a tutti i servizi. Questi eventi possono essere ricevuti da un servizio in una routine di finestra o nel gestore del controllo del servizio. Per specificare gli eventi che il servizio deve ricevere, usare la funzione RegisterDeviceNotification .

Assicurarsi di gestire Plug and Play eventi del dispositivo il più rapidamente possibile. In caso contrario, il sistema potrebbe non rispondere. Se il gestore eventi consiste nell'eseguire un'operazione che può bloccare l'esecuzione (ad esempio I/O), è consigliabile avviare un altro thread per eseguire l'operazione in modo asincrono.

Quando un servizio chiama RegisterDeviceNotification, il servizio specifica anche un handle di finestra o un handle di stato del servizio. Se un servizio specifica un handle di finestra, la procedura della finestra riceve gli eventi di notifica. Se un servizio specifica il relativo handle di stato del servizio, il gestore del controllo del servizio riceve gli eventi di notifica. Per altre informazioni, vedere HandlerEx.

Gli handle di notifica del dispositivo restituiti da RegisterDeviceNotification devono essere chiusi chiamando la funzione UnregisterDeviceNotification quando non sono più necessari.