Bagikan melalui


Konsep Manajer Filter

Filter Manager (FltMgr.sys) adalah driver mode kernel yang disediakan sistem yang mengimplementasikan dan mengekspos fungsionalitas yang umumnya diperlukan dalam driver filter sistem file. Pengembang filter sistem file dapat menggunakan fungsionalitas FltMgr untuk menulis driver minifilter yang lebih sederhana untuk dikembangkan daripada driver filter sistem file warisan. Hasil akhirnya adalah proses pengembangan yang dipersingkat dan driver berkualitas lebih tinggi dan lebih kuat.

FltMgr diinstal dengan Windows, tetapi menjadi aktif hanya ketika driver minifilter dimuat. Ini melampirkan ke tumpukan sistem file untuk volume target. Driver minifilter melekat pada tumpukan sistem file secara tidak langsung, dengan mendaftar dengan FltMgr untuk operasi I/O yang dipilih driver minifilter untuk difilter.

Minifilter terpasang dalam urutan tertentu. Sistem operasi menentukan urutan lampiran berdasarkan grup urutan beban dan ketinggian. Lampiran driver minifilter pada ketinggian tertentu pada volume tertentu disebut instans driver minifilter.

Ketinggian minifilter:

  • Memastikan bahwa instans driver minifilter selalu dimuat di lokasi yang sesuai relatif terhadap instans driver minifilter lainnya.
  • Menentukan urutan di mana FltMgr memanggil driver minifilter untuk menangani I/O.

Gambar berikut menunjukkan tumpukan I/O yang disederhanakan dengan manajer filter dan tiga driver minifilter.

Diagram yang mengilustrasikan tumpukan I/O yang disederhanakan dengan manajer filter dan tiga driver minifilter.

Driver minifilter dapat memfilter operasi I/O berbasis IRP dan operasi panggilan balik I/O dan sistem file (FSFilter) yang cepat. Untuk setiap operasi I/O yang dipilihnya untuk difilter, minifilter dapat mendaftarkan rutinitas panggilan balik praoperasi, rutinitas panggilan balik pascaoperasi, atau keduanya. Ketika FltMgr menangani operasi I/O, FltMgr memanggil rutinitas panggilan balik yang sesuai untuk setiap driver minifilter yang terdaftar untuk operasi tersebut. Ketika rutinitas panggilan balik kembali, FltMgr memanggil rutinitas panggilan balik yang sesuai untuk driver minifilter berikutnya yang terdaftar untuk operasi.

Misalnya, asumsikan ketiga driver minifilter dalam angka ini yang terdaftar untuk operasi I/O yang sama. Dalam situasi ini:

  • Ketika FltMgr menerima operasi I/O, FltMgr memanggil rutinitas panggilan balik praoperasi minifilter dalam urutan ketinggian dari tertinggi ke terendah (A, B, C). FltMgr kemudian meneruskan permintaan I/O ke driver yang lebih rendah berikutnya untuk diproses lebih lanjut.
  • Ketika FltMgr menerima permintaan I/O untuk penyelesaian, FltMgr memanggil setiap rutinitas panggilan balik pascaoperasi driver minifilter dalam urutan terbalik, dari terendah ke tertinggi (C, B, A).

Untuk interoperabilitas dengan driver filter lama, FltMgr dapat melampirkan objek perangkat filter ke tumpukan I/O sistem file di lebih dari satu lokasi. Masing-masing objek perangkat filter FltMgr disebut bingkai. Dari perspektif driver filter warisan, setiap bingkai manajer filter hanyalah driver filter warisan lainnya.

Setiap bingkai manajer filter mewakili rentang ketinggian. FlgMgr dapat menyesuaikan bingkai yang ada atau membuat bingkai baru untuk memungkinkan driver minifilter dipasang di lokasi yang benar.

FltMgr tidak dapat melampirkan minifilter antara dua filter warisan yang terpasang kecuali sudah ada bingkai manajer filter di antara mereka. Jika minifilter dimaksudkan untuk dilampirkan di atas filter warisan, itu dapat dilampirkan di bawahnya, tergantung pada keberadaan filter warisan kedua yang terpasang. Minifilter yang dimaksudkan untuk dilampirkan di bawah filter warisan dapat, sebagai gantinya, dilampirkan di atas filter warisan tersebut.

Penting

Selalu verifikasi interoperabilitas filter warisan dengan minifilter atau pertimbangkan untuk mengganti filter warisan dengan minifilter. Untuk informasi selengkapnya, lihat Panduan untuk Porting Driver Filter Warisan.

Jika driver minifilter dibongkar dan dimuat ulang, sistem memuat ulang pada ketinggian yang sama dalam bingkai yang sama tempat driver dibongkar.

Gambar berikut menunjukkan tumpukan I/O yang disederhanakan dengan dua bingkai manajer filter, instans driver minifilter, dan driver filter warisan.

Diagram yang mengilustrasikan tumpukan I/O yang disederhanakan dengan dua bingkai manajer filter, instans driver minifilter, dan driver filter warisan.