Share via


WinUSB-Architektur und -Module

WinUSB besteht aus zwei hauptkomponenten:

  • Winusb.sys ist ein Kernelmodustreiber, der entweder als Filter- oder Funktionstreiber über den Protokolltreibern im Kernelmodus-Gerätestapel eines USB-Geräts installiert werden kann.
  • Winusb.dll ist eine Benutzermodus-DLL, die WinUSB-Funktionen verfügbar macht. Anwendungen können diese Funktionen verwenden, um mit Winusb.sys zu kommunizieren, wenn sie als Funktionstreiber eines Geräts installiert ist.

Für Geräte, die keinen benutzerdefinierten Funktionstreiber benötigen, können Winusb.sys im Kernelmodusstapel des Geräts als Funktionstreiber installiert werden. Benutzermodusprozesse können dann mit Winusb.sys kommunizieren, indem sie eine Reihe von Geräte-E/A-Steuerungsanforderungen verwenden oder WinUSB-Funktionen aufrufen.

Die folgende Abbildung zeigt einen USB-Treiberstapel, der mehrere Instanzen von Winusb.sys enthält.

winusb-Treiber und Geräteobjektstapel.

Die obige Abbildung zeigt eine WinUSB-Beispielkonfiguration, die drei Geräteschnittstellenklassen implementiert, von denen jede über eine einzelne registrierte Geräteschnittstelle verfügt:

  • Instanz 1 von Winusb.sys registriert Device Interface A, die einen Benutzermodustreiber (Usboem.dll) unterstützt.
  • Instanz 2 von Winusb.sys registriert Device Interface B, die einen Benutzermodustreiber für einen Scanner (Usbscan.exe) unterstützt, der mit Winusb.dll über einen Systemdienst (SVCHOST) kommuniziert.
  • Instanz 3 von Winusb.sys registriert Device Interface C, die ein Firmwareupdate-Hilfsprogramm (Usbfw.exe) unterstützt.

Es gibt genau eine geladene Instanz von Winusb.sys. Ein PDO kann ein nicht zusammengesetztes Gerät darstellen (z. B. Instanz 1 im Diagramm) oder eine Schnittstelle oder Schnittstellensammlung auf einem zusammengesetzten Gerät darstellen (z. B. Instanzen 2 und 3). Für Geräte der mobilen USB-Geräteklasse (Mobile Communication Device Class, WMCDC) kann ein PDO sogar mehrere Schnittstellensammlungen darstellen. (Weitere Informationen zu PDOs für WMCDC-Geräte finden Sie unter Unterstützung der Geräteklasse für drahtlose mobile Kommunikation.)

Jede Anwendung im Benutzermodus kann mit dem USB-Stapel kommunizieren, indem sie die WinUSB Dynamic Link Library (Winusb.dll) lädt und die WinUSB-Funktionen aufruft, die von diesem Modul verfügbar gemacht werden.

WinUSB(winusb.sys)-Installation
Zugreifen auf ein USB-Gerät mithilfe von WinUSB-Funktionen
WinUSB-Funktionen für Die Änderung der Piperichtlinie
WinUSB Power Management
WinUSB-Funktionen
Winusb