Partager via


Vue d’ensemble de la notification PnP

Le gestionnaire PnP fournit un mécanisme permettant aux pilotes et aux applications d’être avertis lorsque certains événements se produisent sur un appareil spécifique ou sur le système en général. Un pilote peut s’inscrire pour la notification des catégories d’événements suivantes :

  • EventCategoryDeviceInterfaceChange

    Lorsqu’un pilote s’inscrit pour cette catégorie d’événements sur une interface d’appareil, le gestionnaire PnP avertit le pilote des événements suivants :

    GUID_DEVICE_INTERFACE_ARRIVAL
    Indique qu’une interface d’appareil de la classe spécifiée a été activée. Par exemple, un utilisateur a ajouté un nouveau disque à l’ordinateur et le gestionnaire de volumes a activé un nouveau volume (une interface d’appareil de la classe « volume »).

    GUID_DEVICE_INTERFACE_REMOVAL
    Indique qu’une interface d’appareil de la classe spécifiée a été désactivée.

    Pour plus d’informations sur les interfaces d’appareil, consultez IoRegisterDeviceInterface et les routines associées.

  • EventCategoryTargetDeviceChange

    Lorsqu’un pilote s’inscrit pour cette catégorie d’événements sur un appareil, le gestionnaire PnP avertit le pilote lorsque les événements suivants se produisent sur l’appareil :

    GUID_TARGET_DEVICE_QUERY_REMOVE
    Indique que le gestionnaire PnP est sur le point de supprimer les pilotes de l’appareil. Plusieurs actions peuvent provoquer cet événement, notamment : un utilisateur a demandé à supprimer l’appareil spécifié de l’ordinateur ou un utilisateur a émis une demande de pilote de mise à jour pour l’appareil. Cette notification demande aux pilotes de l’appareil d’approuver ou de mettre un veto à l’opération de suppression imminente.

    GUID_TARGET_DEVICE_REMOVE_COMPLETE
    Indique que l’appareil spécifié a été supprimé de l’ordinateur ou qu’un utilisateur modifie le ou les pilotes de l’appareil.

    GUID_TARGET_DEVICE_REMOVE_CANCELLED
    Indique qu’une opération de suppression imminente sur l’appareil spécifié a été annulée.

    GUID_XXX (événements personnalisés)
    Indique qu’un événement personnalisé s’est produit sur l’appareil spécifié.

    Un enregistreur de pilotes peut définir un événement personnalisé pour un appareil. Lorsque le pilote (ou un autre composant associé) avertit le gestionnaire PnP que l’événement personnalisé s’est produit, le gestionnaire PnP avertit tous les composants inscrits pour les notifications de changement d’appareil cible sur l’appareil.

    Contrairement à l’inscription pour les modifications de l’interface de l’appareil, qui peut être considérée comme un intérêt « passif » dans l’interface, l’inscription aux modifications de l’appareil cible indique un intérêt « actif » pour un appareil.

  • EventCategoryHardwareProfileChange

    Cette catégorie comprend les événements suivants :

    GUID_HWPROFILE_QUERY_CHANGE
    Indique qu’un utilisateur a demandé à modifier le profil matériel de l’ordinateur. Le gestionnaire PnP utilise cette notification pour demander aux composants inscrits s’il peut modifier le profil matériel sans perturber le fonctionnement du système. Les composants inscrits réussissent généralement ces requêtes.

    GUID_HWPROFILE_CHANGE_COMPLETE
    Indique que le profil matériel de l’ordinateur a changé. Si un pilote conserve des paramètres spécifiques au profil, ce pilote doit actualiser ces paramètres après un changement de profil matériel.

    GUID_HWPROFILE_CHANGE_CANCELLED
    Indique qu’une modification imminente du profil matériel a été annulée.

La notification PnP fonctionne comme suit pour les composants en mode noyau :

  1. Un pilote s’inscrit pour la notification sur une catégorie d’événements en appelant IoRegisterPlugPlayNotification.

    Une routine de rappel de notification PnP reste inscrite jusqu’à ce que le pilote supprime explicitement l’inscription.

  2. Le gestionnaire PnP appelle la routine de rappel du pilote lorsqu’un événement dans la catégorie inscrite se produit.

  3. Le pilote supprime l’inscription de rappel en appelant IoUnregisterPlugPlayNotification.

Les pilotes ne doivent pas générer d’événement synchrone ou attendre qu’un événement asynchrone se produise pendant le traitement d’une fermeture.

Pour plus d’informations sur la notification PnP, consultez les sections suivantes :

Instructions pour l’écriture de routines de rappel de notification PnP

Utilisation de la notification de modification de l’interface d’appareil PnP

Utilisation de la notification de modification d’appareil cible PnP

Utilisation de la notification de modification de profil matériel PnP

Utilisation de la notification personnalisée PnP