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


Метод 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.

Минипорт-драйвер WaveRT не должен требовать программного обеспечения доступа к самому буферу звука.

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

Требования

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

См. также

IPortWaveRTStream

IPortWaveRTStream::AllocateContiguousPagesForMdl

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::UnmapAllocatedPages

MDL

MEMORY_CACHING_TYPE

MmMapLockedPagesSpecifyCache