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

将静音复制到缓冲区中。