IKsInterfaceHandler-Schnittstelle (ksproxy.h)
Die IKsInterfaceHandler Schnittstelle stellt Methoden bereit, die Proben basierend auf der für die hergestellten Verbindung angegebenen KSPIN_INTERFACE Struktur im Kernel marshallen. Die IID für diese Schnittstelle ist IID_IKsInterfaceHandler.
Erbschaft
Die IKsInterfaceHandler Schnittstelle erbt von der IUnknown Schnittstelle.
Methodik
Die IKsInterfaceHandler Schnittstelle hat 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. |
Bemerkungen
Um den Proxy neutral in Bezug auf die Schnittstelle zu halten, die zum Streamen von Daten verwendet wird, werden Schnittstellenhandler geladen, um DirectShow-Medienbeispiele in und von einem Treiber auf Kernelebene zu übersetzen. Ein Schnittstellenhandler implementiert die Methoden der IKsInterfaceHandler Schnittstelle, um Vorverarbeitung und Postverarbeitung für alle Medienbeispiele durchzuführen und den Abschluss der Eingabe und Ausgabe (I/O) zu signalisieren.
Jeder Schnittstellenhandler kann Medienbeispiele mithilfe einer eigenen Methode marshallen. Der Standardschnittstellenhandler, den 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 eine 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 behandeln. Brücken-Pins werden nicht erwartet, Daten zu streamen, und Schnittstellenhandler werden für sie nicht geladen.
Auf einem Schnittstellenhandler wird eine Anforderung über CoCreateInstanceerstellt, der Server wird immer eine äußere IUnknown- angezeigt, mit der das COM-Objekt erstellt werden soll. Diese IUnknown ist eine Schnittstelle für das Pinobjekt, das diesen Schnittstellenhandler lädt. Der IUnknown Schnittstellenzeiger kann verwendet werden, um Informationen oder Schnittstellen abzufragen, z. B. die IKsControl Schnittstelle, vom Pin, obwohl der Kernelmodus-Pin möglicherweise zum Zeitpunkt des Ladens des Schnittstellenhandlers nicht erstellt wurde. Es sollte kein Verweis auf das äußere Objekt verbleiben, indem schnittstellen erfasst werden, da dadurch eine Kreisbezugsanzahl entsteht. Die Verwendung der Schnittstellen ohne Referenzanzahl ist akzeptabel, da das äußere Objekt den Handler besitzt und per Definition zerstört wird, wenn die Referenzanzahl des äußeren Objekts null erreicht.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Fenster |
Header- | ksproxy.h |