音频筛选器

KS 筛选器是内核对象,由内核对象句柄标识。 在下图中,中心的大型框是表示音频设备的 KS 筛选器。 数据流从左侧流入筛选器,通过几个节点进行处理,并在右侧退出筛选器。 过滤器由过滤器工厂创建,显示为过滤器底部带有虚线边缘的一个框。

显示一个具有两个节点的 KS 过滤器的图表,表示数据流动的音频设备。

在图中,滤波器上实例化了两个引脚。 左侧的引脚是数据接收器,右侧的引脚是数据源。 数据流经接收器引脚进入筛选器,并通过源引脚从筛选器流出。

根据惯例,KS 中的源和汇点的使用以缓冲区为中心(或者,更普遍地说,以连接为中心)。 在一个筛选器上的源引脚连接到另一个筛选器的接收器引脚时,通常需要数据缓冲区。 缓冲区平滑了数据从源引脚到达和进入接收引脚时的速率不规则性。 (当然,并非所有连接都需要缓冲。同一适配器卡上的两台设备之间可能发生无缓冲连接,例如,接收器和源数据速率更易于匹配。

相比之下,混音器 API 中的 SRC 和 DST(源和目标)混音器线的术语是以设备为中心的。

  • 流通过 SRC 混音器线进入混音器设备。

  • 流通过 DST 混音器线退出混音器设备。

换句话说,SRC 混音器线映射到 KS 筛选器上的数据汇引脚,而 DST 混音器线映射到数据源引脚。 有关详细信息,请参阅 内核流式处理拓扑到音频混音器 API 翻译

为了简单起见,该图省略了引脚生成器,这些生成器负责创建引脚实例。

除了数据接收器和数据源之外,引脚和筛选器还可以是 IRP 接收器和 IRP 源。 引脚和过滤器不仅可以接收 IRP,还可以发送 IRP。 图中的三个深色箭头表示IRP。 图左侧的引脚是 IRP 接收器。 右侧的引脚是 IRP 源。 该图还显示了一个IRP被发送到筛选器对象本身。