Présentation des objets adaptateurs

Tout pilote qui utilise des E/S directes et DMA doit créer un objet adaptateur. L’objet adaptateur représente un canal ou un port de contrôleur DMA, ou un appareil master bus.

Deux types de pilotes de niveau inférieur doivent utiliser des objets adaptateurs :

  • Pilotes pour les appareils qui utilisent le contrôleur DMA système. Ces appareils sont appelés appareils subordonnés et sont dits « utiliser le système (ou subordonné) DMA ».

  • Pilotes pour les appareils qui sont des adaptateurs master bus. Ces appareils arbitrent avec le système pour l’utilisation du bus d’E/S, et utilisent donc le bus-master DMA.

Les pilotes fournissent un stockage, généralement dans une extension de périphérique, pour un pointeur vers l’objet adaptateur.

Pour effectuer des transferts DMA, les pilotes d’appareils qui utilisent l’une de ces méthodes DMA ont généralement une routine AdapterControl et appellent des routines de support fournies par le système qui manipulent des objets adaptateurs. (Les pilotes qui ne nécessitent pas de routines AdapterControl incluent ceux qui utilisent la fonction DMA de nuage de points/collectes et ceux qui utilisent common-buffer, bus-master DMA.)

Dans le cadre des opérations de démarrage de l’appareil, les pilotes qui gèrent les opérations DMA appellent le gestionnaire d’E/S, qui à son tour appelle le HAL spécifique à la plateforme pour créer un ensemble d’objets adaptateurs. Sur n’importe quelle plateforme Windows, l’ensemble d’objets adaptateurs inclut généralement un objet adaptateur pour :

  • Chaque canal ou port du contrôleur DMA système auquel un appareil subordonné est attaché.

  • Chaque bus-master appareil DMA dans la machine.

(Pour les appareils SCSI capables d’master DMA de bus, le pilote de port SCSI configure des objets adaptateurs pour les pilotes miniport SCSI spécifiques à HBA. La routine HwScsiFindAdapter du pilote miniport fournit au pilote de port des données spécifiques à l’adaptateur.)

Pour plus d’informations sur le moment et la façon dont les pilotes utilisent les objets adaptateurs et les routines AdapterControl, consultez cette section ainsi que Utilisation de Bus-Master DMA.

Activation du remapping DMA pour les pilotes de périphérique