Fungsi CcCoherencyFlushAndPurgeCache (ntifs.h)
CcCoherencyFlushAndPurgeCache rutin membersihkan, atau membersihkan dan menghapus menyeluruh, 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 pointer 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 bersihkan 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 proses pemangkasan set kerja. |
Nilai kembali
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 Length . 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> dari 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
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 |
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h, FltKernel.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |