IKsInterfaceHandler-Schnittstelle (ksproxy.h)

Die IKsInterfaceHandler-Schnittstelle stellt Methoden bereit, die Beispiele basierend auf der KSPIN_INTERFACE Struktur, die für die hergestellte Verbindung angegeben wurde, in den Kernel marshallen. Die IID für diese Schnittstelle ist IID_IKsInterfaceHandler.

Vererbung

Die IKsInterfaceHandler-Schnittstelle erbt von der IUnknown-Schnittstelle .

Methoden

Die IKsInterfaceHandler-Schnittstelle verfügt über diese Methoden.

 
IKsInterfaceHandler::KsCompleteIo

Die KsCompleteIo-Methode bereinigt erweiterte Header und gibt Medienbeispiele nach Abschluss der Eingabe und Ausgabe (E/A) frei.
IKsInterfaceHandler::KsProcessMediaSamples

Die KsProcessMediaSamples-Methode verarbeitet Medienbeispiele.
IKsInterfaceHandler::KsSetPin

Die KsSetPin-Methode informiert den Streamingschnittstellenhandler über den Pin, mit dem beim Übergeben von Daten kommuniziert werden soll.

Hinweise

Um den Proxy in Bezug auf die Zum Streamen von Daten verwendete Schnittstelle neutral zu halten, werden Schnittstellenhandler geladen, um DirectShow-Medienbeispiele in einen und aus einem Treiber auf Kernelebene zu übersetzen. Ein Schnittstellenhandler implementiert die Methoden der IKsInterfaceHandler-Schnittstelle , um Vor- und Nachverarbeitung auf allen Medienbeispielen durchzuführen und den Abschluss von Eingabe und Ausgabe (E/A) zu signalisieren.

Jeder Schnittstellenhandler kann Medienbeispiele mithilfe einer eigenen Methode marshallen. Der Standardschnittstellenhandler, den der KS-Proxy implementiert, verwendet IOCTL_KS_WRITE_STREAM für den Empfangsvorgang und IOCTL_KS_READ_STREAM für den Sendevorgang, aber ein benutzerdefinierter Schnittstellenhandler kann eine andere Methode verwenden.

Wenn ein Pin verbunden ist, verwendet der Proxy die GUID im Set-Member der KSPIN_INTERFACE-Struktur , um zu bestimmen, welcher Schnittstellenhandler geladen werden soll. Der Schnittstellenhandler wird als COM-Server unter dieser GUID-Klasse registriert. Der Schnittstellenhandler muss alle Variationen der Schnittstelle innerhalb des Schnittstellensatzes verarbeiten. Es wird nicht erwartet, dass Bridge-Pins Daten streamen, und Schnittstellenhandler werden für sie nicht geladen.

In einer Schnittstellenhandler-Erstellungsanforderung über CoCreateInstance wird dem Server immer ein äußeres IUnknown angezeigt, mit dem das COM-Objekt erstellt werden soll. Dieser IUnknown ist eine Schnittstelle für das Anheftobjekt, das diesen Schnittstellenhandler lädt. Der IUnknown-Schnittstellenzeiger kann verwendet werden, um Informationen oder Schnittstellen, z. B. die IKsControl-Schnittstelle , über den Pin abzufragen, obwohl der Kernelmodus-Pin zum Zeitpunkt des Ladens des Schnittstellenhandlers möglicherweise nicht erstellt wurde. Durch das Abrufen von Schnittstellen sollte kein Verweis auf das äußere Objekt verlassen werden, da dies zu einer kreisförmigen Verweisanzahl führt. Die Verwendung der Schnittstellen ohne Verweisanzahl ist akzeptabel, da das äußere Objekt den Handler besitzt und per Definition zerstört wird, wenn die Verweisanzahl des äußeren Objekts Null erreicht.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile ksproxy.h

Weitere Informationen

Cocreateinstance

IKsControl

KSPIN_INTERFACE