Share via


Implementierung der USB-Videoklasse

Der von Microsoft bereitgestellte USB Video Class (UVC)-Treiber (usbvideo.sys) ist ein pinzentrierter AVStream-Minitreiber. Es wird eine Filterfactory für jedes usb Video Class?kompatible Gerät erstellt, das vom Betriebssystem aufgezählt instance. Der Treiber erstellt auch eine Pinfactory für jedes Eingabe- oder Ausgabeterminal auf dem Gerät, wobei der DataFlow-Member der KSPIN_DESCRIPTOR-Struktur auf den relevanten Wert festgelegt ist.

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

Basierend auf der Anzahl und den Typen von Steuerelementen, die vom Gerät unterstützt werden, meldet USB Video Class dynamisch Filter-, Pin- und Node-Eigenschaftssätze über die KS-Automatisierungstabellen in den AVStream-Filter- und Pindeskriptoren.

Basierend auf den Datenformaten, die von jedem Video- oder Standbilddatenendpunkt auf dem Gerät unterstützt werden, meldet usb Video Class die entsprechende Liste der unterstützten KS-Datenbereiche und einen Datenschnitthandler im jeweiligen AVStream-Pindeskriptor. Der USB Video Class-Treiber exportiert die Informationen über das Kernel Streaming Proxy-Modul .

Der USB Video Class-Treiber unterstützt auch die Audio-/Videostreamsynchronisierung. usbvideo.sys können als KS-master Uhr dienen und Zeitstempel zu Videobeispielen hinzufügen. Die USB-Videoklassenspezifikation enthält Details dazu, wie die Hardware Zeitinformationen für den Klassentreiber bereitstellen soll.

Um mit der USB-Videoklasse zu kommunizieren, rufen Clients im Benutzermodus DirectShow- oder Media Foundation-Schnittstellen 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.