Bagikan melalui


Fungsi FltRegisterFilter (fltkernel.h)

FltRegisterFilter mendaftarkan driver minifilter.

Sintaks

NTSTATUS FLTAPI FltRegisterFilter(
  [in]  PDRIVER_OBJECT         Driver,
  [in]  const FLT_REGISTRATION *Registration,
  [out] PFLT_FILTER            *RetFilter
);

Parameter

[in] Driver

Penunjuk ke objek driver untuk driver minifilter. Ini harus menjadi penunjuk objek driver yang sama yang diteruskan sebagai input ke rutinitas DriverEntry driver minifilter.

[in] Registration

Penunjuk ke struktur pendaftaran driver minifilter yang dialokasikan pemanggil (FLT_REGISTRATION).

[out] RetFilter

Penunjuk ke variabel yang dialokasikan penelepon yang menerima penunjuk filter buram untuk pemanggil.

Nilai kembali

FltRegisterFilter mengembalikan STATUS_SUCCESS atau nilai NTSTATUS yang sesuai seperti salah satu hal berikut ini:

Menampilkan kode Deskripsi
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter mengalami kegagalan alokasi kumpulan. Ini adalah kode kesalahan.
STATUS_INVALID_PARAMETER
Salah satu dari berikut ini:
  • Anggota Versi struktur Pendaftaran tidak diatur ke FLT_REGISTRATION_VERSION.
  • Salah satu rutinitas penyedia nama non-NULL dalam struktur Pendaftaran diatur ke nilai yang tidak valid. Anggota GenerateFileNameCallback, NormalizeNameComponentCallback, dan NormalizeNameComponentExCallbackFLT_REGISTRATION menunjuk ke rutinitas penyedia nama.
STATUS_INVALID_PARAMETER adalah kode kesalahan.
STATUS_FLT_NOT_INITIALIZED
Manajer Filter tidak diinisialisasi ketika filter mencoba mendaftar. Pastikan bahwa Manajer Filter dimuat sebagai driver. Ini adalah kode kesalahan.
STATUS_OBJECT_NAME_NOT_FOUND
Kunci layanan filter tidak ditemukan di registri.

-atau-

Instans filter tidak terdaftar.

Keterangan

Setiap driver minifilter harus memanggil FltRegisterFilter dari rutinitas DriverEntry-nya untuk menambahkan dirinya ke daftar global driver minifilter terdaftar dan untuk menyediakan Filter Manager dengan daftar fungsi panggilan balik dan informasi lain tentang driver minifilter.

FltRegisterFilter mengembalikan penunjuk filter buram untuk driver minifilter di *RetFilter. Nilai pointer ini secara unik mengidentifikasi driver minifilter dan tetap konstan selama driver minifilter dimuat. Driver minifilter harus menyimpan pointer ini, karena ini adalah parameter yang diperlukan untuk FltStartFiltering dan FltUnregisterFilter.

Setelah memanggil FltRegisterFilter, driver minifilter biasanya memanggil FltStartFiltering untuk mulai memfilter operasi I/O.

Driver minifilter hanya dapat memanggil FltRegisterFilter untuk mendaftarkan dirinya sendiri, bukan driver minifilter lain.

Untuk membatalkan pendaftaran sendiri, driver minifilter memanggil FltUnregisterFilter..

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header fltkernel.h (termasuk Fltkernel.h)
Pustaka FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Lihat juga

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter