Partager via


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

La MapAllocatedPages méthode mappe une liste de pages physiques précédemment allouées dans un bloc contigu de mémoire virtuelle accessible à partir du mode noyau.

Syntaxe

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

Paramètres

[in] MemoryDescriptorList

Pointeur vers la liste de descripteurs de mémoire (MDL) qui sera mappée. Le MDL peut être alloué en appelant IPortWaveRTStream ::AllocatePagesForMdl ou IPortWaveRTStream ::AllocateContiguousPagesForMdl.

[in] CacheType

Spécifie le type de cache. Définissez ce paramètre sur l’une des valeurs d’énumération MEMORY_CACHING_TYPE suivantes : MmNonCached, MmCached ou MmWriteCombined.

Valeur retournée

MapAllocatedPages retourne l’adresse de départ de la mémoire tampon mappée dans la mémoire virtuelle. Si la méthode ne parvient pas à mapper la mémoire tampon, elle retourne NULL.

Remarques

Étant donné que la pile audio Windows ne prend pas en charge un mécanisme permettant d’exprimer les exigences d’alignement de l’accès à la mémoire mémoire pour les mémoires tampons, les pilotes audio doivent sélectionner un type de mise en cache pour les mémoires tampons mappées qui n’impose pas d’exigences d’alignement spécifiques à la plateforme. En d’autres termes, le type de mise en cache utilisé par le pilote audio pour les mémoires tampons mappées ne doit pas faire d’hypothèses sur les exigences d’alignement de la mémoire pour une plateforme spécifique.

Cette méthode mappe les pages de mémoire physique de la MDL en mémoire virtuelle en mode noyau. En règle générale, le pilote miniport appelle cette méthode s’il nécessite un accès logiciel à la liste de regroupement de points pour une mémoire tampon audio. Dans ce cas, le stockage de la liste de collecte de points doit avoir été alloué par la méthode IPortWaveRTStream ::AllocatePagesForMdl ou IPortWaveRTStream ::AllocateContiguousPagesForMdl .

Un pilote de miniport WaveRT ne doit pas nécessiter d’accès logiciel à la mémoire tampon audio elle-même.

MapAllocatedPages est similaire dans l’opération à la fonction MmMapLockedPagesSpecifyCache . Le pilote miniport est chargé de démapper la mémoire avant de la libérer. Pour plus d’informations, consultez IPortWaveRTStream ::UnmapAllocatedPages.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans les systèmes d’exploitation Windows Vista et ultérieurs.
Plateforme cible Universal
En-tête portcls.h
IRQL Niveau passif.

Voir aussi

IPortWaveRTStream

IPortWaveRTStream ::AllocateContiguousPagesForMdl

IPortWaveRTStream ::AllocatePagesForMdl

IPortWaveRTStream ::UnmapAllocatedPages

MDL

MEMORY_CACHING_TYPE

MmMapLockedPagesSpecifyCache