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.
Většina požadavků odesílaných ovladačům zařízení se zabalí do paketů požadavků vstupně-výstupních operací (IRP). Komponenta operačního systému nebo ovladač odešle IRP ovladači voláním IoCallDriver, který má dva parametry: ukazatel na DEVICE_OBJECT a ukazatel na IRP. DEVICE_OBJECT má ukazatel na přidružený DRIVER_OBJECT. Když komponenta volá IoCallDriver, říkáme, že komponenta odešle IRP do objektu zařízení nebo odešle IRP ovladači přidruženému k objektu zařízení. Někdy použijeme frázi předává IRP nebo směruje IRP dál místo odesílá IRP.
Obvykle IRP zpracovává několik ovladačů, které jsou uspořádány ve skládce. Každý ovladač v zásobníku je přidružený k objektu zařízení. Další informace naleznete v části Uzly zařízení a zásobníky zařízení. Při zpracování protokolu IRP zásobníkem zařízení se protokol IRP obvykle odešle jako první do horního objektu zařízení v zásobníku zařízení. Pokud je například IRP zpracováváno zásobníkem zařízení zobrazeným v tomto diagramu, bylo by nejprve odesláno do objektu filtru zařízení (Filtr DO) na vrcholu zásobníku.
Předání protokolu IRP do zásobníku zařízení
Předpokládejme, že správce vstupně-výstupních operací odešle IRP k filtru DO v diagramu. Ovladač přidružený k filtru DO, AfterThought.sys, zpracuje IRP a pak ho předá funkčnímu objektu zařízení (FDO), což je další nižší objekt zařízení v zásobníku zařízení. Když ovladač předá IRP dalšímu dolnímu objektu zařízení v zásobníku zařízení, říkáme, že ovladač předá IRP dolů po zásobníku zařízení.
Některé IRP se předávají celým zásobníkem zařízení až do objektu fyzického zařízení (PDO). Ostatní irp se nikdy nedostanou k primárnímu řadiči, protože jsou dokončeny jedním z ovladačů nad primárním řadičem.
IRP jsou samostatné jednotky
Struktura IRP je samostatná v tom smyslu, že obsahuje všechny informace, které ovladač potřebuje ke zpracování V/V požadavku. Některé části struktury IRP obsahují informace, které jsou společné pro všechny zúčastněné ovladače ve stacku. Další části IRP drží informace, které jsou specifické pro konkrétní ovladač v rámci zásobníku.