Freigeben über


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

Siehe auch

CcFlushCache-

CcPurgeCacheSection-