Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Architektura stosu sterowników HID w systemie Windows jest oparta na sterowniku klasy o nazwie hidclass.sys. Klienci i minidrivery transportu uzyskują dostęp do sterownika klasy z trybu użytkownika lub trybu jądra.
Sterownik klasy HID
Sterownik klasy HID dostarczany przez system jest sterownikiem funkcji WDM i sterownikiem magistrali dla klasy konfiguracji urządzenia HID (HIDClass). Składnik wykonywalny sterownika klasy HID jest hidclass.sys. Sterownik klasy HID to klej między klientami HID i różnymi transportami, dzięki czemu klient HID może być napisany w niezależny sposób od transportu. Ten poziom abstrakcji umożliwia klientom kontynuowanie pracy (bez żadnych modyfikacji) w przypadku wprowadzenia nowego standardu lub transportu innej firmy.
Na poniższym diagramie przedstawiono reprezentację architektury HID.
Powyższy diagram obejmuje:
- Klienci HID — identyfikuje klientów systemu Windows i innych firm oraz ich interfejsy.
- Sterownik klasy HID — plik wykonywalny hidclass.sys.
- HID transport minidriver — identyfikuje transporty systemu Windows i innych firm oraz ich interfejsy.
Oto diagram stosu urządzeń ogólnego klienta HID i transportu.
Oto inny diagram stosu urządzeń przedstawiający kolekcje klawiatury i myszy HID za pośrednictwem portu USB.
Diagram stosu urządzeń HID dla klawiatury i myszy na USB.
Klienci HID
Klienci HID to sterowniki, usługi lub aplikacje komunikujące się z HIDClass.sys i często reprezentują określony typ urządzenia (na przykład czujnik, klawiatura, mysz itd.). Identyfikują urządzenie za pośrednictwem identyfikatora sprzętu lub określonej kolekcji HID i komunikują się z kolekcją HID, korzystając z poniższych wskazówek.
Sterowniki i aplikacje w trybie użytkownika oraz sterowniki trybu jądra wykonują następujące czynności, aby obsługiwać kolekcje HID:
- Sterowniki i aplikacje w trybie użytkownika używają procedur pomocy technicznej HIDClass (HidD_Xxx), aby uzyskać informacje o kolekcji HID.
- Sterowniki trybu jądra, sterowniki trybu użytkownika i aplikacje używają procedur obsługi analizy HID (HidP_Xxx), a sterowniki trybu jądra używają sterowników IOCTL klasy HID do obsługi raportów HID.
Poniższa tabela upraszcza informacje.
| Tryb | Sterowniki | Aplikacje |
|---|---|---|
| Tryb użytkownika | HidD_Xxx | HidP_Xxx |
| Tryb jądra | HidD_Xxx LUB IOCTL_HID_xxx | N/A |
Aby uzyskać więcej informacji, zobacz Otwieranie kolekcji HID.
Klienci HID obsługiwani w systemie Windows
System Windows obsługuje następujące kolekcje najwyższego poziomu:
| Strona użytkowania | Zastosowanie | Notatki | Tryb dostępu |
|---|---|---|---|
| 0x0001 | 0x0001 — 0x0002 | Sterownik klasy myszy i sterownik mapujący | Wyłączny |
| 0x0001 | 0x0004 — 0x0005 | Kontrolery gier | Udostępniona |
| 0x0001 | 0x0006 — 0x0007 | Sterownik klasy klawiatury/klawiatury numerycznej i sterownik mapowania | Wyłączny |
| 0x0001 | 0x000C | Przełącznik trybu lotu | Udostępniona |
| 0x0001 | 0x0080 | Kontrolki systemowe (Zasilanie) | Udostępniona |
| 0x000C | 0x0001 | Kontrolki konsumentów | Udostępniona |
| 0x000D | 0x0001 | Zewnętrzne urządzenie długopisowe | Wyłączny |
| 0x000D | 0x0002 | Zintegrowane urządzenie długopisowe | Wyłączny |
| 0x000D | 0x0004 | Ekran dotykowy | Wyłączny |
| 0x000D | 0x0005 | Precyzyjny touchpad (PTP) | Wyłączny |
| 0x0020 | *Wielokrotny | Czujniki | Udostępniona |
| 0x0084 | 0x0004 | Bateria HID UPS | Udostępniona |
| 0x008C | 0x0002 | Skaner kodów kreskowych (hidscanner.dll) | Udostępniona |
W poprzedniej tabeli tryb dostępu dla klientów wejściowych HID jest wyłączny , aby uniemożliwić innym klientom HID przechwytywanie lub odbieranie globalnego stanu danych wejściowych, gdy nie są docelowym odbiorcą tych danych wejściowych. Ze względów bezpieczeństwa Raw Input Manager (RIM) wyłącznie otwiera wszystkie takie urządzenia.
Jeśli RIM otworzy urządzenie w trybie wyłącznym, użytkownik nadal może otworzyć interfejs urządzenia HID bez żądania uprawnień do odczytu i zapisu oraz uzyskać informacje o urządzeniu HID za pośrednictwem procedur pomocniczych HIDClass (HidD_GetXxx).
Tryb udostępniania umożliwia wielu aplikacjom dostęp do urządzenia. Na przykład wiele aplikacji może uzyskać dostęp do skanera kodów kreskowych, aby uzyskać informacje o możliwościach urządzeń i pobrać statystyki. Jednak pobieranie zdekodowanych danych ze skanera kodów kreskowych odbywa się w trybie wyłącznym . Użycie jest definiowane w tabelach użyciaUSB-IF.
*Wiele: Zastosowania czujników z 0x00 — 0xFF są segmentowane w różnych celach. Na przykład 0x10 wskazuje czujnik biometryczny; 0x40 wskazuje czujnik światła. Te alokacje nie są ciągłe. Aby uzyskać listę użycia czujników, zobacz USB-IF Definicje klas urządzeń dla funkcji HID. Aby uzyskać informacje na temat użycia czujników obsługiwanych w systemie Windows, zobacz HID Sensors Usages (Użycie czujników HID).
Sterownik transportu HID
Sterownik klasy HID jest przeznaczony do używania minidriverów HID w celu uzyskania dostępu do sprzętowego urządzenia wejściowego. Minidriver HID abstrahuje specyficzne dla poszczególnych urządzeń operacje wejściowych, które obsługuje. Minidriver HID wiąże swoją operację ze sterownikiem klasy HID, rejestrując się za pomocą sterownika klasy HID. Sterownik klasy HID komunikuje się z minidriverem HID, wywołując jego funkcje wspomagające. Z kolei minidriver HID wysyła komunikaty w dół stosu sterowników do bazowej magistrali lub sterownika portu.
Transporty HID obsługiwane w systemie Windows
Aby uzyskać listę obsługiwanych transportów HID, zobacz Omówienie transportu HID.
ogólne TEST HID USB w zestawie Windows Hardware Lab Kit (HLK) obejmuje sterowniki HidUsb i HidClass. Nie ma testu HLK dla minidriverów firm trzecich dla urządzeń HID.