Fonction MmFreeContiguousMemory (wdm.h)
La routine MmFreeContiguousMemory libère une plage de mémoire contiguë physiquement allouée par une routine MmAllocateContiguousMemoryXxx .
Syntaxe
void MmFreeContiguousMemory(
[in] PVOID BaseAddress
);
Paramètres
[in] BaseAddress
Pointeur vers l’adresse virtuelle de la mémoire à libérer.
Valeur de retour
None
Remarques
La routine MmFreeContiguousMemory libère un bloc de mémoire contiguë qui a été alloué par un appel précédent à la routine MmAllocateContiguousMemory, MmAllocateContiguousMemorySpecifyCache ou MmAllocateContiguousMemorySpecifyCacheNode . Le paramètre BaseAddress doit être l’adresse de base obtenue à partir de l’appel précédent à la routine MmAllocateContiguousMemoryXxx .
Un pilote de périphérique qui doit utiliser la mémoire contiguë doit allouer uniquement ce dont il a besoin lors de l’initialisation du pilote, car la mémoire physique est susceptible de devenir fragmentée au fur et à mesure que le système s’exécute. Un tel pilote doit libérer la mémoire lorsque le pilote est terminé à l’aide de la mémoire.
Les appelants de MmFreeContiguousMemory doivent être en cours d’exécution à IRQL = APC_LEVEL. Pour Windows Server 2008 et les versions ultérieures du système d’exploitation Windows, vous pouvez également appeler MmFreeContiguousMemory avec IRQL <= DISPATCH_LEVEL. Toutefois, vous pouvez améliorer les performances du pilote en appelant à APC_LEVEL ou en dessous.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Consultez la section Notes. |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport),IrqlMmDispatch(wdm) |