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