WaveRT Miniport Driver
The WaveRT miniport driver is supported in Windows Vista and later Windows operating systems, and it manages the hardware-dependent functions of a wave-rendering or wave-capture audio device. A WaveRT-friendly audio device has scatter/gather DMA hardware that can transfer audio data to or from any location in physical memory.
A WaveRT miniport driver must implement two interfaces:
IMiniportWaveRT. This interface performs miniport driver initialization, channel enumeration, and stream creation.
IMiniportWaveRTStream. This interface manages a wave stream and exposes most of the functionality of the miniport driver.
For information about how to design a WaveRT miniport driver that complements the WaveRT port driver, see the Developing a WaveRT Miniport Driver topic.
IMiniportWaveRT
The IMiniportWaveRT interface provides the following methods:
Initializes the miniport object.
Creates a new stream object.
IMiniportWaveRT::GetDeviceDescription
Returns a pointer to a DEVICE_DESCRIPTION structure describing the device.
IMiniportWaveRTStream
The IMiniportWaveRTStream interface inherits the methods from the IUnknown interface. IMiniportWaveRTStream provides the following additional methods:
IMiniportWaveRTStream::AllocateAudioBuffer Allocates a cyclic buffer for audio data.
IMiniportWaveRTStream::FreeAudioBuffer
Frees an audio buffer previously allocated with a call to IMiniportWaveRTStream::AllocateAudioBuffer.
IMiniportWaveRTStream::GetClockRegister
Retrieves the information that the port driver must have to expose the clock register to the audio subsystem and its clients.
IMiniportWaveRTStream::GetHWLatency
Retrieves information about sources of stream latency in the audio hardware.
IMiniportWaveRTStream::GetPosition
Retrieves the current play or record position as a byte offset from the beginning of the buffer.
IMiniportWaveRTStream::GetPositionRegister
Retrieves the information that the port driver must have to expose the position register to the audio subsystem and its clients.
IMiniportWaveRTStream::SetFormat
Sets the data format of the wave stream.
IMiniportWaveRTStream::SetState
Changes the transport state of the audio stream.