MmFreeContiguousMemory-Funktion (ntddk.h)
Die MmFreeContiguousMemory-Routine gibt einen Bereich von physisch zusammenhängendem Arbeitsspeicher frei, der von einer MmAllocateContiguousMemoryXxx-Routine zugewiesen wurde.
Syntax
void MmFreeContiguousMemory(
[in] PVOID BaseAddress
);
Parameter
[in] BaseAddress
Zeiger auf die virtuelle Adresse des Speichers, der freigegeben werden soll.
Rückgabewert
Keine
Bemerkungen
Die MmFreeContiguousMemory-Routine gibt einen Block von physisch zusammenhängendem Arbeitsspeicher frei, der durch einen vorherigen Aufruf der Routinen MmAllocateContiguousMemory, MmAllocateContiguousMemorySpecifyCache oder MmAllocateContiguousMemorySpecifyCacheNode zugewiesen wurde. Der BaseAddress-Parameter muss die Basisadresse sein, die aus dem vorherigen Aufruf der Xxx-Routine MmAllocateContiguousMemory abgerufen wurde.
Ein Gerätetreiber, der zusammenhängenden Arbeitsspeicher verwenden muss, sollte nur das zuordnen, was er während der Treiberinitialisierung benötigt, da der physische Arbeitsspeicher wahrscheinlich fragmentiert wird, wenn das System ausgeführt wird. Ein solcher Treiber muss die Zuordnung des Arbeitsspeichers aufheben, wenn der Treiber den Arbeitsspeicher verwendet.
Aufrufer von MmFreeContiguousMemory müssen unter IRQL = APC_LEVEL ausgeführt werden. Für Windows Server 2008 und höhere Versionen des Windows-Betriebssystems können Sie mmFreeContiguousMemory auch mit IRQL <= DISPATCH_LEVEL aufrufen. Sie können jedoch die Leistung des Treibers verbessern, indem Sie unter APC_LEVEL oder darunter aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 2000. |
Zielplattform | Universell |
Header | ntddk.h (einschließlich Wdm.h, Ntddk.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Weitere Informationen finden Sie im Abschnitt mit den Hinweisen. |
DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), IrqlMmDispatch(wdm) |