Método IPortWaveRTStream::MapAllocatedPages (portcls.h)

El MapAllocatedPages método asigna una lista de páginas físicas asignadas previamente en un bloque contiguo de memoria virtual al que se puede acceder desde el modo kernel.

Sintaxis

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

Parámetros

[in] MemoryDescriptorList

Puntero a la lista de descriptores de memoria (MDL) que se asignará. El MDL se puede asignar llamando a IPortWaveRTStream::AllocatePagesForMdl o IPortWaveRTStream::AllocateContiguousPagesForMdl.

[in] CacheType

Especifica el tipo de caché. Establezca este parámetro en uno de los siguientes valores de enumeración MEMORY_CACHING_TYPE: MmNonCached, MmCached o MmWriteCombined.

Valor devuelto

MapAllocatedPages devuelve la dirección inicial del búfer asignado en memoria virtual. Si el método no puede asignar el búfer, devuelve NULL.

Comentarios

Dado que la pila de audio de Windows no admite un mecanismo para expresar los requisitos de alineación de acceso a la memoria para los búferes de audio, los controladores de audio deben seleccionar un tipo de almacenamiento en caché para los búferes de memoria asignados que no imponen requisitos de alineación específicos de la plataforma. Es decir, el tipo de almacenamiento en caché utilizado por el controlador de audio para los búferes de memoria asignados no debe suponer los requisitos de alineación de memoria para ninguna plataforma específica.

Este método asigna las páginas de memoria física de MDL a la memoria virtual en modo kernel. Normalmente, el controlador de minipuerto llama a este método si requiere acceso de software a la lista de recopilación de dispersión para un búfer de audio. En este caso, el almacenamiento de la lista de recopilación de dispersión debe haber sido asignado por el método IPortWaveRTStream::AllocatePagesForMdl o IPortWaveRTStream::AllocateContiguousPagesForMdl .

Un controlador de miniporte waveRT no debe requerir acceso de software al propio búfer de audio.

MapAllocatedPages es similar en funcionamiento a la función MmMapLockedPagesSpecifyCache . El controlador de minipuerto es responsable de desasignación de la memoria antes de liberarla. Para obtener más información, vea IPortWaveRTStream::UnmapAllocatedPages.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y en sistemas operativos Windows posteriores.
Plataforma de destino Universal
Encabezado portcls.h
IRQL Nivel pasivo.

Consulte también

IPortWaveRTStream

IPortWaveRTStream::AllocateContiguousPagesForMdl

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::UnmapAllocatedPages

MDL

MEMORY_CACHING_TYPE

MmMapLockedPagesSpecifyCache