KeInvalidateRangeAllCaches-Funktion (ntddk.h)
Die KeInvalidateRangeAllCaches-Routine löscht den angegebenen virtuellen Adressbereich aus allen Prozessorcaches.
Syntax
void KeInvalidateRangeAllCaches(
PVOID BaseAddress,
ULONG Length
);
Parameter
BaseAddress
Ein Zeiger auf die Basis des zu leerenden Bereichs.
Length
Die Größe des zu leerenden Bereichs in Bytes.
Rückgabewert
Keine
Bemerkungen
Die KeInvalidateRangeAllCaches-Routine leert den angegebenen virtuellen Adressbereich in den Caches jedes Prozessors und markiert den Inhalt jedes Caches als ungültig. Die Prozessorcaches haben garantiert den Leerungsvorgang abgeschlossen, bevor KeInvalidateRangeAllCaches zurückgegeben wird.
Diese Funktion ist auf allen Plattformen verfügbar und ersetzt KeInvalidateAllCaches. Nicht alle Architekturen wie Arm64 unterstützen eine zuverlässige Möglichkeit, den gesamten Cache zu leeren, sodass KeInvalidateAllCaches nicht auf allen Plattformen verfügbar ist. Außerdem ist es wesentlich effizienter, den betroffenen Speicherbereich zu leeren als der gesamte Cacheinhalt.
Diese Funktion leert den Cache für alle virtuellen Zuordnungen desselben zugrunde liegenden physischen Speichers.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und späteren Windows-Versionen. |
Unterstützte Mindestversion (Server) | Verfügbar in Windows Server 2008 und höheren Versionen von Windows. |
Kopfzeile | ntddk.h |
IRQL | <= DISPATCH_LEVEL |