Fungsi CcMdlWriteComplete (ntifs.h)
Rutinitas CcMdlWriteComplete membebaskan daftar deskriptor memori (MDL) yang dibuat oleh CcPrepareMdlWrite untuk file yang di-cache.
Sintaks
void CcMdlWriteComplete(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] PMDL MdlChain
);
Parameter
[in] FileObject
Penunjuk objek file yang diteruskan ke CcPrepareMdlWrite.
[in] FileOffset
Nilai FileOffset yang diteruskan ke CcPrepareMdlWrite.
[in] MdlChain
Alamat rantai MDL yang dikembalikan oleh CcPrepareMdlWrite.
Nilai kembali
Tidak ada
Keterangan
Sistem file memanggil CcMdlWriteComplete untuk membebaskan daftar deskriptor memori (MDL) yang dibuat oleh CcPrepareMdlWrite untuk file yang di-cache dan menandai rentang byte yang ditentukan untuk ditulis. Semua halaman fisik yang dikunci tidak terkunci. Halaman apa pun yang dipetakan tidak dipetakan.
Jika bendera FO_WRITE_THROUGH diatur pada objek file yang diacu oleh parameter FileObject , data file segera dibersihkan ke disk. Operasi flush ini memasukkan kembali sistem file dan dapat menyebabkan CcMdlWriteComplete memunculkan pengecualian jika operasi flush gagal. Dalam hal ini, MDL belum dibebaskan dan pemanggil dapat mencoba kembali operasi.
Setelah CcMdlWriteComplete berhasil dipanggil untuk operasi IRP_MN_COMPLETE, pemanggil harus mengatur bidang MdlAddress IRP ke NULL.
Sebelum menggunakan CcMdlWriteComplete, pengembang sistem file sangat dianjurkan untuk mempelajari cara rutinitas ini digunakan dalam sampel FASTFAT.
Setiap panggilan ke CcPrepareMdlWrite harus diikuti dengan panggilan ke CcMdlWriteComplete atau CcMdlWriteAbort.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |