Partager via


Transitions d’état pour les appareils PnP

Sur un système PnP, un appareil passe par différents états PnP à mesure qu’il est configuré, démarré, éventuellement arrêté pour rééquilibrer les ressources, et éventuellement supprimé. Cette section fournit une vue d’ensemble des états des appareils PnP. La vue d’ensemble est une feuille de route pour une grande partie de la prise en charge pnP requise dans un pilote. D’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 de l’appareil du point de vue plug-and-play.

En commençant en 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 moment du démarrage. L’appareil n’est pas encore connu du logiciel 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 à l’aide de 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, celui-ci 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 demande de 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 requêtes aux pilotes de l’appareil. Après avoir reconfiguré les ressources matérielles, le gestionnaire PnP demande aux pilotes de 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 des demandes IRP_MN_QUERY_STOP_DEVICE et IRP_MN_STOP_DEVICE avant le démarrage de l’appareil, bien que cette étape ne soit pas illustré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 requêtes lorsqu’un appareil est désactivé. Les pilotes sur ces systèmes reçoivent également une demande de IRP_MN_STOP_DEVICE après un démarrage ayant échoué.

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

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