IPortWaveRTStream

The IPortWaveRTStream interface is supported in Windows Vista and later operating systems, and it is a stream-specific interface that provides helper methods for use by the WaveRT miniport driver. The miniport driver calls the methods to perform allocation and mapping of cyclic buffers for audio data. The WaveRT port driver implements this interface. The port driver gives an IPortWaveRTStream object reference to each miniport driver stream object that it creates. IPortWaveRTStream inherits from the IUnknown interface.

An audio stream is associated with each pin instance on a WaveRT filter. The adapter driver forms the filter by binding the WaveRT port and miniport drivers. When the port driver calls the IMiniportWaveRT::NewStream method to create the miniport driver stream object, the port driver passes an IPortWaveRTStream reference as one of the method's call parameters.

To allocate the memory needed for the cyclic buffer, the miniport driver must call the AllocatePagesForMdl method or the AllocateContiguousPagesForMdl method of the IPortWaveRTStream interface. The interface provides additional methods that can map the allocated pages, unmap them, and can also free them.

The methods in the IPortWaveRTStream interface are based on, and are similar to, the MmXxx kernel functions that perform allocation and mapping of memory descriptor lists (MDLs). However, the MmXxx functions cannot be used in place of the IPortWaveRTStream methods.

In addition to the methods that IPortWaveRTStream inherits from the IUnknown interface, IPortWaveRTStream supports the following methods:

IPortWaveRTStream::AllocateContiguousPagesForMdl

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::MapAllocatedPages

IPortWaveRTStream::UnmapAllocatedPages

IPortWaveRTStream::FreePagesFromMdl

IPortWaveRTStream::GetPhysicalPageAddress

IPortWaveRTStream::GetPhysicalPagesCount

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft