Partager via


Arrêt d’un appareil pour le désactiver (Windows 98/Me)

Sur Windows 98/Me, les problèmes du gestionnaire PnP arrêtent les IRPs quand Gestionnaire de périphériques désactive l’appareil. (Windows 2000 et les versions ultérieures de Windows 2000 problème suppriment les IRPs dans ce cas).

Le gestionnaire PnP envoie les IRP d’arrêt dans l’ordre suivant :

  1. Le gestionnaire PnP émet une IRP_MN_QUERY_STOP_DEVICE pour demander si les pilotes d’un appareil peuvent arrêter l’appareil.

    Si tous les pilotes de la pile d’appareils retournent STATUS_SUCCESS, les pilotes ont placé l’appareil dans un état (en attente d’arrêt) à partir duquel l’appareil peut être rapidement arrêté.

    Le gestionnaire PnP interroge autant de piles d’appareils que nécessaire pour désactiver l’appareil.

  2. Si le IRP_MN_QUERY_STOP_DEVICE réussit, le gestionnaire PnP émet une IRP_MN_STOP_DEVICE pour arrêter l’appareil.

    Le gestionnaire PnP envoie l’IRP d’arrêt uniquement si l’IRP d’arrêt de requête précédent pour l’appareil s’est terminé avec succès. En réponse à l’IRP d’arrêt, les pilotes libèrent les ressources matérielles de l’appareil (tels que ses ports d’E/S) et échouent à tous les IRP qui nécessitent l’accès à l’appareil.

  3. Si le IRP_MN_QUERY_STOP_DEVICE échoue, le gestionnaire PnP envoie un IRP_MN_CANCEL_STOP_DEVICE pour annuler la requête.

    En réponse à une IRP_MN_CANCEL_STOP_DEVICE, les pilotes d’un appareil retournent l’appareil à l’état démarré et reprennent le traitement des demandes d’E/S pour l’appareil.

    Le gestionnaire PnP annule l’arrêt de la requête pour une pile d’appareils si un pilote de la pile a échoué à la demande. Lorsque le gestionnaire PnP annule l’arrêt de la requête sur une seule pile d’appareils, il envoie la requête IRP_MN_CANCEL_STOP_DEVICE , car tous les pilotes attachés au-dessus du pilote qui ont échoué la requête ont l’appareil dans l’état d’arrêt en attente. Lorsque le IRP_MN_CANCEL_STOP_DEVICE réussit, les pilotes ont retourné l’appareil à l’état démarré.

Lorsqu’un appareil est désactivé, ses pilotes ne peuvent pas mettre en file d’attente les IRP entrants, car il n’y a aucune garantie quand l’appareil peut être réactivé. Par conséquent, les données peuvent être perdues.