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