Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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:
IMiniportWaveCyclicStream::GetPosition
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.