Dela via


Använda direkt in-/utmatning

Drivrutiner för enheter som kan överföra stora mängder data åt gången bör använda direkt I/O för dessa överföringar. Användning av direkt I/O för stora överföringar förbättrar en drivrutins prestanda, både genom att minska avbrottskostnaderna och genom att eliminera minnesallokering och kopieringsåtgärder som ingår i buffrad I/O.

I allmänhet begär drivrutiner för masslagringsenheter direkt I/O för överföringsbegäranden, inklusive drivrutiner på lägsta nivå som använder direkt minnesåtkomst (DMA) eller programmerad I/O (PIO) samt mellanliggande drivrutiner som är länkade ovanför dem.

I/O-chefen fastställer att en I/O-åtgärd använder direkt I/O enligt följande:

Drivrutiner som använder direkt I/O använder ibland också buffrad I/O för att hantera vissa IP-adresser. I synnerhet använder drivrutiner vanligtvis buffrad I/O för vissa I/O-kontrollkoder för IRP_MJ_DEVICE_CONTROL begäranden som kräver dataöverföringar, oavsett om drivrutinen använder direkt I/O för läs- och skrivåtgärder.

Att konfigurera en direkt I/O-överföring varierar något beroende på om DMA eller PIO används. Mer information finns i:

Använda direkt I/O med DMA

Använda direkt I/O med PIO

Drivrutiner måste vidta åtgärder för att upprätthålla cachesammansättning under DMA- och PIO-överföringar. Mer information finns i Underhålla cachesammanhållning.