UFX-Objekte und -Handles, die von einem USB-Funktionsclienttreiber verwendet werden
Die USB-Funktionsklassenerweiterung (UFX) verwendet die WDF-Objektfunktionalität, um diese USB-spezifischen UFX-Objekte zu definieren.
Zusammenfassung
- UFX-Objekte werden vom Funktionscontrollertreiber verwendet, um Übertragungen an und von Endpunkten zu verarbeiten.
- Diese Objekte sind Handles für WDF-Objekte und werden von UFX auf Anforderung des Clienttreibers erstellt. Die Lebensdauer jedes Objekts wird von UFX verwaltet.
Wichtige APIs
Die USB-Funktionsklassenerweiterung (UFX) verwendet die WDF-Objektfunktionalität, um diese USB-spezifischen UFX-Objekte zu definieren.
Diese Objekte sind Handles für WDF-Objekte und werden von UFX auf Anforderung des Funktionsclienttreibers erstellt. Optional kann der Clienttreiber diesen Objekten einen Kontext zuordnen, der zum Zeitpunkt der Erstellung übergeben werden kann. Jedes von UFX erstellte WDF-Objekt kann potenziell über zwei Gerätekontexte verfügen: Einen Gerätekontext, der von UFX zum Zeitpunkt der Objekterstellung festgelegt wird; der andere Gerätekontext, der vom Clienttreiber übergeben wird und in UFX mithilfe von WdfObjectAllocateContext festgelegt wird, nachdem das WDF-Objekt erstellt wurde.
UFXDEVICE: USB-Geräteobjekt
Stellt das vom Controller erstellte USB-Gerät dar. Das -Objekt ist für die Verwaltung von USB-Zuständen gemäß der USB-Protokollspezifikation und die Verwaltung eines oder mehrerer Endpunkte verantwortlich, die dem USB-Gerät zugeordnet sind. Der Funktionscontrollertreiber erstellt dieses Objekt innerhalb des EvtDriverDeviceAdd-Rückrufs , indem die UfxDeviceCreate-Methode aufgerufen wird .
EVT_UFX_DEVICE_HOST_CONNECT Initiiert die Verbindung mit dem Host.
EVT_UFX_DEVICE_HOST_DISCONNECT Deaktiviert die Kommunikation des Funktionscontrollers mit dem Host.
EVT_UFX_DEVICE_ADDRESSED Weist eine Adresse auf dem Funktionscontroller zu.
EVT_UFX_DEVICE_ENDPOINT_ADD Erstellt ein Standardendpunktobjekt.
EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD Erstellt ein Standardendpunktobjekt.
EVT_UFX_DEVICE_USB_STATE_CHANGE Aktualisieren Sie den Status des USB-Geräts.
EVT_UFX_DEVICE_PORT_CHANGE Aktualisieren Sie den Typ des neuen Ports, an den das USB-Gerät angeschlossen ist.
EVT_UFX_DEVICE_PORT_DETECT Initiieren sie die Porterkennung.
EVT_UFX_DEVICE_REMOTE_WAKEUP_SIGNAL Initiieren sie die Remoteaktivierung auf dem Funktionscontroller.
EVT_UFX_DEVICE_DETECT_PROPRIETARY_CHARGER Initiiert die Erkennung proprietärer Ladegeräte.
EVT_UFX_DEVICE_PROPRIETARY_CHARGER_RESET Setzt das proprietäre Ladegerät zurück.
EVT_UFX_DEVICE_PROPRIETARY_CHARGER_SET_PROPERTY Legt die Ladeinformationen fest, die zum Aktivieren des Aufladens über USB verwendet werden.
UFXENDPOINT: USB-Endpunktobjekt
Stellt eine logische Verbindung zwischen dem Host und dem Gerät dar. Das -Objekt ist für die Übertragung von Daten zum/vom Host verantwortlich. Für jedes Geräteobjekt kann ein oder mehrere Endpunkte vorhanden sein. Der Standardendpunkt ist immer der Steuerungsendpunkt, und der Rest sind klassentreiberspezifische Objekte. Der Funktionscontrollertreiber erstellt das -Objekt im EVT_UFX_DEVICE_ENDPOINT_ADD Rückruf durch Aufrufen der UfxEndpointCreate-Methode .