struktur FLT_OPERATION_REGISTRATION (fltkernel.h)
Struktur FLT_OPERATION_REGISTRATION digunakan untuk mendaftarkan rutinitas panggilan balik operasi.
Sintaks
typedef struct _FLT_OPERATION_REGISTRATION {
UCHAR MajorFunction;
FLT_OPERATION_REGISTRATION_FLAGS Flags;
PFLT_PRE_OPERATION_CALLBACK PreOperation;
PFLT_POST_OPERATION_CALLBACK PostOperation;
PVOID Reserved1;
} FLT_OPERATION_REGISTRATION, *PFLT_OPERATION_REGISTRATION;
Anggota
MajorFunction
Kode fungsi utama yang menentukan jenis operasi I/O. Anggota ini diperlukan dan tidak boleh NULL. Untuk informasi selengkapnya tentang operasi tambahan, lihat FLT_PARAMETERS.
Flags
Bitmask bendera yang menentukan kapan harus memanggil rutinitas panggilan awal (PFLT_PRE_OPERATION_CALLBACK) dan pascaoperasi (PFLT_POST_OPERATION_CALLBACK) untuk operasi I/O yang di-cache atau halaman I/O. Anggota ini bersifat opsional dan bisa menjadi nol.
Bendera | Deskripsi |
---|---|
FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO (0x00000001) | Minifilter menetapkan bendera ini untuk operasi baca atau tulis untuk menentukan bahwa rutinitas panggilan balik praoperasi dan pascaoperasi tidak boleh dipanggil untuk operasi I/O halaman. Bendera ini hanya berlaku untuk operasi I/O berbasis IRP. Ini diabaikan untuk operasi I/O yang tidak berbasis IRP. |
FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO (0x00000002) | Minifilter menetapkan bendera ini untuk operasi baca atau tulis untuk menentukan bahwa rutinitas panggilan balik praoperasi dan pascaoperasinya tidak boleh dipanggil untuk operasi I/O yang di-cache. Bendera ini berlaku untuk I/O cepat serta baca dan tulis berbasis IRP karena semua I/O cepat di-cache. |
FLTFL_OPERATION_REGISTRATION_SKIP_NON_DASD_IO (0x00000004) | Minifilter mengatur bendera ini sehingga semua operasi yang dikeluarkan pada handel volume non-DASD akan dilewati. Perhatikan bahwa panggilan balik minifilter untuk operasi ini akan dilewati. |
FLTFL_OPERATION_REGISTRATION_SKIP_NON_CACHED_NON_PAGING_IO (0x00000008) | Minifilter mengatur bendera ini sehingga operasi baca atau tulis yang tidak di-cache atau halaman akan dilewati. Perhatikan bahwa panggilan balik minifilter untuk operasi ini akan dilewati. Bendera ini hanya relevan untuk permintaan IRP_MJ_READ dan IRP_MJ_WRITE. |
PreOperation
Arahkan ke rutinitas jenis PFLT_PRE_OPERATION_CALLBACK untuk didaftarkan sebagai rutinitas panggilan balik praoperasi untuk jenis operasi I/O ini. Anggota ini bersifat opsional dan dapat berupa NULL.
PostOperation
Arahkan ke rutinitas jenis PFLT_POST_OPERATION_CALLBACK untuk didaftarkan sebagai rutinitas panggilan balik pascaoperasi untuk jenis operasi I/O ini. Anggota ini bersifat opsional dan dapat berupa NULL.
Reserved1
Dicadangkan untuk penggunaan sistem. Minifilter harus mengatur anggota ini ke NULL.
Keterangan
Ketika minifilter memanggil FltRegisterFilter dari rutinitas DriverEntry-nya , itu dapat mendaftarkan rutinitas callback praoperasi (PFLT_PRE_OPERATION_CALLBACK) dan panggilan balik pascaoperasi (PFLT_POST_OPERATION_CALLBACK) untuk setiap jenis operasi I/O yang harus ditangani.
Untuk mendaftarkan rutinitas panggilan balik ini, minifilter membuat array panjang variabel struktur FLT_OPERATION_REGISTRATION dan menyimpan penunjuk ke array dalam anggota OperationRegistration dari struktur FLT_REGISTRATION yang diteruskan minifilter sebagai parameter PendaftaranFltRegisterFilter. Elemen terakhir dari array ini harus {IRP_MJ_OPERATION_END}.
Minifilter harus membuat struktur FLT_OPERATION_REGISTRATION terpisah untuk setiap jenis operasi I/O yang ditanganinya. Dalam struktur ini, minifilter menentukan titik masuk rutinitas panggilan baliknya dalam anggota PreOperation dan PostOperation struktur.
Minifilter dapat mendaftarkan rutinitas panggilan balik praoperasi untuk jenis operasi I/O tertentu tanpa mendaftarkan panggilan balik pascaoperasi dan sebaliknya.
Sistem file tidak menerima permintaan IRP_MJ_POWER atau IRP_MJ_DEVICE_CHANGE. Minifilter tidak dapat mendaftarkan rutinitas panggilan balik praoperasi atau pascaoperasi untuk operasi ini.
Minifilter tidak dapat mendaftarkan rutinitas panggilan balik pascaoperasi untuk IRP_MJ_SHUTDOWN.
Rutinitas panggilan balik praoperasi atau pascaoperasi tunggal dapat digunakan untuk memproses lebih dari satu jenis operasi I/O. Namun, rutinitas panggilan balik harus didaftarkan secara terpisah untuk setiap jenis operasi I/O.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | fltkernel.h (termasuk Fltkernel.h) |