WDM 音频驱动程序简介

内核流式处理 (KS) 服务支持音频和其他类型连续媒体的数据流内核模式处理。 从概念上讲,流沿着包含一些处理节点的数据路径流动时,将进行处理。 一组相关节点组合在一起,形成 KS 筛选器,该筛选器表示或多或少独立的流处理功能块。 可以通过将多个筛选器级联在一起以模块化方式构造更复杂的函数,以形成筛选器图

典型的音频适配器卡可能包含音频设备,用于通过一组扬声器播放波次流,将音频信号从麦克风转换为波次流,以及合成 MIDI 流中的声音。 适配器驱动程序可以将其中每个音频设备包装在它向操作系统公开的 KS 筛选器中。 操作系统将筛选器连接到其他筛选器,以形成代表应用程序程序处理音频流的筛选器图。

KS 筛选器通过引脚连接在一起。 音频筛选器上的引脚可视为音频插孔。 当客户端需要将数据流路由到或传出该筛选器时,客户端会在筛选器上实例化输入或输出引脚。 在某些上下文中,术语引脚可以互换使用。

上游筛选器的输出引脚连接到下游筛选器的输入引脚。 输出引脚中的数据流必须具有输入引脚可以接受的数据格式。 数据缓冲通常需要以输出引脚生成数据和输入引脚消耗数据的速率消除瞬间不匹配。

KS 筛选器作为内核模式驱动程序对象实现,该对象封装了一些相关的流处理函数。 该功能可以在软件或硬件中实现。 在此模型中,音频适配器可以作为硬件设备集合进行查看,适配器驱动程序会将其中每个设备作为单个筛选器公开给音频系统。

适配器驱动程序向音频系统公开筛选器工厂集合。 每个筛选器工厂都能够实例化特定类型的筛选器:

  • 如果适配器包含一个或多个功能相似或完全相同的设备,驱动程序会将这些设备的筛选器组合到同一筛选器工厂中。

  • 如果适配器包含多种不同类型的设备,这些设备会通过多个不同的筛选器工厂显示。

KS 筛选器向音频系统公开引脚工厂的集合。 每个引脚工厂都能够实例化特定类型的引脚。 如果筛选器可以提供一个或多个在功能上相似或完全相同的引脚,则会将这些引脚组合到同一引脚工厂中。 例如,执行音频混合的筛选器可能有一个引脚工厂可以实例化单个输出引脚,另一个引脚工厂可以实例化多个输入引脚。

KS 服务基于 Windows 驱动程序模型构建。 请注意,术语 KS 筛选器必须与术语筛选器驱动程序区分开来,后者是另一个 WDM 概念。 筛选器驱动程序驻留在 WDM 驱动程序堆栈中,可以截获和修改通过堆栈传播的 I/O 请求数据包 (IRP)。 上层和较低级别的筛选器驱动程序分别位于函数驱动程序的上方和下方。 在本部分中,术语筛选器是指 KS 筛选器,而不是筛选器驱动程序,除非另有说明。 有关筛选器驱动程序的详细信息,请参阅 WDM 驱动程序的类型

本节包含下列主题:

WDM 音频驱动程序的基本功能

供应商音频驱动程序选项

WDM 音频术语

示例音频驱动程序

KsStudio 实用程序

有关 WDM 音频体系结构新功能的更新和信息,请参阅音频技术网站。