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.
Jednou z hlavních zodpovědností zásobníků ovladačů je přenos dat mezi aplikacemi v uživatelském režimu a zařízeními systému. Operační systém poskytuje následující tři metody pro přístup k vyrovnávacím pamětím dat:
Vstupně-výstupní operace ve vyrovnávací paměti
Operační systém vytvoří nestránkovou systémovou vyrovnávací paměť, která se rovná velikosti vyrovnávací paměti aplikace. V případě operací zápisu správce vstupně-výstupních operací zkopíruje uživatelská data do systémové vyrovnávací paměti před voláním zásobníku ovladačů. V případě operací čtení zkopíruje I/O správce data ze systémové vyrovnávací paměti do vyrovnávací paměti aplikace po dokončení požadované operace.
Pro více informací viz Použití Buffered I/O.
Přímé vstupně-výstupní operace
Operační systém uzamkne vyrovnávací paměť aplikace v paměti. Potom vytvoří seznam popisovačů paměti (MDL), který identifikuje uzamčené paměťové stránky a předá MDL zásobníku ovladačů. Ovladače přistupují k uzamčeným stránkám prostřednictvím MDL.
Další informace naleznete v tématu Použití přímých vstupně-výstupních operací.
Žádné vyrovnávací paměti ani přímé vstupně-výstupní operace
Operační systém předá virtuální počáteční adresu a velikost vyrovnávací paměti aplikace do zásobníku ovladačů. Vyrovnávací paměť je přístupná pouze z ovladačů, které běží ve vláknovém kontextu aplikace.
Další informace naleznete v tématu Použití žádné vyrovnávací paměti ani přímé vstupně-výstupní operace.
U požadavků IRP_MJ_READ a IRP_MJ_WRITE určují ovladače metodu vstupně-výstupních operací pomocí příznaků v každé struktuře DEVICE_OBJECT . Další informace najdete v tématu Inicializace objektu zařízení.
Pro požadavky IRP_MJ_DEVICE_CONTROL a IRP_MJ_INTERNAL_DEVICE_CONTROL je metoda vstupně-výstupní operace určena hodnotou TransferType , která je obsažena v každé hodnotě IOCTL. Další informace najdete v tématu Definování kódů ovládacích prvků vstupně-výstupních operací.
Všechny ovladače v zásobníku ovladačů musí pro každý požadavek používat stejnou metodu přístupu k vyrovnávací paměti, s výjimkou ovladače nejvyšší úrovně (který může použít metodu "ani jedna", bez ohledu na metodu používanou nižšími ovladači).