Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ovladače zařízení, která můžou přenášet velké objemy dat najednou, by pro tyto přenosy měly používat přímé vstupně-výstupní operace. Použití přímých vstupně-výstupních operací pro velké přenosy zlepšuje výkon ovladače tím, že snižuje režii přerušení a eliminuje přidělování paměti a kopírování spojené s operacemi vstupně-výstupními ve vyrovnávací paměti.
Obecně platí, že ovladače velkokapacitního zařízení požadují přímé vstupně-výstupní operace pro žádosti o přenos, včetně ovladačů nejnižší úrovně, které používají přímý přístup k paměti (DMA) nebo programované vstupně-výstupní operace (PIO), a také všechny zprostředkující ovladače zřetězení nad nimi.
Správce vstupně-výstupních operací určuje, zda operace používá přímé I/O následujícím způsobem:
U požadavků IRP_MJ_READ a IRP_MJ_WRITE je u člena Flags ve struktuře DEVICE_OBJECT nastaveno DO_DIRECT_IO. Další informace najdete v tématu Inicializace objektu zařízení.
Pro požadavky IRP_MJ_DEVICE_CONTROL a IRP_MJ_INTERNAL_DEVICE_CONTROL obsahuje hodnota kódu IOCTL METHOD_IN_DIRECT nebo METHOD_OUT_DIRECT jako hodnotu TransferType v hodnotě IOCTL. Další informace najdete v tématu Definování kódů ovládacích prvků vstupně-výstupních operací.
Ovladače, které používají přímý vstup/výstup, někdy také používají vstup/výstup s vyrovnáváním pro zpracování některých I/O požadavků (IRP). Zejména ovladače obvykle používají vyrovnané I/O pro některé kontrolní kódy vstupně-výstupních operací pro IRP_MJ_DEVICE_CONTROL požadavky, které vyžadují přenos dat, a to bez ohledu na to, zda ovladač používá přímé I/O pro operace čtení a zápisu.
Nastavení přímého vstupně-výstupního přenosu se mírně liší v závislosti na tom, jestli se používá DMA nebo PIO. Další informace najdete tady:
Použití přímých vstupně-výstupních operací s DMA
použití přímých vstupně-výstupních operací s PIO
Ovladače musí podniknout kroky pro zachování aktuálnosti mezipaměti během přenosů DMA a PIO. Další informace najdete v tématu Zajištění koherence mezipaměti.