Partager via


Transitions d’état pour les appareils PnP

Sur un système PnP, un appareil passe par différents états PnP, car il est configuré, démarré, peut-être arrêté pour rééquilibrer les ressources et éventuellement supprimé. Cette section fournit une vue d’ensemble des états de l’appareil PnP. La vue d'ensemble est une feuille de route pour une grande partie du support PnP requis du pilote. Les autres parties de cette documentation décrivent chaque transition d’état en détail.

La figure suivante montre les états PnP d’un appareil et la façon dont un appareil passe d’un état à un autre.

diagramme illustrant les états des appareils du point de vue plug-and-play.

À partir du haut à gauche de la figure précédente, un appareil PnP est physiquement présent dans le système, car l’utilisateur vient d’insérer l’appareil ou l’appareil était présent au démarrage. Le dispositif n'est pas encore reconnu par le logiciel du système.

Pour commencer la configuration logicielle de l’appareil, le gestionnaire PnP et le pilote de bus parent énumèrent l’appareil. Le gestionnaire PnP, éventuellement avec l’aide des composants en mode utilisateur, identifie les pilotes de l’appareil, y compris le pilote de fonction et tous les pilotes de filtre facultatifs. Le gestionnaire PnP appelle la routine DriverEntry de chaque pilote si le pilote n’est pas encore chargé. Pour plus d’informations sur la création de rapports et l’énumération d’un appareil PnP, consultez Ajout d’un appareil PnP à un système en cours d’exécution.

Une fois qu’un pilote est initialisé, il doit être prêt à initialiser ses appareils. Le gestionnaire PnP appelle la routine AddDevice d’un pilote pour chaque appareil que le pilote contrôle.

Lorsqu’un pilote reçoit une demande de IRP_MN_START_DEVICE du gestionnaire PnP, le pilote démarre l’appareil et est prêt à traiter les demandes d’E/S pour l’appareil. Pour plus d’informations sur la gestion d’une requête IRP_MN_START_DEVICE , consultez Démarrage d’un appareil.

Si le gestionnaire PnP doit reconfigurer les ressources matérielles d’un appareil actif, il envoie IRP_MN_QUERY_STOP_DEVICE et IRP_MN_STOP_DEVICE demandes aux pilotes de l’appareil. Après avoir reconfiguré les ressources matérielles, le gestionnaire PnP dirige les pilotes pour redémarrer l’appareil en envoyant une demande de IRP_MN_START_DEVICE . Pour plus d’informations sur la gestion des IRPs d’arrêt, consultez Arrêt d’un appareil. (Les pilotes d’un appareil configuré au démarrage peuvent recevoir IRP_MN_QUERY_STOP_DEVICE et IRP_MN_STOP_DEVICE demandes avant le démarrage de l’appareil, bien que cette étape ne soit pas affichée dans la figure précédente.)

Sur Windows 98/Me, le gestionnaire PnP envoie également IRP_MN_QUERY_STOP_DEVICE et IRP_MN_STOP_DEVICE demandes lorsqu’un appareil est désactivé. Les pilotes sur ces systèmes reçoivent également une demande d'IRP_MN_STOP_DEVICE après un échec de démarrage.

Lorsqu’un appareil PnP est physiquement supprimé du système ou qu’il a déjà été supprimé, le gestionnaire PnP envoie différents irps de suppression aux pilotes de l’appareil, les dirigeant pour supprimer la représentation logicielle de l’appareil (objets d’appareil, etc.). Pour plus d’informations sur la gestion des IRPs de suppression, consultez Suppression d’un appareil.

À un moment donné, après la suppression de tous les appareils d’un pilote, le gestionnaire PnP appelle la routine de déchargement du pilote et décharge le pilote.