Método IPortWaveRTStream::MapAllocatedPages (portcls.h)
O método MapAllocatedPages
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 lista de descritores de memória (MDL) 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.
Valor de retorno
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.
Observações
Como a pilha de áudio do Windows não dá suporte a um mecanismo para expressar os 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 no modo kernel. Normalmente, o driver de miniporto chama esse método se ele requer acesso de software à lista de coleta de dispersão para um buffer de áudio. Nesse caso, o armazenamento da lista 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 miniporto é responsável por desmapear a memória antes de liberá-la. Para obter mais informações, consulte IPortWaveRTStream::UnmapAllocatedPages.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível no Windows Vista e em sistemas operacionais Windows posteriores. |
da Plataforma de Destino | Universal |
cabeçalho | portcls.h |
IRQL | Nível passivo. |
Consulte também
IPortWaveRTStream::AllocateContiguousPagesForMdl
IPortWaveRTStream::AllocatePagesForMdl