Freigeben über


Implementierung der USB-Videoklasse

Der von Microsoft bereitgestellte USB Video Class (UVC)-Treiber (usbvideo.sys) ist ein pinzentrierter AVStream-Minidriver. Es erstellt eine Filterfactory für jede vom Betriebssystem aufgelistete USB-Videoklasse-kompatible Geräteinstanz. Der Treiber erstellt außerdem eine Pin-Factory für jedes Eingabe- oder Ausgabeterminal auf dem Gerät, wobei das DataFlow-Element der KSPIN_DESCRIPTOR Struktur auf den relevanten Wert festgelegt ist.

Der USB-Videoklassentreiber verwendet die von den Gerätedeskriptoren gemeldete interne Gerätetopologie, um ein Kernelstreaming(KS)-Topologiediagramm zu erstellen, das aus Filtern, Knoten und Verbindungen besteht.

Basierend auf der Anzahl und den vom Gerät unterstützten Steuerelementtypen meldet die USB-Videoklasse dynamisch Filter-, Pin- und Eigenschaftssätze von Knoten über die KS-Automatisierungstabellen in den AVStream-Filter- und Pindeskriptoren.

Basierend auf den Datenformaten, die von jedem Video- oder Stillbilddatenendpunkt auf dem Gerät unterstützt werden, meldet die USB Video Class die entsprechende Liste der unterstützten KS-Datenbereiche sowie einen Datenintersektionshandler im jeweiligen AVStream-Pin-Deskriptor. Der USB-Videoklassentreiber exportiert die Informationen über das Kernel Streaming Proxy-Modul .

Der USB-Videoklassentreiber unterstützt auch die Audio-/Videostreamsynchronisierung; usbvideo.sys können als KS-Masteruhr dienen und Videobeispielen Zeitstempel hinzufügen. Die Spezifikation der USB-Videoklasse enthält Details dazu, wie die Hardware Zeitinformationen für den Treiber der Klasse bereitstellen soll.

Um mit der USB-Videoklasse zu kommunizieren, rufen Benutzermodusclients die Schnittstellen von DirectShow oder Media Foundation auf. Diese Schnittstellen sind COM-Schnittstellenwrapper, die vom Kernelstreamingproxy als Plug-Ins definiert werden. Weitere Informationen zu Media Foundation finden Sie in der Microsoft Windows SDK-Dokumentation.