Метод 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::AllocateContiguousPagesForMdl
IPortWaveRTStream::AllocatePagesForMdl