IPortWaveRTStream interface

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.


The IPortWaveRTStream interface inherits from the IUnknown interface. IPortWaveRTStream also has these types of members:


The IPortWaveRTStream interface has these methods.

Method Description
IPortWaveRTStream::AllocateContiguousPagesForMdl The AllocateContiguousPagesForMdl method allocates a list of contiguous, nonpaged, physical memory pages and returns a pointer to a memory descriptor list (MDL) that describes them.
IPortWaveRTStream::AllocatePagesForMdl The AllocatePagesForMdl method allocates a list of nonpaged physical memory pages and returns a pointer to a memory descriptor list (MDL) that describes them.
IPortWaveRTStream::FreePagesFromMdl The FreePagesFromMdl method frees a memory descriptor list (MDL).
IPortWaveRTStream::GetPhysicalPageAddress The GetPhysicalPageAddress method returns the physical address for a page within a memory descriptor list (MDL).
IPortWaveRTStream::GetPhysicalPagesCount The GetPhysicalPagesCount method returns the count of the physical pages in a memory descriptor list (MDL).
IPortWaveRTStream::MapAllocatedPages The MapAllocatedPages method maps a list of previously allocated physical pages into a contiguous block of virtual memory that is accessible from kernel-mode.
IPortWaveRTStream::UnmapAllocatedPages The UnmapAllocatedPages method releases a mapping.


Target Platform Windows
Header portcls.h