IKsInterfaceHandler 介面 (ksproxy.h)
IKsInterfaceHandler 介面會根據為已建立的連接所指定的KSPIN_INTERFACE結構,提供將樣本封送處理至核心的方法。 此介面的 IID IID_IKsInterfaceHandler。
繼承
IKsInterfaceHandler 介面繼承自 IUnknown 介面。
方法
IKsInterfaceHandler 介面具有這些方法。
IKsInterfaceHandler::KsCompleteIo KsCompleteIo 方法會清除擴充標頭,並在輸入與輸出 (I/O) 完成之後釋出媒體範例。 |
IKsInterfaceHandler::KsProcessMediaSamples KsProcessMediaSamples 方法會處理媒體範例。 |
IKsInterfaceHandler::KsSetPin KsSetPin 方法會通知串流介面處理程式有關傳遞數據時要與其通訊的針腳。 |
備註
為了保持 Proxy 中性,與用來串流數據的介面有關,介面處理程式會載入,以將 DirectShow 媒體範例轉譯至核心層級驅動程式或從核心層級驅動程式轉譯。 介面處理程式會實作 IKsInterfaceHandler 介面的方法,以在所有媒體範例上執行前置處理和後置處理,併發出輸入與輸出完成的訊號, (I/O) 。
每個介面處理程式都可以使用自己的 方法封送處理媒體範例。 KS Proxy 實作的標準介面處理程式會針對接收作業使用IOCTL_KS_WRITE_STREAM,並針對傳送作業使用IOCTL_KS_READ_STREAM,但自定義介面處理程式可以使用一些其他方法。
連接針腳時,Proxy 會使用 KSPIN_INTERFACE 結構的 Set 成員中的 GUID 來判斷要載入的介面處理程式。 介面處理程式會註冊為該 GUID 類別下的 COM 伺服器。 介面處理程式必須處理介面集內介面的所有變化。 網橋接腳不預期會串流數據,而且不會為其載入介面處理程式。
在介面處理程式上,透過 CoCreateInstance 建立要求時,伺服器一律會顯示外部 IUnknown ,用來建立 COM 物件。 這個 IUnknown 是載入此介面處理程式之 pin 物件上的介面。 IUnknown 介面指標可用來從針腳查詢資訊或介面,例如 IKsControl 介面,雖然在載入介面處理程式時可能尚未建立核心模式針腳。 外部物件上不應該透過取得任何介面留下任何參考,因為它會產生循環參考計數。 使用沒有參考計數的介面是可接受的,因為外部對象擁有處理程式,而且根據定義,當外部對象的參考計數達到零時就會終結。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | ksproxy.h |