重要 不再建议使用 WavePci,而是使用 WaverRT。
WaveCyclic 微型端口驱动程序管理波形呈现或波形捕获设备的硬件相关功能,该设备使用循环缓冲区处理音频数据。 循环缓冲区通常是一个连续物理内存块,可以位于驱动程序选择的内存区域中。 具有以下任何限制的设备应提供 WaveCyclic 微型端口驱动程序,而不是 WavePci 微型端口驱动程序:
设备缺少 DMA 硬件。
设备的 DMA 硬件只能在占用单个连续物理内存块的缓冲区中访问数据。
设备的 DMA 硬件无法访问物理内存的所有区域中的数据。
WaveCyclic 微型端口驱动程序应实现两个接口:
微型端口接口 支持微型端口驱动程序初始化和流创建。
流接口 管理波形流,并公开大多数微型端口驱动程序的功能。
微型端口接口 IMiniportWaveCyclic 继承 IMiniport 接口中的方法。 IMiniportWaveCyclic 提供以下其他方法:
初始化微型端口对象。
IMiniportWaveCyclic::NewStream
创建新的流对象。
流接口 IMiniportWaveCyclicStream 继承 IUnknown 接口中的方法。 IMiniportWaveCyclicStream 提供以下其他方法:
IMiniportWaveCyclicStream::GetPosition
获取设备在波形流中的当前位置。
IMiniportWaveCyclicStream::NormalizePhysicalPosition
将物理缓冲区位置值转换为基于时间的值。
IMiniportWaveCyclicStream::SetFormat
设置波形流的数据格式。
IMiniportWaveCyclicStream::SetNotificationFreq
设置通知中断发生的频率。
IMiniportWaveCyclicStream::SetState
设置波形流的状态。
IMiniportWaveCyclicStream::Silence
将静音复制到缓冲区中。