Bagikan melalui


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)

Lihat juga

FLT_REGISTRATION

FltRegisterFilter

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK