内核模式Microsoft Windows 驱动程序模型 (WDM) 音频组件包括:
WDMAud 系统驱动程序
SysAudio 系统驱动程序
KMixer 系统驱动程序
Redbook 系统驱动程序
SBEmul 系统驱动程序
SWMidi 系统驱动程序
DMusic 系统驱动程序
AEC 系统驱动程序
DRMK 系统驱动程序
拆分器系统驱动程序
端口类适配器驱动程序和 PortCls 系统驱动程序
USB 音频类系统驱动程序 (Usbaudio.sys)
AVCAudio 类系统驱动程序
WDMAud 系统驱动程序
内核模式 WDMAud 系统驱动程序(Wdmaud.sys)与用户模式 WDMAud 系统驱动程序(Wdmaud.drv)配对。 这对 WDMAud 驱动程序在用户模式的 Microsoft Windows 多媒体系统调用与内核流传输 I/O 请求之间进行转换。 WDMAud 为以下 API 执行 I/O:waveIn、waveOut、midiIn、midiOut、mixer 和 aux(Microsoft Windows SDK 文档中所述)。 内核模式 WDMAud 驱动程序是一个内核流式处理(KS)筛选器,并且是 SysAudio 系统驱动程序的客户端。
SysAudio 系统驱动程序
SysAudio 系统驱动程序(Sysaudio.sys)生成用于呈现和捕获音频内容的筛选器图。 SysAudio 驱动程序将音频筛选器图表示为 虚拟音频设备 ,并将每个虚拟音频设备注册为KSCATEGORY_AUDIO_DEVICE设备接口的实例。 (适配器驱动程序不应在此类别中自行注册,该类别专用于 SysAudio。例如,虚拟 MIDI 设备可能表示通过连接 SWMidi 驱动程序、KMixer 驱动程序和端口/微型端口驱动程序创建的筛选器图。 客户端仅与虚拟音频设备通信,而不是与构成虚拟音频设备的单个设备通信。 SysAudio 驱动程序对客户端透明,在筛选器图中配置所有 KS 筛选器,这些筛选器连接在一起形成虚拟音频设备。 以下音频流源使用 SysAudio 生成的图形:
DirectSound (请参阅 Microsoft Windows SDK 文档。
Windows 多媒体 API waveIn、waveOut、midiIn、midiOut、mixer 和 aux(请参阅 Windows SDK 文档)。
Redbook CD 数字音频(请参阅 Redbook 系统驱动程序)。
Sound Blaster 仿真器(请参阅 SBEmul 系统驱动程序。)
内核模式软件合成器(请参阅 SWMidi 系统驱动程序和 DMusic 系统驱动程序)。
DRMK 系统驱动程序
KMixer 系统驱动程序
KMixer 系统驱动程序(Kmixer.sys)是执行以下动作的 KS 筛选器:
混合多个 PCM 音频流
高质量格式转换
位深度转换
扬声器配置和通道映射
除了简单的 8 位和 16 位单声道和立体声数据格式外,KMixer 驱动程序还支持:
PCM 和 IEEE 浮点数据
大于 16 位的位深度和具有两个以上的通道的多通道格式
与头部相关的传输函数(HRTF)3D 处理
有关不同版本的 Windows 中的音量范围和默认音量级别的信息,请参阅 默认音频音量设置。
Redbook 系统驱动程序
Redbook 系统驱动程序(Redbook.sys)是用于管理 CD 数字音频呈现的 KS 筛选器。 Redbook 驱动程序是 SysAudio 系统驱动程序的客户端。 系统通过文件系统将 CD 数字音频路由到 Redbook 驱动程序,然后路由到 SysAudio 驱动程序。 CD 数字音频在首选的波形音频输出设备上呈现(在控制面板的多媒体属性页中进行设置)。
SBEmul 系统驱动程序
SBEmul 系统驱动程序(Sbemul.sys)为 MS-DOS 应用程序提供声音爆破器仿真。 SBEmul 驱动程序是 SysAudio 系统驱动程序的客户端。 为了呈现和捕获内容,SysAudio 驱动程序使用首选的波形和 MIDI 设备(如控制面板中的多媒体属性页中设置)。
声霸卡模拟仅在 Windows 98/Me 中受支持。
SWMidi 系统驱动程序
SWMidi 系统驱动程序(Swmidi.sys)是 KS 筛选器,提供软件模拟的通用 MIDI (GM) 和高质量的 Roland GS 波式合成。 当硬件合成器不可用时, midiOutXxx 应用程序使用 SWMidi。 SWMidi 筛选器从 WDMAud 系统驱动程序接收输入时间戳 MIDI 流,并将 PCM 波流输出到 KMixer 系统驱动程序。 SWMidi 在内部混合其所有语音,以形成具有 PCM 波形格式的单个双声道输出流。
DMusic 系统驱动程序
DMusic 系统驱动程序(Dmusic.sys)是支持软件仿真、高质量、可下载声音(DLS)合成的 KS 筛选器。 DMusic 驱动程序是系统提供的端口类微型端口驱动程序。 它公开单个 DirectMusic 引脚,该引脚支持 DirectMusic 流数据范围。 DMusic 筛选器从 DirectMusic 系统组件接收输入时间戳的 MIDI 流,并将 PCM 波形流输出到 KMixer 系统驱动程序。 DMusic 驱动程序在内部混合其所有语音,以形成具有 PCM 波形格式的单个双通道输出流。 DirectMusic 应用程序必须显式选择内核模式软件合成器(Dmusic.sys)来代替 DirectMusic 的默认用户模式合成器。
AEC 系统驱动程序
AEC 系统驱动程序(Aec.sys)在软件中实现了 AEC(声学回声取消)和噪声抑制算法,以支持全双工 DirectSound 应用程序。 有关详细信息,请参阅 DirectSound 捕获效果。
DRMK 系统驱动程序
DRMK 系统驱动程序(Drmk.sys)是用于解密包含 DRM 保护内容的音频流的 KS 筛选器。 有关详细信息,请参阅数字版权管理。
拆分器系统驱动程序
拆分器系统驱动程序(Splitter.sys)是一个 KS 筛选器,可以从单个输入捕获流生成两个或多个输出流。 拆分器驱动程序透明地将输入流复制到另外两个输出流,而独立于输入流的格式。
Microsoft Windows XP 及更高版本支持拆分器驱动程序。 有关详细信息,请参阅 AVStream 拆分器。
端口类适配器驱动程序和 PortCls 系统驱动程序
端口类适配器驱动程序使用端口/微型端口驱动程序体系结构来支持音频设备。 PortCls 驱动程序包括对 ISA 和 PCI 音频设备的内置驱动程序支持。 尽管 PortCls 系统驱动程序(Portcls.sys)还提供了供应商提供的端口类适配器驱动程序的框架,但Microsoft建议供应商使用系统提供的端口类适配器驱动程序来支持 ISA 和 PCI 音频设备。 PortCls 框架还可用于为其他硬件总线上的音频设备或仅软件设备构建驱动程序。 有关详细信息,请参阅 Port 类简介。
USB 音频类系统驱动程序 (Usbaudio.sys)
USBAudio 类系统驱动程序(Usbaudio.sys)为符合音频设备的通用串行总线设备类定义的 USB 音频设备提供驱动程序支持。 有关此类系统驱动程序的详细信息,请参阅 USB 音频类系统驱动程序(Usbaudio.sys)。
AVCAudio 类系统驱动程序
AVCAudio 类系统驱动程序(Avcaudio.sys)是 AVStream 微型驱动程序,为驻留在 IEEE 1394 总线上的音频设备提供驱动程序支持。 Windows XP 及更高版本中提供了对 IEEE 1394 音频设备的 AVCAudio 驱动程序和相关支持。
若要使用系统提供的驱动程序,硬件供应商应设计其音频设备,以符合以下规范的相应部分:
IEC 61883-1 和 IEC 61883-6 (IEC 60958)
AV/C 数字接口命令集通用规范版本。 3.0
AV/C 音频子单元规范 1.0
连接和兼容性管理规范 1.0
AV/C 媒体流格式信息和协商
正在进行的 AV/C 音频子单元规范更新
这些规范在 IEEE 1394 Wiki 页面 网站上进行了介绍。 AVCAudio 驱动程序支持这些规范中描述的功能的子集。
当音频设备在即插即用设备枚举期间将自身标识为符合 IEEE 1394 的音频设备时,系统会自动加载 AVCAudio 驱动程序来驱动设备。 AVCAudio 直接驱动设备,无需专有适配器驱动程序。 这意味着符合相应 IEEE 1394 规范的设备不需要专有适配器驱动程序。
Microsoft建议硬件供应商为其 IEEE 1394 音频设备使用 AVCAudio 驱动程序,而不是编写专有适配器驱动程序。
下图显示了 Windows XP 中 IEEE 1394 音频设备的驱动程序层次结构。 在 Windows XP 及更高版本中,此图中显示的所有驱动程序组件都由作系统Microsoft提供。
有关图中驱动程序组件的详细信息,请参阅以下部分: