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) |