避免数据复制

可以通过设计音频硬件来提高驱动程序性能,以避免不必要的数据复制。

可以通过实现硬件以执行真正的分散/聚集 DMA 以及编写 WavePci 微型端口驱动程序来管理硬件,从而实现最佳效果。 然后,设备可以直接访问播放数据缓冲区或空记录缓冲区,无论它们位于系统内存中的何处。 这消除了大量不必要的软件干预和耗时的数据复制。

但是,如果要设计 WaveCyclic 设备,可以通过使其硬件缓冲区可作为系统内存直接访问来提高其性能。 这避免了从系统内存中中间缓冲区复制数据的开销。

此外,如果设备需要具有与标准 WDM 音频格式不兼容的声道排序的音频格式,驱动程序可能需要在中间缓冲区中对每个音频帧执行就地转换,然后硬件才能处理它。 这可能会降低性能。 有关更多信息,请参阅多声道音频数据和 WAVE 文件