CcCoherencyFlushAndPurgeCache-Funktion (ntifs.h)
Der CcCoherencyFlushAndPurgeCache Routineleerungen oder Löschvorgänge und Bereinigungen des Caches, um die Cachekoherität sicherzustellen.
Syntax
void CcCoherencyFlushAndPurgeCache(
[in] PSECTION_OBJECT_POINTERS SectionObjectPointer,
[in, optional] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[out] PIO_STATUS_BLOCK IoStatus,
[in, optional] ULONG Flags
);
Parameter
[in] SectionObjectPointer
Ein Zeiger auf eine SECTION_OBJECT_POINTERS Struktur, die die Abschnittsobjektzeiger des Dateiobjekts enthält.
[in, optional] FileOffset
Ein Zeiger auf eine Variable, die den Anfangsbyte-Offset zum Leeren angibt, oder zum Leeren und Löschen.
[in] Length
Die Länge in Bytes der zu leerenden Daten oder zum Leeren und Löschen, beginnend bei FileOffset-. Dieser Parameter wird ignoriert, wenn ein NULL- Zeiger an FileOffset-übergeben wird.
[out] IoStatus
Ein Zeiger auf eine vom Aufrufer zugewiesene IO_STATUS_BLOCK Struktur, die den endgültigen Abschlussstatus und Informationen über den Vorgang empfängt.
[in, optional] Flags
Eine Bitmaske der folgenden Flags, die angeben, wie der Vorgang ausgeführt werden soll:
Wert | Bedeutung |
---|---|
CC_FLUSH_AND_PURGE_NO_PURGE | Leeren Sie den Cache, löschen Sie den Cache jedoch nicht. Dies ist nützlich für Lesekoherentitätsspülungen. |
CC_FLUSH_AND_PURGE_GATHER_DIRTY_BITS | Reserviert für die Systemnutzung; nicht verwenden. |
CC_FLUSH_AND_PURGE_WRITEABLE_VIEWS_NOTSEEN | Der Aufrufer kann dieses Flag festlegen, wenn keine Zuordnungen zu der Datei außerhalb des Cache-Managers vorhanden sind, um den kostspieligen Vorgang des Kürzens Prozessarbeitssätzezu überspringen. |
Rückgabewert
Nichts
Bemerkungen
Verwenden Sie CcCoherencyFlushAndPurgeCache- nach Möglichkeit anstelle einer expliziten Lösch- und Bereinigungsaufrufsequenz, da die vom Benutzer zugeordneten Ansichten ungültig werden, um Eine Datenbeschädigung zu verhindern. CcCoherencyFlushAndPurgeCache- stellt die Kohärenz des Caches sicher; daher gibt es keine Möglichkeit, nur über diese Funktion eine Bereinigung zu erledigen.
Die Datei muss ausschließlich abgerufen werden, bevor Sie CcCoherencyFlushAndPurgeCacheaufrufen.
Sie können jeden Bytebereich innerhalb einer Datei leeren oder löschen, indem Sie die Parameter FileOffset und Length Parameter verwenden. Sie können auch eine gesamte Datei leeren oder löschen, wenn Sie einen NULL- Zeiger an den FileOffset-Parameter übergeben.
Ein Aufruf von CcCoherencyFlushAndPurgeCache- ist ein synchroner (blockierender) Vorgang, kein asynchroner (nicht blockierender) Vorgang.
Ein IoStatus->Status Wert von STATUS_CACHE_PAGE_LOCKED gibt an, dass die Ungültigkeit der Seite fehlgeschlagen ist. Beachten Sie, dass die Seiteninvaligierung fehlschlagen kann, auch wenn Sie CC_FLUSH_AND_PURGE_NO_PURGE im parameter Flags übergeben. Beachten Sie, dass STATUS_CACHE_PAGE_LOCKED ein Erfolg Status ist (d. b. das Testen mit dem NT_SUCCESS Makro würde WAHR zurückgeben).
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 7 |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h, FltKernel.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |