Freigeben über


CcCoherencyFlushAndPurgeCache-Funktion (ntifs.h)

Die CcCoherencyFlushAndPurgeCache-Routine leert den Cache oder leert und löscht den Cache, um die Cachekohärenz 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 anfangs zu leerenden Byteoffset oder zum Leeren und Bereinigen angibt.

[in] Length

Die Länge der Daten, die geleert oder geleert und gelöscht werden sollen, 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 die endgültige Abschluss-status und Informationen zum Vorgang empfängt.

[in, optional] Flags

Eine Bitmaske der folgenden Flags, die angibt, wie der Vorgang ausgeführt werden soll:

Wert Bedeutung
CC_FLUSH_AND_PURGE_NO_PURGE Leeren Sie den Cache, aber löschen Sie den Cache nicht. Dies ist nützlich für Lesekohärenzleerungen.
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 zur Datei außerhalb des Cache-Managers vorhanden sind, um den teuren Vorgang des Kürzens von Arbeitssätzen zu überspringen.

Rückgabewert

Keine

Bemerkungen

Verwenden Sie nach Möglichkeit CcCoherencyFlushAndPurgeCache anstelle einer expliziten Leerungs- und Bereinigungsaufrufsequenz, da benutzerseitig zugeordnete Ansichten ungültig werden, um Datenbeschädigungen zu verhindern. CcCoherencyFlushAndPurgeCache stellt die Cachekohärenz sicher. daher gibt es keine Option, eine Bereinigung nur über diese Funktion zu durchführen.

Die Datei muss ausschließlich abgerufen werden, bevor Sie CcCoherencyFlushAndPurgeCache aufrufen.

Sie können jeden Bytebereich innerhalb einer Datei mit den Parametern FileOffset und Length leeren oder leeren und bereinigen. Oder Sie können eine gesamte Datei leeren oder leeren und bereinigen, wenn Sie einen NULL-Zeiger an den FileOffset-Parameter übergeben.

Bei einem Aufruf von CcCoherencyFlushAndPurgeCache handelt es sich um einen synchronen (blockierenden) Vorgang, nicht um einen asynchronen (nicht blockierenden) Vorgang.

Der IoStatus-Status-Wert> STATUS_CACHE_PAGE_LOCKED gibt an, dass die Seitenvalidierung fehlgeschlagen ist. Beachten Sie, dass die Seitenvalidierung auch dann fehlschlagen kann, wenn Sie CC_FLUSH_AND_PURGE_NO_PURGE im Flags-Parameter übergeben. Beachten Sie, dass STATUS_CACHE_PAGE_LOCKED eine erfolgreiche status ist (d. a. das Testen mit dem NT_SUCCESS Makro würde TRUE zurückgeben).

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7
Zielplattform Universell
Header ntifs.h (include Ntifs.h, FltKernel.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Weitere Informationen

CcFlushCache

CcPurgeCacheSection