Uso di I/O diretto

I driver per i dispositivi che possono trasferire grandi quantità di dati alla volta devono usare l'I/O diretto per tali trasferimenti. L'uso di I/O diretto per i trasferimenti di grandi dimensioni migliora le prestazioni di un driver, riducendo il sovraccarico dell'interruzione e eliminando l'allocazione della memoria e le operazioni di copia intrinseche nell'I/O con buffer.

In genere, i driver di dispositivo di archiviazione di massa richiedono l'I/O diretto per le richieste di trasferimento, inclusi i driver di livello più basso che usano l'accesso diretto alla memoria (DMA) o programmati I/O (PIO), nonché tutti i driver intermedi concatenati sopra di essi.

La gestione I/O determina che un'operazione di I/O usa I/O diretta come indicato di seguito:

I driver che usano l'I/O diretta a volte usano anche I/O con buffer per gestire alcuni indirizzi DI ACCESSO. In particolare, i driver usano in genere l'I/O con buffer per alcuni codici di controllo I/O per le richieste di IRP_MJ_DEVICE_CONTROL che richiedono trasferimenti di dati, indipendentemente dal fatto che il driver usi l'I/O diretto per operazioni di lettura e scrittura.

La configurazione di un trasferimento di I/O diretto varia leggermente, a seconda che venga usato DMA o PIO. Per altre informazioni, vedere:

Uso di I/O diretto con DMA

Uso di I/O diretto con PIO

I driver devono adottare misure per mantenere la coesistenza della cache durante i trasferimenti DMA e PIO. Per altre informazioni, vedere Gestione della coesistenza della cache.