功能拓扑

为了能够以适用于所有网络类型以及调谐器和解码器的硬件和软件实现的方式生成广播接收器筛选器图,广播体系结构采用 DirectShow 中熟悉的筛选器图概念,并将其抽象化为 功能拓扑的概念。 功能拓扑(如筛选器图)描述传入信号上发生的一系列转换。 但是,与筛选器图不同,功能拓扑不描述任何实际的筛选器或软件模块;或如何在软件或硬件中实现操作。 相反,它描述了抽象 控制节点的配置,其中每个节点都表示一些常见的离散操作。

根据计算机上安装的硬件和软件组件的类型,相同的功能拓扑可能会导致不同的筛选器图配置或 实际拓扑。 例如,如果硬件供应商选择在同一线路卡实现调谐器和解调器,则内核流式处理 (KS) 代理模块会将筛选器图中的此硬件设备表示为具有两个内部控制节点的单个筛选器。 BDA 设备筛选器将自身与更传统的 DirectShow 筛选器区分开来,因为单个 BDA 设备筛选器可以封装内置于单个功能模块 ((例如线路卡或芯片) ) (控制节点实现) 的许多硬件功能。

控制节点提供的函数由 GUID 唯一标识。 有关节点说明 GUID 的定义,请参阅 BDA 节点类别 GUID。 在图形生成过程中,网络提供程序筛选器使用这些 GUID 来确定哪些节点可用于支持特定的网络类型或优化空间。 广播接收器筛选器图中的筛选器通过 COM 接口指示节点类型和它们支持的引脚类型。 筛选器的 BDA 驱动程序通过 KS 属性集指示相同的信息。 筛选器包含描述其节点类型、引脚类型以及引脚和节点的连接方式的数据结构。 此信息称为筛选器的 模板拓扑。 下图演示了模板拓扑。

说明模板拓扑的示意图。

上图中的模板拓扑包含五种不同的节点类型和四种不同的引脚类型。 引脚和节点类型的编号是筛选器分配的任意标识符。 但是,每个节点类型都与网络提供程序可以检查的节点说明 GUID 相关联。 每种节点类型在拓扑中只能出现一次,但由于筛选器任意将标识符分配给节点类型,因此同一控制节点 GUID 可以与多个节点类型相关联。 例如,使用数字 1 和 3 标识的节点类型可以表示具有两个不同输出路径的同一控制节点 GUID。 模板拓扑必须用两个单独的节点类型来表示此方案。 在模板拓扑中连接这些引脚和节点类型的行显示筛选器支持的路径。

网络提供程序必须检查此拓扑,并确定筛选器对任何特定图中的信号执行的转换。 有关描述模板拓扑的数据结构的详细信息,请参阅 广播驱动程序体系结构微型驱动程序