Übersicht über die Entwicklung von Windows-Treibern für USB-Typ-C-Connectors
Sie müssen einen Treiber für den Connector schreiben, wenn Ihr USB-Typ-C-System keinen PD-Zustandscomputer implementiert oder den Zustandscomputer implementiert, aber UCSI nicht über einen Nicht-ACPI-Transport unterstützt. Wenn dies der Fall ist, können Sie den von Microsoft bereitgestellten UCSI-Treiber laden.
Lösungsvorschläge
In der folgenden Tabelle werden Lösungen empfohlen, die auf Hardware- oder Firmwarefunktionen basieren:
Hardware-/Firmwarefunktionen | Nicht abtrennbar | Add-On-Karte |
---|---|---|
Der USB-Typ-C-Stecker verfügt nicht über einen PD-Zustandsautomaten. | Schreiben Sie einen Clienttreiber in UcmTcpciCx. Starten mit dem UcmTcpciCx-Portcontrollerclienttreiber |
Schreiben Sie einen Clienttreiber in UcmCx. Beginnen Sie mit dem UcmCx-Beispiel. |
Der Connector ist UCSI-kompatibel mit ACPI. | Laden Sie den im Lieferumfang enthaltenen Treiber, UcmUcsiCx.sys und UcmUcsiAcpiClient. Weitere Informationen finden Sie unter UCSI-Treiber (USB Type-C Connector System Software Interface). | – |
Der Connector ist OHNE ACPI UCSI-kompatibel. | Schreiben Sie einen Clienttreiber in UcmUcsiCx. Weitere Informationen finden Sie unter Schreiben eines UCSI-Clienttreibers. Beginnen Sie mit dem UcmCx-Beispiel , und ersetzen Sie die ACPI-Teile durch Ihre Implementierung für den erforderlichen Bus. |
Schreiben Sie einen Clienttreiber in UcmCx. |
Verfügt über PD-Zustandscomputer, ist aber nicht UCSI-kompatibel. | Schreiben Sie einen Clienttreiber in UcmCx. Beginnen Sie mit dem UcmCx-Beispiel. |
Schreiben eines Clienttreibers in UcmCx Beginnen Sie mit dem UcmCx-Beispiel. |
In diesem Abschnitt
Lesen Sie die folgenden Themen, um die in der vorherigen Tabelle vorgeschlagenen Lösungen zu implementieren:
Thema | BESCHREIBUNG |
---|---|
Architektur: USB-Typ-C-Design für ein Windows-System | Beschreibt ein typisches Hardwaredesign eines USB-Typ-C-Systems und die von Microsoft bereitgestellten Treiber, die die Hardwarekomponenten unterstützen. |
Aufrufen des Funktionscontrollers auf einem USB Typ-C-Windows-System | Der Treiber für den Funktionscontroller informiert das Betriebssystem über die Ladeebenen, die der USB-Typ-C-Anschluss unterstützt, und benachrichtigt das Batteriesubsystem, wann es mit dem Laden beginnen kann und wie viel Strom das Gerät maximal ziehen kann. |
Aufrufen des Dual-Role-Controllers für ein USB Typ-C-Windows-System | Die USB-Rollenschaltertreiber (URS) sind eine Reihe von WDF-Klassenerweiterungen und deren Clienttreiber, die die Rollenwechselfunktion eines Controllers mit zwei Rollen behandeln. 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. |
Schreiben eines USB-Typ-C-Connectortreibers | Beschreibt den USB-Connector-Manager (UCM), der einen USB-Typ-C-Anschluss verwaltet, und das erwartete Verhalten eines Connectortreibers. |
Schreiben eines USB-Typ-C-Portcontrollertreibers | Beschreibt, wie ein USB-Typ-C-Portcontrollertreiber geschrieben wird, der mit einem USB-Typ-C-Anschluss ohne PD-Zustandscomputer kommuniziert. |
Schreiben eines UCSI-Clienttreibers | Beschreibt, wie ein Treiber für einen UCSI-kompatiblen Controller geschrieben wird, der den Nicht-ACPI-Transport verwendet. |
Schreiben eines USB-Typ-C-Richtlinien-Manager-Clienttreibers | Der von Microsoft bereitgestellte USB-Typ-C-Richtlinien-Manager überwacht die Aktivitäten von USB-Typ-C-Anschlüssen. Windows, Version 1809, führt eine Reihe von Programmierschnittstellen ein, mit denen Sie einen Clienttreiber in Policy Manager schreiben können. Der Clienttreiber kann an den Richtlinienentscheidungen für USB-Typ-C-Connectors teilnehmen. Mit diesem Satz können Sie einen Kernelmodus-Exporttreiber oder einen Benutzermodustreiber schreiben. |
Verwandte Abschnitte
- Schreiben eines URS-Clienttreibers (USB Role-Switch)
- Programmierreferenz für USB-Controllertreiber mit dualer Rolle
- Schreiben eines USB-Funktionsclienttreibers
- Programmierreferenz für USB-Funktionscontroller