IPortWaveRTStream ::MapAllocatedPages, méthode (portcls.h)
La méthode MapAllocatedPages
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 de retour
MapAllocatedPages
retourne l’adresse de départ de la mémoire tampon mappée en 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 tampon, les pilotes audio doivent sélectionner un type de mise en cache pour les mémoires tampons mappées qui n’imposent pas les 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 du 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 collecte 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 méthode.
Un pilote miniport WaveRT ne doit pas nécessiter d’accès logiciel à la mémoire tampon audio elle-même.
MapAllocatedPages
est similaire à 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows Vista et les systèmes d’exploitation Windows ultérieurs. |
plateforme cible | Universel |
d’en-tête | portcls.h |
IRQL | Niveau passif. |
Voir aussi
IPortWaveRTStream ::AllocateContiguousPagesForMdl
IPortWaveRTStream ::AllocatePagesForMdl