Windows CE 5.0:驱动程序---音频 MDD 和 PDD

转载 2007年09月14日 17:32:00

 

 

发布日期: 11/1/2004 | 更新日期: 11/1/2004

作为直接使用统一音频模型 (UAM) 或实现流式接口的替代方法,可以使用 Microsoft 提供的模型设备驱动程序 (MDD) 库。该库通过音频设备驱动程序服务提供程序接口 (DDSI) 函数实现了流式接口函数。

如果您使用 Wavemdd.lib,则必须创建匹配的、实现了这些音频 DDSI 函数的平台相关驱动程序 (PDD) 库。PDD 库通常被称为 Wavepdd.lib(尽管不要求这样)。然后,可以将这两个库链接起来,以构成音频驱动程序(通常称为 Wavedev.dll)。

一般情况下,音频硬件支持比通常适用于文件的操作集更大的操作集。例如,文件不具有音量控制和播放速度控制,但音频硬件通常具有这些控制。

流式接口的 DeviceIOControl 部分允许对文件进行任意操作,从而使得可以使用 WAV_IOControl 函数来操纵音频硬件。为了向音频硬件发送命令,OS 向 WAV_IOControl 传递了各种消息。例如,为了让音频硬件做好录制准备,中间件使用 WAV_IOControl 向音频驱动程序发送 WIDM_PREPARE 消息。

发送到音频驱动程序的消息类似于基于 Windows 的桌面 OS 上的用户模式音频驱动程序(如 Mmdrv.dll)所使用的那些消息。

因为音频驱动程序完全依赖于 DeviceIOControl 函数消息,所以流式接口的其余部分的实现相对简单。特别地,WAV_ReadWAV_SeekWAV_Write 函数仅仅是返回常数值的存根。

其他流式接口函数应该完全实现,并且遵循在这些函数的 Microsoft Windows CE API Reference 中描述的约定。

下图显示了使用 MDD 库的音频驱动程序的交互。

wavearch

 

如图所示,播放和录制声音的第一步是创建一个从应用程序到 OS 的调用。OS 将此类调用转换为对音频驱动程序的 WAV_IOControl 调用。执行这一转换的 OS 技术为 Wave API Manager。然后,音频驱动程序对硬件执行适当的操作。

设备管理器只加载和注册音频驱动程序;它并不直接参与该驱动程序的操作。

像标准流式接口驱动程序一样,音频驱动程序使用注册表项来存储配置信息以及将其本身公布给 OS。

如果该音频驱动程序尚未列在 Platform.reg 中,请创建一个 HKEY_LOCAL_MACHINE/Drivers/Builtin/Audio 注册表项来存储配置信息。

当该音频驱动程序在启动时加载时,设备管理器会为该驱动程序创建一个 HKEY_LOCAL_MACHINE/Drivers/Active 注册表项。因为设备管理器只在启动时检查音频驱动程序,所以附加音频硬件的驱动程序仍然需要在注册表的 /Builtin/Audio 部分中具有它们的注册表条目,尽管它们的硬件未内置到基于 Windows CE 的运行时映像中。

有关基于 PCI 的驱动程序的驱动程序加载模型的信息,请参阅 PCI Bus Driver Loading Process

以下列表显示了音频驱动程序的流式接口函数:

WAV_Close

WAV_Deinit

WAV_Init

WAV_IOControl

WAV_Open

WAV_PowerDown

WAV_PowerUp

WAV_Read

WAV_Seek

WAV_Write

有关这些函数的详细信息,请参阅 Waveform Audio Driver Functions。有关流式接口驱动程序的详细信息,请参阅 Stream Interface Driver Development Concepts

以下列表显示了音频驱动程序的 DDSI 函数:

PDD_AudioDeinitialize

PDD_AudioGetInterruptType

PDD_AudioInitialize

PDD_AudioMessage

PDD_AudioPowerHandler

PDD_WaveProc

有关这些函数的详细信息,请参阅 Audio PDD Functions

另请参阅

Audio Driver Development Concepts | Stream Interface Driver Development Concepts

 

wince驱动程序---音频 MDD 和 PDD

大多数 Windows CE 设备驱动程序都由一个平台相关驱动程序 (PDD) 和一个模型设备驱动程序 (MDD) 组成。整体式驱动程序 将所有 PDD 和 MDD 组合到一个驱动程序中。分层驱动程序...

如何在 Windows CE 5.0 中开发和测试设备驱动程序

发布日期 : 2005-3-31 | 更新日期 : 2005-3-31 Mike Hall Microsoft 适用于: Microsoft Windows CE version 5.0 摘...

Windows CE操作系统的触摸屏驱动程序模型

欢迎加入Wince技术讨论群QQ#326444254 本文介绍了Windows CE操作系统的触摸屏驱动程序模型,详细阐述嵌入式系统中电阻式触摸屏的Windows CE驱动程序的设计和实现方法。 ...

windows CE下的USB设备驱动程序分析 .

随着USB设备的不断增加,我们这些开发人员也就多了对USB设备进行驱动程序开发的工作。但是对于很多初学者来说,存在以下三个困难:      一是对WinCE的驱动程序结构了解得太少,没办法得心应手的...
  • js_gary
  • js_gary
  • 2012年02月09日 17:21
  • 1332

Windows CE下驱动程序开发基础

作者:SUKHOI27SMK 转自:http://blog.csdn.net/sukhoi27smk/article/details/8573885 我想即使读者看过微软的关于驱动开发的培训教材和...
  • whw8007
  • whw8007
  • 2014年01月13日 08:41
  • 362

Windows CE下驱动程序开发基础

Windows CE下的串口驱动程序能够处理所有I/O行为类似串口的设备,包括基于16450、16550 UART(通用异步收发芯片)的设备和一些采用DMA的设备,常见的有9针串口、红外I/O口、Mo...

Windows CE 6.x驱动程序的新特性

原文地址::http://space.itpub.net/16910633/viewspace-504206 好久又没有更新博客了。这次发表一篇古文,当然不是古典文言文,只是已经在我的硬...

如何开发Windows CE驱动程序

【IT168 专稿】本文将为读者详细介绍驱动程序的实现方法。我们首先介绍驱动程序的任务,并继续探讨缓冲区的处理、内存地址重建及调试域等。   1.驱动程序的任务   实际上,驱动程序的实现方法有多...
  • fgwntg
  • fgwntg
  • 2012年04月20日 11:24
  • 472

Windows CE下的USB设备驱动程序开发实例

作者:zhaojuncq 转自:http://blog.csdn.net/zhaojuncq/article/details/5754507 下面举个简单的例子来详细说明一下驱动程序的...
  • whw8007
  • whw8007
  • 2013年05月01日 21:29
  • 497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows CE 5.0:驱动程序---音频 MDD 和 PDD
举报原因:
原因补充:

(最多只允许输入30个字)