Présentation des cibles d’E/S
Les rubriques de cette section décrivent comment un pilote WDF (Windows Driver Frameworks) peut transférer une demande d’E/S ou créer et envoyer une nouvelle demande à un autre pilote, appelé cible d’E/S.
Lorsqu’un pilote de fonction, un pilote de filtre ou un pilote miniport reçoit une demande d’E/S, le pilote peut être en mesure de traiter la demande par lui-même ou il peut avoir besoin de l’aide d’autres pilotes. Si le pilote a besoin d’aide, il peut transférer la demande à un autre pilote, ou il peut créer une ou plusieurs nouvelles demandes et les envoyer à un autre pilote.
Dans Kernel-Mode Driver Framework, une cible d’E/S représente un objet d’appareil qui est la cible d’une demande d’E/S. Un pilote de fonction, de filtre ou de miniport peut utiliser une cible d’E/S pour envoyer des demandes d’E/S à un autre pilote. Ces pilotes envoient souvent leurs demandes d’E/S au pilote inférieur suivant dans la pile de pilotes. Par conséquent, chaque pilote de fonction, de filtre et de miniport basé sur l’infrastructure a une cible d’E/S locale pour chaque appareil, qui est le pilote inférieur suivant de l’appareil.
Parfois, un pilote doit envoyer une demande d’E/S à une autre cible( le haut d’une autre pile de pilotes ou, rarement, un autre pilote au sein de la pile du pilote d’envoi. Par conséquent, l’infrastructure fournit également des cibles d’E/S distantes, qui se composent de toutes les cibles d’E/S à l’exception de la cible d’E/S locale.
Chaque cible d’E/S est représentée par un objet cible d’E/S. Chaque objet cible d’E/S est principalement une file d’attente qui contrôle quand une demande est remise à l’objet d’appareil cible. Lorsqu’un pilote envoie une demande à une cible d’E/S, le framework stocke la requête dans la file d’attente jusqu’à ce qu’il puisse remettre la demande à l’objet d’appareil cible.
Le framework prend en charge les cibles d’E/S générales et les cibles d’E/S spécialisées :
Les cibles d’E/S générales peuvent être utilisées par tous les pilotes de fonction, de filtre et de miniport, mais elles ne prennent pas en charge les formats de données spécifiques aux appareils.
Les cibles d’E/S spécialisées permettent aux pilotes de fonction, de filtre et de miniport d’envoyer facilement des demandes d’E/S qui nécessitent une mise en forme de données spécifique à la cible. Actuellement, le framework prend en charge les cibles d’E/S spécialisées suivantes :
Si l’infrastructure fournit des cibles d’E/S spécialisées qui prennent en charge le format de données de votre appareil, votre pilote doit utiliser les cibles d’E/S spécialisées. Sinon, le pilote doit utiliser des cibles d’E/S générales.