CcCoherencyFlushAndPurgeCache-Funktion (ntifs.h)

Die CcCoherencyFlushAndPurgeCache-Routine löscht oder löscht und löscht den Cache, um die Cachekoherency 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 den Abschnittsobjektzeiger des Dateiobjekts enthält.

[in, optional] FileOffset

Ein Zeiger auf eine Variable, die den Start-Byte-Offset zum Spülen angibt, oder zum Spülen und Löschen.

[in] Length

Die Länge in Bytes der Daten, die gelöscht werden sollen, oder um zu löschen und zu löschen, beginnend bei FileOffset. Dieser Parameter wird ignoriert, wenn ein NULL-Zeiger an FileOffset übergeben wird.

[out] IoStatus

Ein Zeiger auf eine anrufer zugewiesene IO_STATUS_BLOCK Struktur, die den endgültigen Abschlussstatus und Informationen über den Vorgang empfängt.

[in, optional] Flags

Ein Bitmask der folgenden Flags, die angeben, wie der Vorgang ausgeführt werden soll:

Wert Bedeutung
CC_FLUSH_AND_PURGE_NO_PURGE Löscht den Cache jedoch nicht. Dies ist nützlich für Lesekoherency-Spülungen.
CC_FLUSH_AND_PURGE_GATHER_DIRTY_BITS Für die Systemverwendung reserviert; verwenden Sie nicht.
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 kostspieligen Vorgang des Trimmvorgangs von Arbeitssätzen zu überspringen.

Rückgabewert

Keine

Bemerkungen

Verwenden Sie CcCoherencyFlushAndPurgeCache , wenn möglich statt einer expliziten Leer- und Löschanrufsequenz, da benutzer zugeordnete Ansichten ungültig werden, um Die Datenbeschädigung zu verhindern. CcCoherencyFlushAndPurgeCache stellt die Cachekoherency sicher; es gibt beispielsweise keine Möglichkeit, nur über diese Funktion eine Löschfunktion zu erledigen.

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

Mithilfe der Parameter "FileOffset " und "Länge " können Sie einen beliebigen Bytebereich in einer Datei löschen oder löschen. Oder Sie können eine gesamte Datei löschen 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 Ungültigung der Seite fehlschlägt, auch wenn Sie CC_FLUSH_AND_PURGE_NO_PURGE im Flags-Parameter übergeben. Beachten Sie, dass STATUS_CACHE_PAGE_LOCKED ein Erfolgsstatus ist (das heißt, Testen sie mit dem NT_SUCCESS Makro würde TRUE zurückgeben).

Anforderungen

   
Unterstützte Mindestversion (Client) Verfügbar in Windows 7 und höher
Zielplattform Universell
Header ntifs.h (einschließlich Ntifs.h, FltKernel.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Weitere Informationen

CcFlushCache

CcPurgeCacheSection