IKsInterfaceHandler 接口 (ksproxy.h)

IKsInterfaceHandler 接口提供的方法可根据为已建立的连接指定的KSPIN_INTERFACE结构将样本封送到内核中。 此接口的 IID IID_IKsInterfaceHandler。

继承

IKsInterfaceHandler 接口继承自 IUnknown 接口。

方法

IKsInterfaceHandler 接口具有以下方法。

 
IKsInterfaceHandler::KsCompleteIo

KsCompleteIo 方法清理扩展标头,并在输入输出 (I/O) 完成后释放媒体样本。
IKsInterfaceHandler::KsProcessMediaSamples

KsProcessMediaSamples 方法处理媒体示例。
IKsInterfaceHandler::KsSetPin

KsSetPin 方法通知流式处理接口处理程序在传递数据时要与之通信的引脚。

注解

为了使代理与用于流式传输数据的接口保持中立,将加载接口处理程序以将 DirectShow 媒体示例与内核级驱动程序进行转换。 接口处理程序实现 IKsInterfaceHandler 接口的方法,以对所有媒体样本执行预处理和后处理,并指示输入输出 (I/O) 完成。

每个接口处理程序都可以使用其自己的方法封送媒体样本。 KS 代理实现的标准接口处理程序将 IOCTL_KS_WRITE_STREAM 用于接收操作,将IOCTL_KS_READ_STREAM用于发送操作,但自定义接口处理程序可以使用一些其他方法。

连接引脚时,代理使用 KSPIN_INTERFACE 结构的 Set 成员中的 GUID 来确定要加载的接口处理程序。 接口处理程序注册为该 GUID 类下的 COM 服务器。 接口处理程序必须处理接口集中接口的所有变体。 预计桥接引脚不会流式传输数据,并且不会为其加载接口处理程序。

在通过 CoCreateInstance 创建请求的接口处理程序上,始终向服务器提供一个外部 IUnknown ,用于创建 COM 对象。 此 IUnknown 是加载此接口处理程序的固定对象上的接口。 IUnknown 接口指针可用于从引脚查询信息或接口,例如 IKsControl 接口,尽管在加载接口处理程序时可能尚未创建内核模式引脚。 不应通过获取任何接口在外部对象上留下任何引用,因为这将导致循环引用计数。 使用不带引用计数的接口是可以接受的,因为外部对象拥有处理程序,并且根据定义,当外部对象的引用计数达到零时会销毁。

要求

要求
目标平台 Windows
标头 ksproxy.h

另请参阅

CoCreateInstance

IKsControl

KSPIN_INTERFACE