Illesztőprogram-halmazok

Az eszközillesztőknek küldött kérések többsége I/O-kéréscsomagokban (IRP-k) vannak csomagolva. Minden eszközt egy eszközcsomópont jelöl, és minden eszközcsomópont rendelkezik eszközveremrel. További információ: Eszközcsomópontok és eszközveremek. Ha olvasási, írási vagy vezérlési kérést szeretne küldeni egy eszköznek, az I/O-kezelő megkeresi az eszköz eszközcsomópontját, majd egy IRP-t küld a csomópont eszközveremének. Néha több eszközverem is részt vesz egy I/O-kérés feldolgozásában. Függetlenül attól, hogy hány eszközveremről van szó, az I/O-kérésben részt vevő illesztőprogramok teljes sorozatát illesztőprogram-veremnek nevezzük, a kéréshez. A illesztőprogram-verem kifejezést is használjuk az adott technológia rétegzett illesztőprogram-készletére való hivatkozáshoz.

Több eszközverem által feldolgozott I/O-kérések

Bizonyos esetekben több eszközvermek is részt vesznek egy IRP feldolgozásában. Az alábbi ábra egy olyan esetet mutat be, amelyben négy eszközverem vesz részt egyetlen IRP feldolgozásában.

négy eszközcsomópont diagramja, mindegyikhez eszközverem tartozik.

Az IRP feldolgozása a diagram minden számozott szakaszában az alábbiak szerint történik:

  1. Az IRP-t a Disk.syshozza létre, amely a My USB Storage Device csomópont eszközveremének függvényillesztője. Disk.sys átadja az IRP-t az eszközveremen a Usbstor.sys.

  2. Figyelje meg, hogy Usbstor.sys az USB tárhely eszköz csomópont PDO-illesztőprogramja és az USB tömegtároló eszköz csomópont FDO-illesztőprogramja. Ezen a ponton nem fontos eldönteni, hogy az IRP a (PDO, Usbstor.sys) pár vagy a (FDO, Usbstor.sys) pár tulajdonában van-e. Az IRP az illesztőprogram tulajdonában van, Usbstor.sys, és az illesztőprogramnak hozzáférése van mind a PDO-hoz, mind az FDO-hoz.

  3. Amikor Usbstor.sys befejezte az IRP feldolgozását, átadja az IRP-t Usbhub.sys. Usbhub.sys az USB-háttértároló eszköz csomópont PDO-illesztőprogramja és az USB Root Hub csomópont FDO-illesztőprogramja. Nem fontos eldönteni, hogy az IRP a (PDO, Usbhub.sys) pár vagy a (FDO, Usbhub.sys) pár tulajdonában van-e. Az IRP az illesztőprogram tulajdonában van, Usbhub.sys, és az illesztőprogramnak hozzáférése van mind a PDO-hoz, mind az FDO-hoz.

  4. Amikor Usbhub.sys befejezte az IRP feldolgozását, átadja az IRP-t a (Usbuhci.sys, Usbport.sys) párnak.

    Usbuhci.sys egy miniportillesztő, Usbport.sys pedig portillesztő. A (miniport, port) pár egyetlen illesztőprogram szerepét tölti be. Ebben az esetben a miniportillesztőt és a portillesztőt is a Microsoft írja. A (Usbuhci.sys, Usbport.sys) pár az USB gyökérközpont csomópontjának PDO illesztőprogramja, míg a (Usbuhci.sys, Usbport.sys) pár egyaránt az USB gazdavezérlő csomópont FDO illesztőprogramja is. A (Usbuhci.sys, Usbport.sys) pár végzi a tényleges kommunikációt a gazdavezérlő hardverével, ami viszont kommunikál a fizikai USB-tárolóeszközzel.

Egy I/O-kérés illesztőprogram-verme

Vegye figyelembe az előző ábrán látható, az I/O-kérelemben részt vevő négy illesztőprogram sorrendjét. A sorozatot úgy vizsgálhatjuk meg, hogy az eszközcsomópontok és az egyes eszközveremek helyett a meghajtókra összpontosítunk. Az alábbi ábrán a meghajtók felülről lefelé sorrendben láthatók. Figyelje meg, hogy Disk.sys egy eszközobjektumhoz van társítva, de a másik három illesztőprogram mindegyike két eszközobjektumhoz van társítva.

illesztőprogram-verem ábrája, amely a csak egy fdo-hoz társított felső illesztőt mutatja, a másik három illesztőt pedig egy pdo-hoz és egy fdo-hoz társítja.

Az I/O-kérésben részt vevő illesztőprogramok sorozatát az I/O-kérés illesztőveremének nevezzük. Egy I/O-kérés illesztőprogram-vermének szemléltetéséhez felülről lefelé rajzoljuk az illesztőprogramokat a kérelemben való részvétel sorrendjében.

Figyelje meg, hogy az I/O-kérések illesztőprogram-verme meglehetősen eltér az eszközcsomópont eszközveremétől. Azt is vegye észre, hogy az I/O-kérés illesztőprogram-réteg nem feltétlenül marad az eszközfa egy ágában.

Technológiai illesztő készletek

Vegye figyelembe az előző ábrán látható I/O-kérés illesztőprogram-veremét. Ha minden illesztőnek felhasználóbarát nevet adunk, és kisebb módosításokat hajtunk végre a diagramon, akkor van egy blokkdiagramunk, amely hasonló a Windows Driver Kit (WDK) dokumentációjában szereplő sokhoz.

illesztőprogram-stak ábrája, amelyen az illesztőprogramok barátságos nevei láthatók: a lemezosztály-illesztőprogram felül, majd az USB-tároló port illesztőprogramja, majd az USB hub-illesztőprogram és (USB 2 miniport, USB port) illesztőprogram.

A diagramban az illesztő verem három részre van osztva. Az egyes szakaszok úgy tekinthetők, mint egy adott technológiához, vagy az operációs rendszer egy adott összetevőjéhez vagy részéhez tartoznak. Tegyük fel például, hogy az illesztőprogram-verem tetején lévő első szakasz a Volume Managerhez tartozik, a második szakasz az operációs rendszer tárolási összetevőjéhez, a harmadik pedig az operációs rendszer alapvető USB-részéhez tartozik.

Vegye figyelembe a harmadik szakaszban szereplő tényezőket. Ezek az illesztőprogramok a Microsoft által a különféle USB-kérések és USB-hardverek kezelésére szolgáló alapvető USB-illesztőprogramok nagyobb készletének részei. Az alábbi diagram a teljes USB-magblokk diagramot mutatja be.

a technológiai meghajtóréteget bemutató diagram a lehetséges USB-magblokkról.

Egy blokkdiagramot, amely egy adott technológia vagy az operációs rendszer egy adott összetevőjének vagy részének összes illesztőprogramját mutatja, technológiai illesztőveremnek nevezzük. A technológiai illesztőprogram-veremek általában olyan neveket kapnak, mint az USB Core Driver Stack, a Storage Stack, az 1394 Driver Stack és a Audio Driver Stack.

Megjegyzés: A cikkben szereplő USB-magblokk diagramja az USB 1.0 és 2.0 technológiaillesztő-vermek szemléltetésének egyik lehetséges módját mutatja be. Az USB 1.0, 2.0 és 3.0 illesztőprogram-verem hivatalos diagramjaiért lásd USB Driver Stack Architektúra.

eszközcsomópontok és eszközveremek

Minidrivers és illesztőprogram-párok

Fogalmak az összes illesztőprogram-fejlesztő számára