IPortWaveRTStream interface (portcls.h)

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.

Inheritance

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

Methods

The IPortWaveRTStream interface has these methods.

 
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.

Requirements

Requirement Value
Target Platform Windows
Header portcls.h