Miniport Interfaces
As described in Supporting a Device, the PortCls system driver provides a set of built-in port drivers for managing wave and MIDI devices. To use one of these port drivers to manage a particular type of audio device, the adapter driver must provide a corresponding miniport driver that complements the port driver by managing all the device's hardware-dependent functions.
This section discusses the following miniport driver types:
Complements the WaveRT port driver by managing the hardware-dependent functions of a wave rendering or capture device that uses a cyclic buffer for audio data.
Complements the Topology port driver by managing the various hardware controls (for example, volume level) in the audio adapter's mixer circuitry.
Complements the MIDI port driver by managing the hardware-dependent functions of a simple MIDI device.
Complements the DMus port driver by managing the hardware-dependent functions of an advanced MIDI device.
Each port driver implements an IPortXxx interface, which it presents to the miniport driver. In turn, the miniport driver must implement an IMiniportXxx interface, which the port driver uses to communicate with the miniport driver. The following table shows the IPortXxx interface and the corresponding IMiniportXxx interface for each device type.
Device Type | Port Driver Interface | Miniport Driver Interface |
---|---|---|
WaveCyclic |
||
WavePci |
||
WaveRT |
||
Topology |
||
MIDI |
||
DirectMusic |
In the preceding table, all IPortXxx interfaces are derived from base interface IPort, and all IMiniportXxx interfaces are derived from IMiniport.