WaveCyclic 微型端口驱动程序

重要说明 不再建议使用 WavePci,而是使用 WaverRT。

WaveCyclic 微型端口驱动程序将管理使用音频数据循环缓冲区的波次呈现或捕获设备的硬件相关函数。 循环缓冲区通常是一个连续物理内存块,可以位于驱动程序选择的内存区域中。 具有以下任何限制的设备应提供 WaveCyclic 微型端口驱动程序,而不是 WavePci 微型端口驱动程序

  • 设备缺少 DMA 硬件。

  • 设备的 DMA 硬件只能访问占用单个连续物理内存块的缓冲区中的数据。

  • 设备的 DMA 硬件无法访问物理内存的所有区域中的数据。

WaveCyclic 微型端口驱动程序应实现两个接口:

  • 微型端口接口支持微型端口驱动程序初始化和流创建。

  • 流接口负责管理波次流,并公开微型端口驱动程序的大多数功能。

微型端口接口 IMiniportWaveCyclic 会继承 IMiniport 接口中的方法。 IMiniportWaveCyclic 提供以下其他方法:

IMiniportWaveCyclic::Init

初始化微型端口对象。

IMiniportWaveCyclic::NewStream

创建新的流对象。

流接口 IMiniportWaveCyclicStream 继承 IUnknown 接口中的方法。 IMiniportWaveCyclicStream 提供以下其他方法:

IMiniportWaveCyclicStream::GetPosition

获取设备在波次流中的当前位置。

IMiniportWaveCyclicStream::NormalizePhysicalPosition

将物理缓冲区位置值转换为基于时间的值。

IMiniportWaveCyclicStream::SetFormat

设置波次流的数据格式。

IMiniportWaveCyclicStream::SetNotificationFreq

设置通知中断发生的频率。

IMiniportWaveCyclicStream::SetState

设置波次流的状态。

IMiniportWaveCyclicStream::Silence

将静音复制到缓冲区中。