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:

IMiniportWaveRT::Init

Initializes the miniport object.

IMiniportWaveRT::NewStream

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.