Aufrufen des Dual-Role-Controllers für ein USB Typ-C-Windows-System

Zusammenfassung

  • OEM-Bring-Aufgaben für einen Controller mit zwei Rollen, der über einen USB-Typ-C-Anschluss verfügt

Gilt für:

  • Windows 10 Mobile

Wichtige APIs

Die USB-Rollenschaltertreiber (URS) sind eine Reihe von WDF-Klassenerweiterungen und deren Clienttreiber, die die Rollenwechselfunktion eines Controllers mit zwei Rollen verarbeiten. Wenn Ihr System über einen Controller mit zwei Rollen verfügt, können Sie die Rolle des Systems je nach Gerät wechseln, das an den Partnerport des USB-Typ-C-Anschlusses des Systems angeschlossen ist. Dies ermöglicht interessante Szenarien wie kabelgebundenes Andocken.

Systeme können so entworfen werden, dass der USB-Controller mit zwei Rollen Windows benötigt, um ihn entweder im Host- oder Funktionsmodus zu konfigurieren. Diese Designs verwenden den USB-Rollenschalterstapel. Wenn das System keinen Synopsys- oder ChipIdea-Controller mit zwei Rollen verwendet, müssen Sie einen USB-Rollenschalter-Clienttreiber für den Dual-Role-Controller des Systems schreiben.

Hinweis

Systeme können so entworfen werden, dass der USB-Anschluss mit zwei Rollen Windows benötigt, um ihn entweder im Host- oder Funktionsmodus zu konfigurieren. Diese Designs verwenden den USB-Rollenschalterstapel. Wenn das System keinen Synopsys-Controller mit dualen Rollen verwendet, müssen Sie einen USB-Rollenschalter-Clienttreiber für den Controller mit zwei Rollen des Systems schreiben.

Der Clienttreiber verarbeitet Hardwareereignisse und meldet sie an die Klassenerweiterung. Im Falle von Hardwareereignissen mit Rollenwechseln entscheidet URS über die Rolle und lädt folglich die Treiber für diese Rolle. Wenn sich der Controller in der Hostrolle befindet, werden die hostseitigen USB-Treiber geladen. für eine Funktionsrolle werden die geräteseitigen Treiber geladen.

Auf Systemen mit USB-Micro-AB-Anschlüssen trifft der Clienttreiber für den Controller mit zwei Rollen diese Entscheidung basierend auf dem ID-Pin im Connector mithilfe der ihm zugewiesenen Interruptressourcen. Bei Systemen mit USB-Typ-C-Anschlüssen wird diese Entscheidung vom Clienttreiber für den Connector getroffen. Dieser Treiber bestimmt die Rolle basierend auf den CC-Pins und meldet die Ergebnisse an den USB-Connector-Manager (UCM), der die Ergebnisse dann an die Rollenwechseltreiber sendet.

USB-Rollenschaltertreiber.

1. Aktivieren des URS-Treibers im System ACPI

Um URS verwenden zu können, müssen Sie ACPI-Änderungen vornehmen. Ersetzen Sie das Gerät, auf das die USB-geräteseitigen Treiber laden, durch ein Gerät, auf das der URS geladen werden muss. Weitere Informationen zum Ändern der ACPI-Definition finden Sie im Beispiel unter USB Dual Role Driver Stack Architecture . Stellen Sie sicher, dass Sie die Interruptressource entfernen. Dies ist für USB Type-C nicht erforderlich.

2. Laden Sie die USB-Rollenschaltertreiber für den Controllertreiber mit zwei Rollen.

USB-Rollenwechselstapel.

  • Wenn Ihr System ChipIdea- und Synopsys-Controller verwendet, laden Sie die im Lieferumfang von Microsoft bereitgestellten Clienttreiber für ChipIdea- und Synopsys-Controller.

    Zum Laden des Treibers müssen Sie ein Treiberinstallationspaket erstellen. Die INF-Datei muss über die Include-Needs-Anweisung verfügen, die auf den mitgelieferten INF für die unterstützten Controller verweist. Die mitgelieferte INF enthält bereits Hardware-IDs anderer Controller. Dieser Schritt ist erforderlich, wenn die Hardware-ID Ihres Dual-Role-Controllers keine Der Hardware-IDs im mitgelieferten INF ist. Wenden Sie sich an Ihren SoC-Anbieter.

    Weitere Informationen finden Sie unter "URS-Treiberpaket" unter Treiberinstallationspakete.

  • Wenn Ihr System einen benutzerdefinierten Controller verwendet, schreiben Sie einen Rollenwechselclienttreiber. Weitere Informationen finden Sie unter

    Programmierreferenz für USB-Controllertreiber mit dualer Rolle