Číst v angličtině

Sdílet prostřednictvím


Zásobníky ovladačů

Většina požadavků odesílaných ovladačům zařízení se zabalí do paketů vstupně-výstupních požadavků (IRPs). Každé zařízení je reprezentováno uzlem a každý uzel má svůj zásobník zařízení. Další informace naleznete v části Uzly zařízení a zásobníky zařízení. Pokud chcete odeslat žádost o čtení, zápis nebo řízení zařízení, správce vstupně-výstupních operací vyhledá uzel zařízení pro dané zařízení a pak odešle IRP do zásobníku zařízení daného uzlu. Při zpracování V/V požadavku se někdy podílí více než jedna vrstva zařízení. Bez ohledu na to, kolik zásobníků zařízení se týká, se celková posloupnost ovladačů, které se účastní I/O požadavku, nazývá zásobník ovladačů pro požadavek. Termín zásobníku ovladačů také používáme k označení vrstvené sady ovladačů pro konkrétní technologii.

Vstupně-výstupní požadavky zpracovávané několika řízeními zařízení

V některých případech se na zpracování IRP podílí více než jeden zásobník zařízení. Následující diagram znázorňuje případ, kdy se na zpracování jediného IRP podílejí čtyři zásobníky zařízení.

diagram čtyř uzlů zařízení, z nichž každý má zásobník zařízení.

Tady je způsob zpracování IRP v každé číslované fázi diagramu:

  1. IRP je vytvořen Disk.sys, což je ovladač funkce v zásobníku zařízení pro uzel Moje USB úložné zařízení. Disk.sys předá IRP dolů po zásobníku zařízení do Usbstor.sys.

  2. Všimněte si, že Usbstor.sys je ovladač PDO pro uzel Moje paměťové zařízení USB a ovladač FDO pro uzel Zařízení velkokapacitního úložiště USB. V tomto okamžiku není důležité rozhodnout, zda je IRP vlastněna dvojicí (PDO, Usbstor.sys) nebo párem (FDO, Usbstor.sys). IRP vlastní ovladač označený Usbstor.sysa tento ovladač má přístup jak k PDO, tak k FDO.

  3. Jakmile Usbstor.sys dokončí zpracování protokolu IRP, předá IRP Usbhub.sys. Usbhub.sys je ovladač PDO pro uzel velkokapacitního paměťového zařízení USB a ovladač FDO pro uzel kořenového rozbočovače USB. Není důležité rozhodnout, zda je IRP vlastněn párem (PDO, Usbhub.sys) nebo párem (FDO, Usbhub.sys). IRP je ve vlastnictví ovladače, Usbhub.sys, a ovladač má přístup jak k PDO, tak k FDO.

  4. Jakmile Usbhub.sys dokončí zpracování protokolu IRP, předá IRP páru (Usbuhci.sys, Usbport.sys).

    Usbuhci.sys je ovladač miniportu a Usbport.sys je ovladač portu. Dvojice (miniport, port) funguje jako jeden ovladač. V tomto případě microsoft píše ovladač miniportu i ovladač portu. Dvojice (Usbuhci.sys, Usbport.sys) je ovladač PDO pro uzel kořenového rozbočovače USB a dvojice (Usbuhci.sys, Usbport.sys) je také ovladač FDO pro uzel řadiče hostitele USB. Pár (Usbuhci.sys, Usbport.sys) provede skutečnou komunikaci s hardwarem hostitelského řadiče, který zase komunikuje s fyzickým úložným zařízením USB.

Zásobník ovladačů pro požadavek na vstupně-výstupní operace

Představte si posloupnost čtyř ovladačů, které se účastnily V/V požadavku znázorněného v předchozím diagramu. Můžeme získat další pohled na sled událostí tím, že zacílíme na ovladače spíše než na uzly zařízení a jejich jednotlivé zásobníky zařízení. Následující diagram znázorňuje ovladače v posloupnosti shora dolů. Všimněte si, že Disk.sys je přidružen k jednomu objektu zařízení, ale každý z dalších tří ovladačů je přidružený ke dvěma objektům zařízení.

diagram zásobníku ovladačů zobrazující horní ovladač přidružený pouze k fdo a ostatní tři ovladače přidružené k pdo a fdo.

Posloupnost ovladačů, které se účastní V/V požadavku, se nazývá zásobník ovladačů pro vstupně-výstupní požadavek. Abychom ilustrovali zásobník ovladačů pro V/V požadavek, nakreslíme ovladače shora dolů v pořadí, v jakém se účastní žádosti.

Všimněte si, že zásobník ovladačů pro požadavek na vstupně-výstupní operace se liší od zásobníku zařízení pro uzel zařízení. Všimněte si také, že zásobník ovladačů pro V/V požadavek nemusí nutně zůstat v jedné větvi stromu zařízení.

Technologické stohy ovladačů

Představte si zásobník ovladačů pro V/V požadavek zobrazený v předchozím diagramu. Pokud každému z ovladačů poskytneme popisný název a provedeme drobné změny diagramu, máme blokový diagram podobný mnoha ovladačům, které se zobrazují v dokumentaci k sadě Windows Driver Kit (WDK).

diagram zásobníku ovladačů zobrazující popisné názvy ovladačů: ovladač třídy disku nahoře, následovaný ovladačem portu pro úložiště USB, poté ovladačem rozbočovače USB a nakonec ovladačem (usb 2 miniport, usb port).

V diagramu je zásobník ovladačů rozdělený do tří částí. Každou část si můžeme představit jako součást konkrétní technologie nebo konkrétní součást nebo část operačního systému. Můžeme například říci, že první oddíl v horní části zásobníku ovladačů patří do Správce svazků, druhá část patří do součásti úložiště operačního systému a třetí část patří do základní části USB operačního systému.

Vezměte v úvahu ovladače v třetí části. Tyto ovladače jsou podmnožinou větší sady základních ovladačů USB, které Microsoft poskytuje pro zpracování různých druhů požadavků USB a hardwaru USB. Následující diagram znázorňuje, jak může vypadat celý blokový diagram jádra USB.

diagram znázorňující vrstvu technologických ovladačů pro možný blok jádra USB.

Blokový diagram, který znázorňuje všechny ovladače pro konkrétní technologii nebo konkrétní součást nebo část operačního systému, se nazývá zásobník ovladačů technologie . Zásobníky technologických ovladačů mají obvykle názvy, jako je zásobník ovladačů USB Core, zásobník úložiště, zásobník ovladačů 1394 a zásobník zvukových ovladačů.

Poznámka: Diagram bloku jádra USB v tomto článku ukazuje jeden z několika možných způsobů, jak znázornit zásobníky ovladačů technologie pro USB 1.0 a 2.0. Oficiální diagramy zásobníků ovladačů USB 1.0, 2.0 a 3.0 najdete v tématu architektura zásobníku ovladačů USB.

Hardwarové uzly a zásobníky zařízení

miniodače a páry ovladačů

koncepty pro všechny vývojáře ovladačů