Compartilhar via


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

O MapAllocatedPages método mapeia uma lista de páginas físicas alocadas anteriormente em um bloco contíguo de memória virtual acessível do modo kernel.

Sintaxe

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

Parâmetros

[in] MemoryDescriptorList

Ponteiro para a MDL (lista de descritores de memória) que será mapeada. O MDL pode ser alocado chamando IPortWaveRTStream::AllocatePagesForMdl ou IPortWaveRTStream::AllocateContiguousPagesForMdl.

[in] CacheType

Especifica o tipo de cache. Defina esse parâmetro como um dos seguintes valores de enumeração MEMORY_CACHING_TYPE : MmNonCached, MmCached ou MmWriteCombined.

Retornar valor

MapAllocatedPages retorna o endereço inicial do buffer mapeado na memória virtual. Se o método não puder mapear o buffer, ele retornará NULL.

Comentários

Como a pilha de áudio do Windows não dá suporte a um mecanismo para expressar requisitos de alinhamento de acesso à memória para buffers, os drivers de áudio devem selecionar um tipo de cache para buffers de memória mapeados que não impõem requisitos de alinhamento específicos da plataforma. Em outras palavras, o tipo de cache usado pelo driver de áudio para buffers de memória mapeados não deve fazer suposições sobre os requisitos de alinhamento de memória para qualquer plataforma específica.

Esse método mapeia as páginas de memória física no MDL para a memória virtual do modo kernel. Normalmente, o driver de miniporto chamará esse método se ele exigir acesso de software à lista de coleta de dispersão para um buffer de áudio. Nesse caso, o armazenamento para a lista de coleta de dispersão deve ter sido alocado pelo método IPortWaveRTStream::AllocatePagesForMdl ou IPortWaveRTStream::AllocateContiguousPagesForMdl .

Um driver de miniporto WaveRT não deve exigir acesso de software ao buffer de áudio em si.

MapAllocatedPages é semelhante em operação à função MmMapLockedPagesSpecifyCache . O driver de miniporte é responsável por desmamar a memória antes de liberá-la. Para obter mais informações, consulte IPortWaveRTStream::UnmapAllocatedPages.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows Vista e em sistemas operacionais Windows posteriores.
Plataforma de Destino Universal
Cabeçalho portcls.h
IRQL Nível passivo.

Confira também

IPortWaveRTStream

IPortWaveRTStream::AllocateContiguousPagesForMdl

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::UnmapAllocatedPages

MDL

MEMORY_CACHING_TYPE

MmMapLockedPagesSpecifyCache