FLT_PARAMETERS untuk serikat IRP_MJ_READ
Komponen penyatuan berikut digunakan ketika bidang MajorFunction dari struktur FLT_IO_PARAMETER_BLOCK untuk operasi IRP_MJ_READ.
Sintaks
typedef union _FLT_PARAMETERS {
... ;
struct {
ULONG Length;
ULONG POINTER_ALIGNMENT Key;
LARGE_INTEGER ByteOffset;
PVOID ReadBuffer;
PMDL MdlAddress;
} Read;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
Anggota
Baca: Struktur yang berisi anggota berikut.
Panjang: Panjang, dalam byte, dari data yang akan dibaca.
Kunci: Nilai kunci yang terkait dengan kunci rentang byte pada file target.
ByteOffset: Memulai offset byte dalam file data yang akan dibaca.
ReadBuffer: Penunjuk ke buffer yang menerima data yang dibaca dari file. Anggota ini bersifat opsional dan dapat berupa NULL jika MDL disediakan di MdlAddress. Lihat Keterangan.
MdlAddress: Alamat daftar deskriptor memori (MDL) yang menjelaskan buffer yang ditunjuk anggota ReadBuffer . Anggota ini bersifat opsional dan dapat berupa NULL jika buffer disediakan di ReadBuffer. Lihat Keterangan.
Keterangan
Struktur FLT_PARAMETERS untuk operasi IRP_MJ_READ berisi parameter untuk operasi baca yang diwakili oleh struktur data panggilan balik (FLT_CALLBACK_DATA). Ini terkandung dalam struktur FLT_IO_PARAMETER_BLOCK.
Jika buffer ReadBuffer dan MdlAddress disediakan, disarankan agar minifilter menggunakan MDL. Memori yang dituju ReadBuffer valid ketika merupakan alamat mode pengguna yang diakses dalam konteks proses panggilan, atau jika itu adalah alamat mode kernel.
Jika minifilter mengubah nilai MdlAddress, maka setelah panggilan balik operasi pasca operasinya, Filter Manager akan membebaskan MDL yang saat ini disimpan di MdlAddress dan memulihkan nilai MdlAddress sebelumnya.
Jika bit IRP_MN_COMPLETE diatur dalam Iopb-MinorFunction>, maka MdlAddress adalah alamat untuk dikirim ke CcMdlReadComplete.
Jika bit IRP_MN_MDL (dan bukan bit IRP_MN_COMPLETE) diatur dalam Iopb-MinorFunction>, maka MdlAddress adalah alamat untuk dikirim ke CcMdlRead.
IRP_MJ_READ dapat menjadi operasi berbasis IRP atau operasi I/O yang cepat.
Persyaratan
Jenis persyaratan | Persyaratan |
---|---|
Header | Fltkernel.h (termasuk Fltkernel.h) |