Freigeben über


Verwenden direkter E/A-Vorgänge

Treiber für Geräte, die große Datenmengen gleichzeitig übertragen können, sollten direkte E/A-Vorgänge für diese Übertragungen verwenden. Die Verwendung von direkten E/A-Vorgängen für große Übertragungen verbessert die Leistung eines Treibers, indem sowohl der Unterbrechungsaufwand reduziert wird als auch die Speicherzuordnung und das Kopieren von Vorgängen beseitigt werden, die mit gepufferten E/A-Vorgängen verbunden sind.

Im Allgemeinen fordern Massenspeichergerätetreiber direkte E/A für Übertragungsanforderungen an, einschließlich Treibern der niedrigsten Ebene, die den direkten Speicherzugriff (Direct Memory Access, DMA) oder programmierte E/A (PIO) verwenden, sowie alle darüber verketteten Zwischentreiber.

Der E/A-Manager ermittelt, dass ein E/A-Vorgang direkte E/A-Vorgänge verwendet:

Treiber, die direkte E/A verwenden, verwenden manchmal auch gepufferte E/A-Vorgänge, um einige IRPs zu verarbeiten. Insbesondere verwenden Treiber in der Regel gepufferte E/A-Steuerungscodes für IRP_MJ_DEVICE_CONTROL Anforderungen, die Datenübertragungen erfordern, unabhängig davon, ob der Treiber direkte E/A für Lese- und Schreibvorgänge verwendet.

Das Einrichten einer direkten E/A-Übertragung variiert geringfügig, je nachdem, ob DMA oder PIO verwendet wird. Weitere Informationen finden Sie unter

Verwenden der direkten E/A mit DMA

Verwenden von Direct E/O mit PIO

Treiber müssen Schritte unternehmen, um die Cachekohärenz während DMA- und PIO-Übertragungen aufrechtzuerhalten. Weitere Informationen finden Sie unter Verwalten der Cachekohärenz.