Partager via


Réception d’événements dans un service

Un service qui est une application console peut inscrire un gestionnaire de contrôle de console pour recevoir une notification lorsqu’un utilisateur se déconnecte. Toutefois, aucun événement de console n’est envoyé lorsqu’un utilisateur interactif se connecte. Pour plus d’informations sur la réception d’une notification lorsqu’un utilisateur se connecte, consultez Création d’un package de notification Winlogon.

Le système diffuse les événements de modification d’appareil vers tous les services. Ces événements peuvent être reçus par un service dans une procédure de fenêtre ou dans son gestionnaire de contrôle de service. Pour spécifier les événements que votre service doit recevoir, utilisez la fonction RegisterDeviceNotification .

Veillez à gérer Plug-and-Play événements d’appareil aussi rapidement que possible. Sinon, le système risque de ne plus répondre. Si votre gestionnaire d’événements doit effectuer une opération qui peut bloquer l’exécution (par exemple, les E/S), il est préférable de démarrer un autre thread pour effectuer l’opération de manière asynchrone.

Lorsqu’un service appelle RegisterDeviceNotification, le service spécifie également un handle de fenêtre ou un service status handle. Si un service spécifie un handle de fenêtre, la procédure de fenêtre reçoit les événements de notification. Si un service spécifie son status de gestion du service, son gestionnaire de contrôle de service reçoit les événements de notification. Pour plus d’informations, consultez HandlerEx.

Les handles de notification d’appareil retournés par RegisterDeviceNotification doivent être fermés en appelant la fonction UnregisterDeviceNotification lorsqu’ils ne sont plus nécessaires.