KsPinGetConnectedFilterInterface 函数 (ks.h)

KsPinGetConnectedFilterInterface 函数查询 Pin 连接到的筛选器,以获取指向 COM 接口的指针。

语法

KSDDKAPI NTSTATUS KsPinGetConnectedFilterInterface(
  [in]  PKSPIN     Pin,
  [in]  const GUID *InterfaceId,
  [out] PVOID      *Interface
);

参数

[in] Pin

指向 KSPIN 结构的指针。 将查询此引脚所附加到的筛选器,以查找请求的接口。

[in] InterfaceId

指向 GUID 的指针,表示要获取的接口的接口 ID。 自动为此接口执行 QueryInterface 调用。

[out] Interface

指向 PVOID 的指针。 与 COM 中一样,生成的接口指针将放入 *Interface 中。 此接口具有相应的引用计数, 并且必须由 调用方释放,如 COM 中所示。

返回值

如果接口存在于连接的筛选器上或 AVStream thunk 中,KsPinGetConnectedFilterInterface 将返回STATUS_SUCCESS。 如果返回STATUS_SUCCESS,则接口指针将存入 *Interface。 否则,它将返回STATUS_NOINTERFACE。 请注意,这对应于 COM HRESULT E_NOINTERFACE。

注解

默认情况下,对象支持 IUnknown 接口和 IKsControl 接口。 如果筛选器和连接的引脚是 AVStream 对象,则查询和返回的接口指针是直接调用其他驱动程序。 但是,如果连接的引脚和筛选器不属于 AVStream 驱动程序,则会使用 IoCallDriver 创建一个 thunk,通过同步调用包含筛选器的驱动程序来提供 IKsControl 支持。

KsPinGetConnectedFilterInterface 最常见的用法是获取 Pin 附加到的筛选器的控制接口。 然后,此控制接口可用于对连接的引脚进行属性、方法或事件调用,也可以查询已聚合到连接的筛选器上的接口。 (如果连接的筛选器是 AVStream 筛选器;AVStream 仅为 IKsControlIUnknown 提供非 AVStream 筛选器) 。

仅当 Pin 是源引脚时,才会创建 thunk;因此,仅当以下一项或多项为 true 时,调用才起作用:

  • 连接位于 AVStream 内部 (引脚的连接引脚是 AVStream 引脚) 。
  • 固定 是源固定。
否则,返回STATUS_UNSUCCESSFUL。

要求

要求
最低受支持的客户端 适用于 Microsoft Windows XP 及更高版本的操作系统以及 DirectX 8.0 及更高版本的 DirectX。
目标平台 通用
标头 ks.h (包括 Ks.h)
Library Ks.lib
IRQL PASSIVE_LEVEL

另请参阅

IKsControl

IKsReferenceClock

KsFilterGetOuterUnknown

KsGetOuterUnknown

KsPinGetConnectedPinInterface

KsPinGetReferenceClockInterface

KsRegisterAggregatedClientUnknown