WaveCyclic Miniport Driver
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.
Initializes the miniport object. IMiniportWaveCyclic::NewStream
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.