WavePci Miniport Driver
Important The use of WavePci is no longer recommended, instead use WaverRT.
A WavePci miniport driver manages the hardware-dependent functions of a wave-rendering or wave-capture device that has scatter/gather DMA hardware that can transfer audio data to or from any location in physical memory. A wave device that lacks the ability to perform scatter/gather transfers or is able to access only restricted regions in physical memory should use a WaveCyclic miniport driver instead.
A WavePci miniport driver should implement two interfaces:
The miniport interface performs miniport driver initialization, channel enumeration, and stream creation.
The stream interface manages a wave stream and exposes most of the miniport driver's functionality.
Initializes the miniport object. IMiniportWavePci::NewStream
Creates a new stream object. IMiniportWavePci::Service
Notifies the miniport driver of a request for service. The stream interface, IMiniportWavePciStream, inherits the methods from the IUnknown interface. IMiniportWavePciStream provides the following additional methods:
Gets the miniport driver's preferred allocator-framing parameters for the wave stream. IMiniportWavePciStream::GetPosition
Gets the device's current position in the wave stream. IMiniportWavePciStream::MappingAvailable
Indicates that a new mapping is available from the port driver. IMiniportWavePciStream::NormalizePhysicalPosition
Converts a physical buffer position value into a time-based value. IMiniportWavePciStream::RevokeMappings
Revokes previously issued mappings. IMiniportWavePciStream::Service
Notifies the stream object of a request for service. IMiniportWavePciStream::SetFormat
Sets the data format of the wave stream. IMiniportWavePciStream::SetState
Sets the state of the wave stream.