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.
W przypadku niektórych urządzeń uniwersalnej magistrali szeregowej (USB) można zainstalować winUSB (Winusb.sys) zamiast implementować sterownik.
Ważne
Ten artykuł jest przeznaczony dla programistów. Jeśli jesteś klientem mającym problemy z USB, zobacz Rozwiązywanie problemów z USB-C w systemie Windows
Automatyczna instalacja winUSB bez pliku INF
Jako producent OEM lub niezależny dostawca sprzętu (IHV) możesz skompilować urządzenie, aby Winusb.sys był instalowany automatycznie. Takie urządzenie jest nazywane urządzeniem WinUSB i nie wymaga pisania niestandardowego pliku INF, który odwołuje się do wbudowanego pliku Winusb.inf.
Po połączeniu urządzenia WinUSB system Windows odczytuje informacje o urządzeniu i ładuje Winusb.sys automatycznie.
Aby uzyskać więcej informacji, zobacz WinUSB Device (Urządzenie WinUSB).
Instalowanie winUSB przez określenie klasy urządzenia dostarczonej przez system
Podczas łączenia urządzenia można zauważyć, że system Windows ładuje Winusb.sys automatycznie. W przeciwnym razie wykonaj następujące instrukcje, aby załadować sterownik:
- Podłącz urządzenie do systemu hosta.
- Otwórz Menedżera urządzeń i znajdź urządzenie.
- Kliknij prawym przyciskiem myszy urządzenie i wybierz polecenie Aktualizuj oprogramowanie sterownika... z menu kontekstowego.
- W kreatorze wybierz pozycję Przeglądaj mój komputer pod kątem oprogramowania sterowników.
- Wybierz pozycję Pozwól mi wybrać z listy sterowników urządzeń na moim komputerze.
- Z listy klas urządzeń wybierz pozycję Urządzenia uniwersalnej magistrali szeregowej.
- Kreator wyświetli urządzenie WinUsb. Wybierz go, aby załadować sterownik.
Jeśli urządzenia uniwersalnej magistrali szeregowej nie są wyświetlane na liście klas urządzeń, należy zainstalować sterownik przy użyciu niestandardowej funkcji INF. Poprzednia procedura nie dodaje identyfikatora GUID interfejsu urządzenia dla aplikacji (aplikacji platformy uniwersalnej systemu Windows lub aplikacji klasycznej systemu Windows) w celu uzyskania dostępu do urządzenia. Należy ręcznie dodać identyfikator GUID, wykonując tę procedurę.
Załaduj sterownik zgodnie z opisem w poprzedniej procedurze.
Wygeneruj identyfikator GUID interfejsu urządzenia dla urządzenia, używając takiego narzędzia jak guidgen.exe.
Znajdź klucz rejestru dla urządzenia pod tym kluczem:
<HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_vvvv&PID_pppp>
W kluczu ParametryUrządzenia dodaj wpis rejestru typu String o nazwie DeviceInterfaceGUID lub wpis rejestru typu Multi-String o nazwie DeviceInterfaceGUIDs. Ustaw wartość na identyfikator GUID wygenerowany w kroku 2.
Odłącz urządzenie od systemu i połącz je ponownie z tym samym portem fizycznym.
Uwaga
W przypadku zmiany portu fizycznego należy powtórzyć kroki od 1 do 4.
Pisanie niestandardowego pliku INF do instalacji WinUSB
W ramach pakietu sterowników należy podać plik inf, który instaluje Winusb.sys jako sterownik funkcji dla urządzenia USB.
Oto przykład uniwersalnego pliku INF, który jest prawidłowy zarówno dla platform x64, jak i ARM64 z systemem Windows 10 lub nowszym. Ten przykład nie zawiera współinstalatorów, dzięki czemu kwalifikuje się do podpisania przez portal Dashboard Centrum deweloperów sprzętu.
;
; Universal INF file for WinUsb installation
;
[Version]
Signature = "$Windows NT$"
Class = USBDevice
ClassGUID = {88BAE032-5A81-49f0-BC3D-A4FF138216D6}
Provider = %ManufacturerName%
CatalogFile = WinUSBInstallation.cat
DriverVer = 09/04/2012,13.54.20.543
PnpLockdown = 1
; ========== Manufacturer and Models sections ===========
[Manufacturer]
%ManufacturerName% = Standard,NTamd64,NTarm64
[Standard.NTamd64]
%DeviceName% =USB_Install, USB\VID_0547&PID_1002
[Standard.NTarm64]
%DeviceName% =USB_Install, USB\VID_0547&PID_1002
; =================== Installation ===================
[USB_Install]
Include = winusb.inf
Needs = WINUSB.NT
[USB_Install.Services]
Include =winusb.inf
Needs = WINUSB.NT.Services
[USB_Install.HW]
AddReg=Dev_AddReg
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{9f543223-cede-4fa3-b376-a25ce9a30e74}"
; =================== Strings ===================
[Strings]
ManufacturerName="Contoso"
ClassName="Universal Serial Bus devices"
DeviceName="Fx2 Learning Kit Device"
REG_MULTI_SZ = 0x00010000
Ten uniwersalny plik INF może być używany na wielu platformach systemu Windows (x64 i ARM64) i kwalifikuje się do podpisania przez portal Pulpitu Nawigacyjnego Centrum Deweloperów Sprzętu.
Aby zainstalować tylko nową niestandardową klasę konfiguracji urządzenia, dołącz sekcję ClassInstall32 w pliku INF urządzenia. Pliki INF dla urządzeń w zainstalowanej klasie, niezależnie od tego, czy klasa konfiguracji urządzenia dostarczone przez system, czy klasa niestandardowa, nie mogą zawierać sekcji ClassInstall32.
Z wyjątkiem wartości specyficznych dla urządzenia i kilku problemów, które zostały zanotowane na poniższej liście, można użyć tych sekcji i dyrektyw, aby zainstalować winUSB dla dowolnego urządzenia USB. Te elementy listy opisują dyrektywy Dołączanie i dyrektywy w poprzednim pliku inf.
USB_Install: dyrektywy Include i Needs w sekcji USB_Install są wymagane do zainstalowania WinUSB. Nie należy modyfikować tych dyrektyw.
USB_Install.Services: dyrektywa Include w sekcji USB_Install.Services zawiera dostarczone przez system .inf dla WinUSB (Winusb.inf). System Windows instaluje ten plik inf, jeśli nie jest jeszcze w systemie docelowym. Dyrektywa Needs określa sekcję w pliku Winusb.inf , która zawiera informacje wymagane do zainstalowania Winusb.sys jako sterownika funkcji urządzenia. Nie należy modyfikować tych dyrektyw.
USB_Install.HW: ta sekcja jest kluczem w pliku inf. Określa globalnie unikatowy identyfikator (GUID) interfejsu urządzenia dla twojego urządzenia. Dyrektywa AddReg ustawia określony identyfikator GUID interfejsu w standardowej wartości rejestru. Po załadowaniu Winusb.sys jako sterownika funkcyjnego urządzenia, odczytuje wartość z klucza rejestru DeviceInterfaceGUIDs i używa określonego identyfikatora GUID do reprezentacji interfejsu urządzenia. Należy zastąpić identyfikator GUID w tym przykładzie takim, który został utworzony specjalnie dla urządzenia. Jeśli protokoły dla urządzenia się zmienią, utwórz nowy identyfikator GUID interfejsu urządzenia.
Uwaga
Oprogramowanie w trybie użytkownika musi wywołać metodę SetupDiGetClassDevs , aby wyliczyć zarejestrowane interfejsy urządzeń skojarzone z jedną z klas interfejsów urządzeń określonych w kluczu DeviceInterfaceGUIDs. SetupDiGetClassDevs zwraca uchwyt urządzenia dla urządzenia, które oprogramowanie w trybie użytkownika musi następnie przekazać do procedury WinUsb_Initialize w celu uzyskania uchwytu WinUSB dla interfejsu urządzenia. Aby uzyskać więcej informacji na temat tych procedur, zobacz How to Access a USB Device by Using WinUSB Functions (Jak uzyskać dostęp do urządzenia USB przy użyciu funkcji WinUSB).
Za każdym razem, gdy Winusb.sys jest ładowany, rejestruje interfejs urządzenia zawierający klasy interfejsów urządzeń zdefiniowane w rejestrze w kluczu DeviceInterfaceGUIDs.
HKR,,DeviceInterfaceGUIDs, 0x10000,"{D696BFEB-1734-417d-8A04-86D01071C512}"
Jak utworzyć pakiet sterowników, który instaluje Winusb.sys
Aby użyć winUSB jako sterownika funkcji urządzenia, należy utworzyć pakiet sterowników. Poniżej przedstawiono procedurę tworzenia pakietu sterowników instalowanych Winusb.sys:
Pobierz zestaw sterowników systemu Windows (WDK) i zainstaluj go na maszynie.
Utwórz folder pakietu sterowników w systemie, w którym jest podłączone urządzenie USB, na przykład C:\UsbDevice.
Napisz plik inf, który instaluje Winusb.sys jako sterownik funkcji dla urządzenia USB i zapisz go w folderze pakietu sterowników. Przykład sposobu zapisu tego pliku można znaleźć w sekcji Pisanie niestandardowego inf dla instalacji WinUSB tego dokumentu.
Utwórz podpisany plik wykazu dla pakietu. Ten plik jest wymagany do zainstalowania winUSB w systemie Windows. Więcej informacji na temat tworzenia i testowania podpisanych plików katalogu można znaleźć w przewodnikuKernel-Mode podpisywania kodu w witrynie Centrum deweloperów systemu Windows — sprzęt.
Podłącz urządzenie USB do komputera.
Otwórz Menedżera urządzeń na komputerze. Postępuj zgodnie z instrukcjami kreatora aktualizacji oprogramowania sterowników i wybierz instalację ręczną. Po wyświetleniu monitu podaj lokalizację folderu pakietu sterowników, aby ukończyć instalację.
Tematy pokrewne
- Architektura i moduły WinUSB
- Wybieranie modelu sterowników do opracowywania sterownika klienta USB
- Jak uzyskać dostęp do urządzenia USB przy użyciu funkcji WinUSB
- Zarządzanie energią WinUSB
- Funkcje WinUSB do modyfikacji zasad dla kanałów przesyłowych
- funkcje WinUSB
- Wprowadzenie do winUSB dla deweloperów