Table of contents
Collapse the table of content
Expand the table of content

WaveCyclic Miniport Driver

Last Updated: 10/10/2016

Important The use of WavePci is no longer recommended, instead use WaverRT.

A WaveCyclic miniport driver manages the hardware-dependent functions of a wave-rendering or wave-capture device that uses a cyclic buffer for audio data. The cyclic buffer is typically a single block of contiguous physical memory and can be located in a region of memory of the driver's choosing. A device with any of the following limitations should provide a WaveCyclic miniport driver rather than a WavePci miniport driver:

  • The device lacks DMA hardware.

  • The device's DMA hardware can access data only in a buffer that occupies a single block of contiguous physical memory.

  • The device's DMA hardware is unable to access data in all regions of physical memory.

A WaveCyclic miniport driver should implement two interfaces:

  • The miniport interface supports miniport driver initialization and stream creation.

  • The stream interface manages a wave stream and exposes most of the miniport driver's functionality.

The miniport interface, IMiniportWaveCyclic, inherits the methods in the IMiniport interface. IMiniportWaveCyclic provides the following additional methods:


Initializes the miniport object. IMiniportWaveCyclic::NewStream

Creates a new stream object. The stream interface, IMiniportWaveCyclicStream, inherits the methods in the IUnknown interface. IMiniportWaveCyclicStream provides the following additional methods:


Gets the device's current position in the wave stream. IMiniportWaveCyclicStream::NormalizePhysicalPosition

Converts a physical buffer position value into a time-based value. IMiniportWaveCyclicStream::SetFormat

Sets the data format of the wave stream. IMiniportWaveCyclicStream::SetNotificationFreq

Sets the frequency at which notification interrupts occur. IMiniportWaveCyclicStream::SetState

Sets the state of the wave stream. IMiniportWaveCyclicStream::Silence

Copies silence into a buffer.

Send comments about this topic to Microsoft

© 2016 Microsoft