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::AllocateContiguousPagesForMdl
IPortWaveRTStream::AllocatePagesForMdl