Übersicht über die Entwicklung von Windows-Treibern für USB-Funktionscontroller

In diesem Artikel wird die Unterstützung im Windows-Betriebssystem für die Entwicklung eines USB-Funktionscontrollertreibers (Universal Serial Bus) beschrieben, der mit der von Microsoft bereitgestellten USB-Funktionscontrollererweiterung (UFX) kommuniziert.

Entwicklungstools und von Microsoft bereitgestellte Binärdateien

Das Windows Driver Kit (WDK) enthält Ressourcen, die für die Treiberentwicklung erforderlich sind, z. B. Header, Bibliotheken, Tools und Beispiele.

Herunterladen von Kits und Tools für Windows

Windows stellt usb-Funktionscontrollertreiber für den Posteingang bereit, z. B. UfxSynopsys.sys für die Controllerhardware von Synopsys IP. Sie erfordern in der Regel Änderungen auf Plattformebene und Validierung, die in der Regel von Hardwarepartnern oder OEMs beim Einrichten einer Plattform durchgeführt werden. Dieser Bring-Up-Prozess kann die Integration mit ACPI umfassen, um Systemtreiber über USB-An-/Abkoppelereignisse zu benachrichtigen, und eine zusätzliche Validierung mithilfe von von Microsoft bereitgestellter HLK-Tests durchzuführen. Zum Schreiben eines eigenen Controllertreibers benötigen Sie Folgendes:

  • UFX (Ufx01000.sys) als FDO geladen. Dieser Treiber ist in Windows enthalten.
  • Link zur Stubbibliothek (Ufx01000.lib). Die Stubbibliothek befindet sich im WDK. Die Bibliothek übersetzt Aufrufe des Funktionscontrollertreibers und übergibt sie an UFX.
  • Schließen Sie die im WDK bereitgestellte Ufxclient.h ein.

Zum Senden von Anforderungen aus dem Benutzermodus benötigen Sie Folgendes:

  • GenericUSBFn.sys als USB-Funktionsklassentreiber geladen. Dieser Treiber ist in Windows enthalten.
  • Schließen Sie genericusbfnioctl.h ein, die im WDK bereitgestellt wird.

Zum Senden von Anforderungen von Ihrem USB-Klassentreiber benötigen Sie Folgendes:

  • UFX (Ufx01000.sys) als FDO geladen. Dieser Treiber ist in Windows enthalten.
  • Schließen Sie usbfnioctl.h ein, die im WDK bereitgestellt wird.

Um einen Filtertreiber zu schreiben, der das Laden über proprietäre Ladegeräte verarbeitet, benötigen Sie Folgendes:

  • Entweder UfxChipidea.sys oder Ufxsynopsys.sys als Clienttreiber in UFX geladen.
  • Schließen Sie Ufxproprietarycharger.h ein, die im WDK bereitgestellt wird.

Architektur von UFX

Machen Sie sich mit dem von Microsoft bereitgestellten USB-Treiberstapel vertraut:

USB-geräteseitige Treiber in Windows

Machen Sie sich mit UFX-Objekten und -Handles vertraut

UFX erweitert die WDF-Objektfunktionalität, um eigene USB-spezifische UCX-Objekte zu definieren. Weitere Informationen zu WDF-Objekten finden Sie unter Einführung in Framework-Objekte.

Für Warteschlangenanforderungen verwendet UFX USB-spezifische Objekte. Weitere Informationen erhalten Sie unter UFX-Objekte und -Handles, die von einem USB-Funktionsclienttreiber verwendet werden.

Schreiben eines Funktionscontrollerclienttreibers

Verstehen sie das Verhalten von UFX, die Interaktion mit dem Clienttreiber und die Features, die der Clienttreiber implementieren soll.

Aufgaben für einen Funktionscontrollerclienttreiber

Abschnitten zur Programmierreferenz

Usb-Funktionsklassentreiber zu UFX-Programmierreferenz

Referenz zur Programmierung des USB-Funktionscontroller-Clienttreibers

USB-Filtertreiber zur Unterstützung proprietärer Ladegeräte