Bagikan melalui


FLT_PARAMETERS untuk serikat IRP_MJ_MDL_READ

Anggota serikat FLT_PARAMETERS berikut digunakan saat FLT_IO_PARAMETER_BLOCK. MajorFunction IRP_MJ_MDL_READ.

Sintaks

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    LARGE_INTEGER           FileOffset;
    ULONG POINTER_ALIGNMENT Length;
    ULONG POINTER_ALIGNMENT Key;
    PMDL                    *MdlChain;
  } MdlRead;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Anggota

  • MdlRead: Struktur yang berisi anggota berikut.

  • FileOffset: Memulai byte dalam file yang di-cache.

  • Panjang: Panjang, dalam byte, dari data yang akan dibaca dari file yang di-cache.

  • Kunci: Nilai kunci yang terkait dengan kunci rentang byte pada file target. Jika rentang yang akan dibaca tumpang tindih atau merupakan subrange dari rentang yang dikunci secara eksklusif dalam file, parameter ini harus menjadi kunci untuk kunci eksklusif tersebut. Kunci eksklusif harus dipegang oleh proses induk utas panggilan; jika tidak, parameter ini diabaikan.

  • MdlChain: Penunjuk ke variabel yang menerima penunjuk ke rantai satu atau beberapa daftar deskriptor memori (MDL) yang menjelaskan halaman yang berisi data yang akan dibaca.

Keterangan

IRP_MJ_MDL_READ adalah operasi I/O yang cepat. Ini melakukan hal yang sama seperti IRP_MJ_READ + IRP_MN_MDL kecuali untuk perbedaan berikut:

  • Operasi berbasis IRP menyiapkan penembolokan pada file jika belum di-cache sebelum melakukan pekerjaan MDL.
  • Operasi Fast IO gagal jika file belum di-cache.

Struktur FLT_PARAMETERS untuk operasi IRP_MJ_MDL_READ berisi parameter untuk operasi I/O MdlRead yang cepat. Operasi ini diwakili oleh struktur (FLT_CALLBACK_DATA), dengan parameter operasi dalam struktur FLT_IO_PARAMETER_BLOCK yang ditunjuk Iopb.

Jika permintaan I/O IRP_MJ_MDL_READ cepat gagal, penerbit I/O menentukan cara menerbitkan ulang permintaan. Misalnya, permintaan dapat diterbitkan kembali sebagai operasi berbasis IRP menggunakan IRP_MJ_READ + IRP_MN_MDL.

Persyaratan

Jenis persyaratan Persyaratan
Header Fltkernel.h (termasuk Fltkernel.h)

Lihat juga

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS