Udostępnij przez


Przykładowy stos urządzeń WDM

W tej sekcji opisano obiekty urządzeń, które mogą zostać utworzone przez zestaw sterowników dla sprzętu USB. Ilustruje obiekty urządzeń WDM i sposób ich warstwowania.

Na poniższej ilustracji przedstawiono obiekty urządzeń utworzone przez przykładowe sterowniki. Aby uzyskać więcej informacji, zobacz Warstwy sterowników WDM: przykład.

Diagram ilustrujący przykładowe warstwy obiektu urządzenia WDM dla joysticka USB.

Począwszy od dołu tego rysunku, obiekty urządzeń w przykładowych stosach urządzeń obejmują:

  1. PdO i FDO magistrali PCI.

    Sterownik magistrali korzeniowej wylicza wewnętrzną magistralę systemową i tworzy obiekt PDO dla każdego znalezionego urządzenia. Jednym z tych PDO (obiektów urządzeń fizycznych) jest magistrala PCI. (Rysunek nie pokazuje PDO i FDO dla magistrali głównej.)

    Menedżer PnP identyfikuje sterownik PCI jako sterownik funkcjonalny magistrali PCI, ładuje sterownik (jeśli jeszcze nie został załadowany) i przekazuje PDO do sterownika PCI. W swojej procedurze AddDevice sterownik PCI tworzy FDO dla magistrali PCI (IoCreateDevice) i dołącza FDO do stosu urządzeń (IoAttachDeviceToDeviceStack) dla magistrali PCI. Sterownik PCI tworzy i dołącza to FDO w ramach swoich obowiązków jako sterownik funkcji magistrali PCI.

    W tym przykładzie nie ma sterowników filtrów dla magistrali PCI.

  2. PdO i FDO kontrolera hosta USB.

    Menedżer PnP kieruje sterownik PCI, aby uruchomić urządzenie (IRP_MN_START_DEVICE), a następnie wysyła zapytanie do sterownika PCI dla swoich elementów podrzędnych (IRP_MN_QUERY_DEVICE_RELATIONS z typem relacji BusRelations). W odpowiedzi sterownik PCI wylicza urządzenia w magistrali. W tym przykładzie sterownik PCI znajduje kontroler hosta USB i tworzy PDO dla tego urządzenia. Szeroka strzałka na rysunku wskazuje, że kontroler hosta USB jest "dzieckiem" magistrali PCI. Sterownik PCI tworzy obiekty PDO dla swoich urządzeń podrzędnych w ramach swoich obowiązków jako sterownik magistrali PCI.

    Menedżer PnP identyfikuje parę sterowników miniklasy/klasy kontrolera hosta USB jako główny sterownik funkcjonalności dla kontrolera hosta USB i ładuje tę parę sterowników. Menedżer PnP wywołuje parę sterowników w odpowiednim czasie, aby utworzyć i dołączyć FDO dla kontrolera hosta USB.

    W tym przykładzie nie ma sterowników filtrujących dla kontrolera hosta USB.

  3. Obiekt urządzenia fizycznego (PDO) i obiekt urządzenia funkcjonalnego (FDO) dla koncentratora USB.

    Kontroler hosta USB przeprowadza enumerację magistrali, lokalizuje koncentrator USB w jedynym dostępnym porcie i tworzy PDO dla koncentratora. Sterownik koncentratora USB tworzy i dołącza FDO dla koncentratora.

    Ten przykład nie zawiera sterowników filtrujących dla koncentratora USB.

  4. PDO, FDO i dwa filter DO dla urządzenia joysticka.

    Sterownik koncentratora USB wylicza magistralę, lokalizuje urządzenie HID (joystick) i tworzy PDO dla joysticka.

    W tym przykładzie w rejestrze jest skonfigurowany sterownik filtru niższego poziomu dla urządzeń joysticka, więc menedżer PnP ładuje sterownik filtru. Sterownik filtrujący ustala, że ma znaczenie dla urządzenia, i tworzy oraz dołącza filtr DO do stosu urządzenia.

    Menedżer PnP określa, że sterownik funkcjonalny dla urządzenia dżojstik jest parą sterowników klasy HID/miniklasy i ładuje te sterowniki. Para sterowników składa się ze sterownika miniklasy połączonego z biblioteką DLL sterownika klasy. Razem działają one jako jeden sterownik funkcji dla urządzenia. Para sterownika klasy/miniklasy tworzy jeden obiekt urządzenia, FDO, i dołącza go do stosu sterowników.

    Sterownik filtru górnego poziomu tworzy i dołącza filtr DO do stosu urządzenia w sposób podobny do filtru dolnego poziomu.

Sterownik magistrali nadrzędnej zawsze tworzy obiekt PDO (obiekt fizyczny urządzenia) na dole stosu urządzeń dla określonego urządzenia. Gdy sterowniki obsługują żądania IRP typu PnP lub zasilania, muszą przekazać każde żądanie IRP aż w dół stosu urządzeń do PDO i skojarzonego sterownika magistrali.

Na poniższej ilustracji przedstawiono te same stosy urządzeń co na poprzedniej ilustracji, ale podkreśla, które obiekty urządzeń tworzy każdy sterownik i którymi zarządza.

diagram ilustrujący przykładowe warstwy obiektu urządzenia z perspektywy sterownika.

Sterownik magistrali nadzoruje więcej niż jeden stos sterowników urządzeń. Sterownik magistrali tworzy FDO dla swojego adaptera magistrali lub kontrolera i tworzy PDO dla każdego ze swoich urządzeń podrzędnych.