Bagikan melalui


IRP_MJ_FLUSH_BUFFERS (FS dan driver filter)

Ketika Dikirim

Manajer I/O, komponen sistem operasi lainnya, dan driver mode kernel lainnya mengirim permintaan IRP_MJ_FLUSH_BUFFERS ketika data yang di-buffer perlu dibersihkan ke disk. Ini dapat dikirim, misalnya, ketika aplikasi mode pengguna telah memanggil fungsi Win32 seperti FlushFileBuffers. (Untuk driver sistem file dan driver filter sistem file, memanggil CcFlushCache lebih disukai untuk mengirim IRP.)

Semua sistem file dan driver filter yang mempertahankan buffer internal untuk data harus menangani IRP ini sehingga perubahan pada data file atau metadata dapat dipertahankan di seluruh pematian sistem.

Operasi: Driver Sistem File

Driver sistem file harus memerah ke disk data atau metadata penting yang terkait dengan objek file dan menyelesaikan IRP. Untuk informasi selengkapnya tentang cara menangani IRP ini, pelajari sampel FASTFAT.

Operasi: Driver Filter Sistem File Warisan

Driver filter harus memerah ke disk data atau metadata penting yang terkait dengan objek file dan meneruskan IRP ini ke driver berikutnya yang lebih rendah pada tumpukan.

Parameter

Sistem file atau driver filter memanggil IoGetCurrentIrpStackLocation dengan IRP yang diberikan untuk mendapatkan penunjuk ke lokasi tumpukannya sendiri di IRP, yang diperlihatkan dalam daftar berikut sebagai IrpSp. (IRP ditampilkan sebagai Irp.) Driver dapat menggunakan informasi yang diatur dalam anggota IRP berikut dan lokasi tumpukan IRP dalam memproses permintaan buffer flush:

  • DeviceObject adalah penunjuk ke objek perangkat target.

  • Irp->IoStatus menunjuk ke struktur IO_STATUS_BLOCK yang menerima status penyelesaian akhir dan informasi tentang operasi yang diminta.

  • IrpSp->FileObject menunjuk ke objek file yang terkait dengan DeviceObject.

    Parameter IrpSp-FileObject> berisi penunjuk ke bidang RelatedFileObject, yang juga merupakan struktur FILE_OBJECT. Bidang RelatedFileObject dari struktur FILE_OBJECT tidak valid selama pemrosesan IRP_MJ_FLUSH_BUFFERS dan tidak boleh digunakan.

  • IrpSp->MajorFunction diatur ke IRP_MJ_FLUSH_BUFFERS.

Lihat juga

CcFlushCache

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_FLUSH_BUFFERS (Referensi Kernel WDK)