Metodo IPortWaveRTStream::MapAllocatedPages (portcls.h)

Il MapAllocatedPages metodo esegue il mapping di un elenco di pagine fisiche assegnate in precedenza in un blocco contiguo di memoria virtuale accessibile dalla modalità kernel.

Sintassi

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

Parametri

[in] MemoryDescriptorList

Puntatore all'elenco di descrittori di memoria (MDL) che verrà mappato. L'MDL può essere allocato chiamando IPortWaveRTStream::AllocatePagesForMdl o IPortWaveRTStream:: AllocateContiguousPagesForMdl.

[in] CacheType

Specifica il tipo di cache. Impostare questo parametro su uno dei valori di enumerazione MEMORY_CACHING_TYPE seguenti: MmNonCached, MmCached oMmWriteCombined.

Valore restituito

MapAllocatedPages restituisce l'indirizzo iniziale del buffer mappato nella memoria virtuale. Se il metodo non è in grado di eseguire il mapping del buffer, restituisce NULL.

Commenti

Poiché lo stack audio di Windows non supporta un meccanismo per esprimere i requisiti di allineamento dell'accesso alla memoria per i buffer, i driver audio devono selezionare un tipo di memorizzazione nella cache per i buffer di memoria mappati che non impone requisiti di allineamento specifici della piattaforma. In altre parole, il tipo di memorizzazione nella cache usato dal driver audio per i buffer di memoria mappati, non deve fare ipotesi sui requisiti di allineamento della memoria per qualsiasi piattaforma specifica.

Questo metodo esegue il mapping delle pagine di memoria fisica nel MDL nella memoria virtuale in modalità kernel. In genere, il driver miniport chiama questo metodo se richiede l'accesso software all'elenco di raccolta a dispersione per un buffer audio. In questo caso, l'archiviazione per l'elenco di raccolta a dispersione deve essere stata allocata dal metodo IPortWaveRTStream::AllocatePagesForMdl o IPortWaveRTStream::AllocateContiguousPagesForMdl .

Un driver miniport WaveRT non deve richiedere l'accesso software al buffer audio stesso.

MapAllocatedPages è simile all'operazione alla funzione MmMapLockedPagesSpecifyCache . Il driver miniport è responsabile dell'annullamento del mapping della memoria prima di liberarlo. Per altre informazioni, vedere IPortWaveRTStream::UnmapAllocatedPages.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e nei sistemi operativi Windows successivi.
Piattaforma di destinazione Universale
Intestazione portcls.h
IRQL Livello passivo.

Vedi anche

IPortWaveRTStream

IPortWaveRTStream::AllocateContiguousPagesForMdl

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::UnmapAllocatedPages

MDL

MEMORY_CACHING_TYPE

MmMapLockedPagesSpecifyCache