Fungsi CcCoherencyFlushAndPurgeCache (ntifs.h)

CcCoherencyFlushAndPurgeCache rutin membersihkan, atau membersihkan dan membersihkan, cache untuk memastikan koherensi cache.

Sintaks

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

Penunjuk ke struktur SECTION_OBJECT_POINTERS yang berisi penunjuk objek bagian objek file.

[in, optional] FileOffset

Penunjuk ke variabel yang menentukan offset byte awal untuk membersihkan, atau untuk membersihkan dan menghapus menyeluruh.

[in] Length

Panjang byte data untuk dibersihkan, atau untuk membersihkan dan menghapus menyeluruh, dimulai dari FileOffset. Parameter ini diabaikan jika penunjuk NULL diteruskan ke FileOffset.

[out] IoStatus

Penunjuk ke struktur IO_STATUS_BLOCK yang dialokasikan penelepon yang menerima status penyelesaian akhir dan informasi tentang operasi.

[in, optional] Flags

Bitmask dari bendera berikut yang menentukan bagaimana operasi akan dilakukan:

Nilai Makna
CC_FLUSH_AND_PURGE_NO_PURGE Bersihkan, tetapi jangan hapus menyeluruh cache. Ini berguna untuk membaca flush koherensi.
CC_FLUSH_AND_PURGE_GATHER_DIRTY_BITS Dicadangkan untuk penggunaan sistem; jangan gunakan.
CC_FLUSH_AND_PURGE_WRITEABLE_VIEWS_NOTSEEN Pemanggil dapat mengatur bendera ini ketika tidak ada pemetaan ke file di luar manajer cache, untuk melewati operasi mahal dari pemangkasan proses set kerja.

Mengembalikan nilai

Tidak ada

Keterangan

Gunakan CcCoherencyFlushAndPurgeCache jika memungkinkan alih-alih urutan panggilan pembersihan dan pembersihan eksplisit karena akan membatalkan tampilan yang dipetakan pengguna untuk mencegah kerusakan data. CcCoherencyFlushAndPurgeCache memastikan koherensi cache; dengan demikian, tidak ada opsi untuk melakukan pembersihan hanya melalui fungsi ini.

File harus diperoleh secara eksklusif sebelum Anda memanggil CcCoherencyFlushAndPurgeCache.

Anda dapat membersihkan, atau membersihkan dan menghapus menyeluruh, rentang byte apa pun dalam file dengan menggunakan parameter FileOffset dan Panjang . Atau Anda dapat membersihkan, atau membersihkan dan menghapus menyeluruh, seluruh file jika Anda meneruskan penunjuk NULL ke parameter FileOffset .

Panggilan ke CcCoherencyFlushAndPurgeCache adalah operasi sinkron (pemblokiran), bukan operasi asinkron (non-pemblokiran).

Nilai IoStatus-Status> STATUS_CACHE_PAGE_LOCKED menunjukkan bahwa pembatalan halaman gagal. Ketahuilah bahwa pembatalan halaman dapat gagal meskipun Anda meneruskan CC_FLUSH_AND_PURGE_NO_PURGE di parameter Bendera . Perhatikan bahwa STATUS_CACHE_PAGE_LOCKED adalah status keberhasilan (artinya, mengujinya dengan makro NT_SUCCESS akan mengembalikan TRUE).

Persyaratan

   
Klien minimum yang didukung Tersedia di Windows 7 dan yang lebih baru
Target Platform Universal
Header ntifs.h (termasuk Ntifs.h, FltKernel.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Lihat juga

CcFlushCache

CcPurgeCacheSection