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.
The miniport interface, IMiniportWavePci, inherits the methods in the IMiniport interface. IMiniportWavePci provides the following additional methods:
Initializes the miniport object.
Creates a new stream object.
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:
IMiniportWavePciStream::GetAllocatorFraming
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.