Udostępnij przez


Architektura: rozszerzenie kontrolera hosta USB (UCX)

W tej sekcji przedstawiono koncepcje wysokiego poziomu i zadania związane z opracowywaniem sterowników hosta. Sekcja ma zastosowanie do Ciebie, jeśli piszesz nowy sterownik kontrolera hosta, który komunikuje się z dostarczonym przez firmę Microsoft sterownikiem rozszerzenia kontrolera hosta USB (Ucx01000.sys).

Oto zmodyfikowana wersja diagramu pokazana w sterownikach po stronie hosta USB w systemie Windows. Ta wersja ukrywa szczegóły warstwy sterownika klienta USB, które nie są istotne dla opracowywania sterowników kontrolera hosta.

architektura ucx.

Na poprzednim obrazie,

  • Sterownik koncentratora USB (Usbhub3.sys) jest sterownikiem KMDF. Sterownik koncentratora jest odpowiedzialny za zarządzanie koncentratorami USB i ich portami, enumerację oraz tworzenie obiektów urządzeń fizycznych (PDO) dla urządzeń USB i innych koncentratorów, które mogą być dołączone do ich portów niższego poziomu.
  • Rozszerzenie kontrolera hosta USB (Ucx01000.sys) jest warstwą abstrakcji dla sterownika koncentratora znajdującego się wyżej w stosie i zapewnia uniwersalny mechanizm kolejkowania żądań do bazowego sterownika kontrolera hosta.
  • Sterownik kontrolera hosta USB zarządza sprzętem. Usbxhci.sys jest jednym z takich sterowników dostarczanych przez firmę Microsoft, który jest przeznaczony dla sprzętu zgodnego ze specyfikacją XHCI kontrolera USB, w szczególności. Może być konieczne, aby niezależni deweloperzy sprzętu pisali własny sterownik kontrolera hosta, zamiast używać skrzynki odbiorczej Usbxhci.sys. Na przykład w przypadku sprzętu XHCI, który nie jest w pełni zgodny ze specyfikacją i dlatego nie może używać Usbxhci.sys lub sprzętu innego niż XHCI, takiego jak USB przez połączenie TCP.

Komunikacja dwukierunkowa, która odbywa się między UCX i sterownikiem kontrolera hosta odbywa się przy użyciu interfejsów programowania rozszerzenia kontrolera hosta USB (UCX). Każdy sterownik statycznie łączy się z punktami wejścia w udostępnionej przez firmę Microsoft bibliotece szkieletowej (Ucx01000.lib), gdy sterownik jest kompilowany.

Oto stosy urządzeń załadowane dla sterownika kontrolera hosta:

stos urządzenia UCX.