Freigeben über


HID-Clienttreiber

Wenn ein vom System bereitgestellter HID-Minitreiber den Port oder Bus eines Geräts nicht unterstützt, ist ein vom Hersteller bereitgestellter Minitreiber erforderlich.

Die folgende Abbildung veranschaulicht einen Treiberstapel für ein generisches HIDClass-Gerät (das optionale und erforderliche vom Anbieter bereitgestellte Komponenten verwenden kann).

Diagramm zur Veranschaulichung eines Treiberstapels für ein generisches Hidclass-Gerät.

Windows erstellt den Treiberstapel wie folgt:

  • Der Transportstapel erstellt ein physisches Geräteobjekt (PDO) für jedes angeschlossene HID-Gerät und lädt den entsprechenden HID-Transporttreiber, der wiederum den HID-Klassentreiber lädt.
  • Der HID-Klassentreiber erstellt eine PDO für den TLC . Bei komplexen Geräten mit mehreren TLC erstellt der HID-Klassentreiber eine PDO für jeden TLC und stellt sicher, dass die dem TLC zugeordnete Hardware-ID einen Bezeichner enthält, der jedes Geräteobjekt darstellt.
  • Eine vom Anbieter bereitgestellte Funktion oder Filtertreiber erstellt eine FDO- oder Filter-DO für eine HID-Sammlung.
  • Alternativ kann eine vom Anbieter bereitgestellte Anwendung das Gerät mithilfe von SetupDI*-APIs öffnen, um das Gerät zu identifizieren und dann HID-unterstützte Routinen für die Kommunikation mit dem Gerät zu identifizieren. Solche Geräte sollen im RAW-Modus geöffnet werden.

Wenn die vom System bereitgestellten Minidriver-Vorgänge kein Gerät unterstützen, ist ein vom Hersteller bereitgestellter HID-Minitreiber erforderlich. Sie können diesen Minidriver auf zwei Arten implementieren:

  • HID-Clienttreiber
  • Anwendung greift direkt auf HID zu

Wenn ein Anbieter einen Treiber (außer einem Minitreiber) bereitstellt, ist dieser Treiber:

  • Muss die Mindestanforderungen für den Windows-Treiber erfüllen. Im Idealfall sollte dies auf dem Benutzermodustreiberframework (UMDF) oder dem Kernelmodustreiberframework (KMDF) basieren. Eine weniger ideale Lösung ist das Erstellen eines WDM-Funktionstreibers, wie unter Windows-Treibermodell beschrieben.
  • Unterstützt in der Regel eine vom Hersteller definierte Geräteschnittstelle. Weitere Informationen finden Sie unter Geräteschnittstellenklassen. Treiber auf oberster Ebene oder Benutzermodusanwendungen verwenden die benutzerdefinierte Schnittstelle, um auf die Geräte zuzugreifen, die der Anbietertreiber betreibt. Die benutzerdefinierte Schnittstelle kann Funktionen hinzufügen oder vielleicht die Schnittstelle zum HID-Klassentreiber vereinfachen.

Wenn der Treiber kein Funktionstreiber oder Filtertreiber ist, kann er Plug & Play Benachrichtigung verwenden, um HID-Sammlungen zu finden. Nachdem eine Sammlung gefunden wurde, öffnet der Treiber die Auflistung und betreibt sie auf die gleiche Weise wie ein Funktions- oder Filtertreiber.

Wichtiger Hinweis:

  • Wenn ein vom Anbieter bereitgestellter Funktionstreiber eine FDO- oder Filter-DO für eine HID-Auflistung erstellt, sollte er nicht das FsContext-Feld von FILE_OBJECT verwenden, um dateiobjektspezifische Daten zu speichern. Das Feld FsContext ist für den HID-Klassentreiber reserviert. Wenn ein anderer Treiber im Stapel dateiobjektspezifische Kontextdaten speichern muss, sollte er stattdessen das Feld FsContext2 verwenden.
  • Wenn mehrere Geräte an das PDO angefügt sind, gibt es keinen integrierten Mechanismus, um zu bestimmen, welches Gerät das FsContext2-Feld verwenden kann.