Поделиться через


Метод IPortWaveRTStream::MapAllocatedPages (portcls.h)

Метод MapAllocatedPages сопоставляет список ранее выделенных физических страниц в непрерывный блок виртуальной памяти, доступный из режима ядра.

Синтаксис

PVOID MapAllocatedPages(
  [in] PMDL                MemoryDescriptorList,
  [in] MEMORY_CACHING_TYPE CacheType
);

Параметры

[in] MemoryDescriptorList

Указатель на список дескрипторов памяти (MDL), который будет сопоставлен. MDL можно выделить путем вызова IPortWaveRTStream::AllocatePagesForMdl или IPortWaveRTStream::AllocateContiguousPagesForMdl.

[in] CacheType

Указывает тип кэша. Задайте для этого параметра одно из следующих значений перечисления MEMORY_CACHING_TYPE: MmNonCached, MmCached или MmWriteCombined.

Возвращаемое значение

MapAllocatedPages возвращает начальный адрес сопоставленного буфера в виртуальной памяти. Если метод не может сопоставить буфер, он возвращает значение NULL.

Комментарии

Так как звуковой стек Windows не поддерживает механизм для выражения требований к выравниванию доступа к памяти для буферов, аудиодрайверы должны выбрать тип кэширования для сопоставленных буферов памяти, который не накладывает требований к выравниванию для конкретной платформы. Иными словами, тип кэширования, используемый аудиодрайвером для сопоставленных буферов памяти, не должен делать предположений о требованиях к выравниванию памяти для какой-либо конкретной платформы.

Этот метод сопоставляет страницы физической памяти в MDL с виртуальной памятью в режиме ядра. Как правило, драйвер мини-порта вызывает этот метод, если ему требуется программный доступ к списку точечных сборок для звукового буфера. В этом случае хранилище для списка точечного сбора должно быть выделено методом IPortWaveRTStream::AllocatePagesForMdl или IPortWaveRTStream::AllocateContiguousPagesForMdl .

Драйверу miniport WaveRT не требуется программный доступ к самому звуковому буферу.

MapAllocatedPages аналогично функции MmMapLockedPagesSpecifyCache . Драйвер мини-порта отвечает за распаку памяти перед ее освобождением. Дополнительные сведения см. в разделе IPortWaveRTStream::UnmapAllocatedPages.

Требования

Требование Значение
Минимальная версия клиента Доступно в Операционных системах Windows Vista и более поздних версий.
Целевая платформа Универсальное
Верхняя часть portcls.h
IRQL Пассивный уровень.

См. также раздел

IPortWaveRTStream

IPortWaveRTStream::AllocateContiguousPagesForMdl

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::UnmapAllocatedPages

MDL

MEMORY_CACHING_TYPE

MmMapLockedPagesSpecifyCache