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.
Rutiny DispatchRead a DispatchWrite ovladače zpracovávají IRP s kódy vstupně-výstupních funkcí IRP_MJ_READ a IRP_MJ_WRITE. Alternativně může kombinovaná rutina DispatchReadWrite zpracovávat irPs pro oba tyto kódy vstupně-výstupních funkcí.
Každý ovladač zařízení, ze kterého je možné přenést data do systému, musí mít rutinu DispatchRead . Každý ovladač zařízení, do kterého je možné přenést data ze systému, musí mít rutinu DispatchWrite . Každý ovladač, který přenáší data v obou směrech, může mít kombinovanou rutinu DispatchReadWrite .
Ovladače nižší úrovně zpracovávají požadavky IRP_MJ_READ a IRP_MJ_WRITE asynchronně. Proto musí rutiny DispatchRead a/nebo DispatchWrite v ovladačích nejvyšší úrovně předávat tyto požadavky k dalšímu zpracování, pokud mají platné parametry v I/O zásobníku IRP příslušného ovladače.
Zda ovladač nastaví objekty zařízení pro vyrovnávací paměť nebo pro přímé vstupně-výstupní operace, ovlivňuje způsob, jakým zpracovává žádosti o přenos. Zejména ovladač, který k provádění operací DMA používá přímé vstupně-výstupní operace, může být potřeba rozdělit velké žádosti o přenos do posloupnosti menších přenosových operací, aby splnil IRP_MJ_READ nebo IRP_MJ_WRITE požadavek. Další informace naleznete v tématu Vstupní a výstupní techniky.
Následující pododdíly probírají některé aspekty návrhu a implementace pro rutiny DispatchReadWrite v ovladačích zařízení nejnižší úrovně, které používají vstupně-výstupní operace ve vyrovnávací paměti a přímé vstupně-výstupní operace, a také v ovladačích vyšší úrovně vrstvené nad nimi:
Asynchronní zpracování přenosů
DispatchReadWrite s využitím vyrovnávacího vstupně-výstupního systému
DispatchReadWrite s využitím přímého vstupu/výstupu