Utilisation d’E/S directes

Les pilotes pour les appareils qui peuvent transférer de grandes quantités de données à la fois doivent utiliser les E/S directes pour ces transferts. L’utilisation d’E/S directes pour les transferts volumineux améliore les performances d’un pilote, à la fois en réduisant sa surcharge d’interruption et en éliminant l’allocation de mémoire et les opérations de copie inhérentes aux E/S mises en mémoire tampon.

En règle générale, les pilotes de périphériques de stockage de masse demandent des E/S directes pour les demandes de transfert, y compris les pilotes de niveau le plus bas qui utilisent l’accès direct à la mémoire (DMA) ou les E/S programmées (PIO), ainsi que tous les pilotes intermédiaires chaînés au-dessus d’eux.

Le gestionnaire d’E/S détermine qu’une opération d’E/S utilise les E/S directes comme suit :

Les pilotes qui utilisent des E/S directes utilisent parfois également des E/S mises en mémoire tampon pour gérer certains IRPs. En particulier, les pilotes utilisent généralement des E/S mises en mémoire tampon pour certains codes de contrôle d’E/S pour IRP_MJ_DEVICE_CONTROL demandes qui nécessitent des transferts de données, que le pilote utilise ou non des E/S directes pour les opérations de lecture et d’écriture.

La configuration d’un transfert d’E/S direct varie légèrement, selon que DMA ou PIO est utilisé. Pour plus d'informations, consultez les pages suivantes :

Utilisation d’E/S directes avec DMA

Utilisation d’E/S directes avec PIO

Les pilotes doivent prendre des mesures pour maintenir la cohérence du cache pendant les transferts DMA et PIO. Pour plus d’informations, consultez Maintenance de la cohérence du cache.