Partager via


Gestion des IRP WDM en dehors de l’infrastructure

[S’applique à KMDF uniquement]

Lorsque le gestionnaire d’E/S remet un paquet de demande d’E/S (IRP) à un pilote basé sur l’infrastructure, l’infrastructure intercepte l’IRP, puis effectue l’une des opérations suivantes :

  • Traite l’IRP. Par exemple, l’infrastructure traite les IRP qui contiennent des IRP_MJ_PNP et IRP_MJ_POWER principaux codes de fonction d’E/S. Lors du traitement de ces irps, l’infrastructure peut communiquer avec le pilote en appelant les fonctions de rappel d’événement du pilote.

  • Crée un objet de demande d’infrastructure pour l’IRP et remet l’objet de requête à l’une des files d’attente d’E/S du pilote afin que le pilote puisse le recevoir, généralement dans un gestionnaire de requêtes, et le traiter. L’infrastructure gère ainsi les demandes de contrôle d’E/S de lecture, d’écriture et d’appareil.

  • Transmet l’IRP au pilote inférieur suivant (si votre pilote est un pilote de filtre) ou termine l’IRP avec une valeur status de STATUS_INVALID_DEVICE_REQUEST (si votre pilote n’est pas un pilote de filtre), car l’IRP contient un code de fonction d’E/S que le framework ne prend pas en charge.

Parfois, un pilote doit gérer un code de fonction d’E/S que le framework ne prend pas en charge.

Rarement, un pilote peut avoir besoin de prétraiter un IRP avant que l’infrastructure le gère, ou le pilote peut avoir besoin de posttraiter un IRP une fois que le framework et les pilotes de niveau inférieur ont terminé de le traiter.

Dans le cadre du prétraitement, un pilote peut avoir besoin de transférer un IRP vers une file d’attente d’E/S spécifique.

Les rubriques suivantes décrivent ces situations :