WaveCyclic Port Driver

Important  The use of WaveCyclic is no longer recommended, instead use WaverRT.

The WaveCyclic port driver manages the playback or recording of a wave stream by a DMA-based audio device that processes audio data in a cyclic buffer. This device is a hardware function on an audio adapter. Typically, the adapter is part of an integrated chipset on the motherboard or is mounted on an audio card that plugs into a PCI or ISA slot on the motherboard. The adapter driver provides a corresponding WaveCyclic miniport driver driver object that binds to the WaveCyclic port driver object to form a wave filter that can capture or render a wave stream.

The WaveCyclic port driver exposes an IPortWaveCyclic interface to the miniport driver. IPortWaveCyclic inherits the methods in base interface IPort. IPortWaveCyclic provides the following additional methods:

IPortWaveCyclic::NewMasterDmaChannel

Creates a new master DMA channel object for an audio device with a built-in DMA controller.

IPortWaveCyclic::NewSlaveDmaChannel

Creates a new subordinate DMA channel object for an audio device without a built-in DMA controller.

IPortWaveCyclic::Notify

Notifies the port driver that the DMA controller has advanced to a new position in the audio stream.

The WaveCyclic port and miniport driver objects communicate with each other through their respective IPortWaveCyclic and IMiniportWaveCyclic interfaces. In addition, the port driver communicates with the miniport driver's stream objects through their IMiniportWaveCyclicStream interfaces.