Kedalaman I/O Windows (bagian 6, terakhir) — driver filter dan minifilter: mengapa Procmon dan pemindaian virus dapat menyela I/O

· Diperbarui pada: · · Windows, Win32, I/O, Minifilter, Kernel, Device driver, Keamanan, Investigasi bug

Riwayat revisi (4 pembaruan, terakhir pada 31 Aug 2026)

Catatan perubahan yang dilakukan pada artikel ini. Jika versi sebelumnya telah diarsipkan, versi itu tetap dapat dibaca melalui tautan permanen dengan DOI.

Diterjemahkan ulang sebagai terjemahan lengkap dari naskah Jepang. Versi bahasa Indonesia sebelumnya adalah ringkasan yang hanya memindahkan sebagian naskah, sehingga bagian, tabel, gambar Mermaid, keterangan gambar, dan FAQ tidak ada. Semuanya dipulihkan sesuai naskah Jepang, dan klaim teknisnya sama dengan versi Jepang.
Relasi dalam peta pengetahuan artikel ini ditinjau ulang. Relasi yang klaimnya lebih luas daripada teks (relasi yang hanya berlaku bersyarat, relasi yang setara dengan «mengurangi» bukan «mencegah», relasi yang merupakan rekomendasi bukan prasyarat) diubah menjadi bersyarat atau predikatnya diganti agar lebih akurat. Klaim dalam teks tidak diubah.
«Peta pengetahuan artikel ini» ditambahkan di awal artikel. Relasi antar konsep yang dibahas dalam teks dapat dilihat dalam satu diagram. Daftar lengkap relasi (beserta URL bukti, tingkat kepastian, dan tanggal konfirmasi) serta definisi konsep utama dikumpulkan di halaman rincian peta pengetahuan, dan data yang dapat dibaca mesin dipublikasikan dalam JSON-LD dan Turtle.
Struktur kolom keluaran `fltmc` dan cara membacanya ditambahkan (nilai yang ditampilkan berasal dari daftar alokasi altitude yang dipublikasikan Microsoft, bukan keluaran dari mesin nyata). Prosedur dan tujuan pengajuan altitude, tiga langkah pertama di Process Monitor, dan penataan label tautan seri ditambahkan.
Publikasi pertama
Mengutip artikel ini(DOI (arsip terdaftar): 10.5281/zenodo.22175396)

DOI di bawah mengarah ke versi yang telah diarsipkan sebelumnya dan mungkin berbeda dari teks saat ini. Gunakan URL halaman ini untuk merujuk teks saat ini.

Go Komura (2026). Kedalaman I/O Windows (bagian 6, terakhir) — driver filter dan minifilter: mengapa Procmon dan pemindaian virus dapat menyela I/O. KomuraSoft LLC. https://comcomponent.com/id/blog/windows-minifilter-filter-drivers/

DOI (arsip terdaftar)
10.5281/zenodo.22175396
DOI (versi terakhir yang didaftarkan)
10.5281/zenodo.22175397

Ini bagian terakhir seri «Kedalaman I/O Windows».

Sejak kotak «filter sistem file (antivirus, enkripsi, Procmon, dan sejenisnya)» digambar di diagram device stack bagian 1, filter yang menyela di tengah jalur berkali-kali muncul di seri ini. Alasan Procmon dapat merekam seluruh I/O (bagian 1). «Hanya di lingkungan itu akses file lambat» (bagian 2). Reparse point yang membuat OneDrive mulai mengunduh pada saat file dibuka (bagian 5). Kali ini mekanismenya sendiri yang dibahas secara langsung — driver filter sistem file dan minifilter — dan seluruh pertanyaan yang ditunda di seri ini dijawab.

1. Intinya dulu

  • «Menyela I/O» adalah titik perluasan yang diakui OS. Filter sistem file dapat melihat, mengubah, menolak, dan memproses sebagai pengganti permintaan ke sistem file (bab 2).1
  • Standar saat ini adalah minifilter. Untuk menyelesaikan masalah cara legacy yang menyela langsung ke device stack (urutan tidak tentu, tidak dapat di-unload), generasi berganti ke pendaftaran callback ke Filter Manager (FltMgr) yang menyertai Windows (bab 2).23
  • Alur kerjanya adalah callback pre/post. Dipanggil sebelum dan sesudah setiap operasi, dalam urutan pendaftaran = urutan altitude. Meneruskan, menyelesaikan, menolak, mengubah — «pilihan driver» yang terlihat di bagian 1 dapat dipakai apa adanya (bab 3).2
  • Altitude (ketinggian) yang menentukan urutan. Pita nomor dialokasikan per grup menurut kegunaan (Activity Monitor 360000–389999, Anti-Virus 320000–329999, dan sebagainya), dan setiap instance yang terpasang ke volume mendapat nomor unik (bab 4).45
  • Penghuni PC dapat dilihat dengan fltmc. Procmon (hanya saat berjalan), antivirus, cloud filter OneDrive — semuanya berbaris di sini (bab 5).
  • Pengaturan pengecualian antivirus berarti «melewati pemindaian produk itu sendiri», dan tidak memengaruhi minifilter lain. Pengecualian adalah trade-off yang melemahkan perlindungan. Untuk volume pengembangan ada pilihan yang lebih aman: Dev Drive (pemindaian asinkron) (bab 6).67
  • Investigasi «hanya lingkungan itu yang lambat» dimulai dari kolom Duration Procmon dan perbandingan konfigurasi fltmc (bab 7).

Pada diagram, garis utuh menunjukkan relasi yang selalu berlaku dan garis putus-putus menunjukkan relasi bersyarat (syaratnya ada pada penjelasan masing-masing relasi di halaman rincian). Daftar lengkap relasi (total 34, beserta bukti dan tingkat kepastian) serta definisi konsep utama dikumpulkan di halaman rincian peta pengetahuan (dalam bahasa Jepang). Data: JSON-LD / Turtle

2. Sejarah filter yang menyela — dari filter legacy ke FltMgr

Driver filter sistem file adalah driver yang dapat menyela permintaan yang menuju sistem file (atau volume di bawahnya). Permintaan dapat direkam, dipantau, isinya diubah, bahkan ditolak atau diproses sebagai pengganti — fondasi perangkat lunak seperti antivirus, enkripsi, cadangan, dan hierarchical storage.1

Cara implementasi lama (filter legacy) menumpuk objek perangkatnya sendiri langsung ke device stack yang dibahas di bagian 1. Sebagai mekanisme, itu lurus, tetapi dalam praktik penuh masalah: urutan penumpukan bergantung pada urutan muat dan sulit dijamin; sekali tertumpuk, tidak dapat keluar dengan aman (tidak dapat di-unload); menjadi sarang bug kecocokan antar filter.

Karena itu Windows memperkenalkan Filter Manager (FltMgr). FltMgr sendiri berdiri di stack sebagai filter yang menyertai OS, dan setiap fungsi filter mendaftarkan callback ke FltMgr sebagai minifilter.2

Cara minifilter (standar saat ini)Pendaftaran callbackPendaftaran callbackFilter Manager (FltMgr)menyertai OS. Yang berdiri di stack hanya iniMinifilter A (altitude tinggi)Minifilter B (altitude rendah)Sistem fileUrutan deterministik lewat altitudedapat dimuat kapan saja(filter yang mendukung juga dapat di-unload)Cara legacyFilter legacy AFilter legacy BSistem fileUrutan terserah urutan muatunload aman tidak mungkin

Gambar 1: Pergantian generasi. Bukan «menumpuk» ke stack, melainkan cara «mendaftar» ke FltMgr

Keuntungan cara minifilter dicantumkan secara resmi — dapat dimuat kapan saja, urutan dapat dikendalikan, dan filter yang mengimplementasikan callback unload dapat di-unload saat berjalan (filter yang tidak mengimplementasikannya, atau yang menolak, tidak dapat dilepas).3 Agar hidup berdampingan dengan filter legacy, FltMgr dapat berdiri di beberapa tempat di stack sebagai beberapa «frame», dan minifilter dijamin kembali ke posisi yang sama (altitude yang sama) bahkan setelah di-unload lalu dimuat ulang.2 Antivirus, pemantauan, dan perangkat lunak sinkronisasi modern hampir semuanya minifilter ini.

3. Cara kerja minifilter — callback pre/post

Minifilter menyatakan «operasi mana yang menarik» kepada FltMgr. Misalnya, hanya tertarik pada IRP_MJ_CREATE (membuka) dan IRP_MJ_WRITE (menulis). Maka, setiap kali operasi itu mengalir, sebelum operasi (callback pre) dan sesudah operasi (callback post) dipanggil.

NTFSMinifilter B(altitude rendah)Minifilter A(altitude tinggi)FltMgrI/O ManagerNTFSMinifilter B(altitude rendah)Minifilter A(altitude tinggi)FltMgrI/O ManagerPermintaan (IRP_MJ_CREATE dll. Dunia bagian 1)Callback preCallback preKe sistem fileHasil pemrosesanCallback postCallback postSelesai (ke alur penyelesaian bagian 1)

Gambar 2: Callback pre/post. Pergi dipanggil dari altitude tinggi ke rendah, pulang dalam urutan terbalik

Apa yang dapat dilakukan di setiap callback. Komposisi yang sama dengan «tiga pilihan driver» di bab 4.3 bagian 1 disediakan dengan API yang lebih aman.

Callback pre dipanggilApa yang dilakukan terhadap operasi iniMeneruskan(jika post tidak perlu, nyatakan itu juga)Menolaksegera mengembalikan penolakan akses dll.contoh: deteksi virus, larangan tulisMenyelesaikan sendiricontoh: cloud filter mengambilisi sebenarnya lalu menyerahkannyaMengubah parameter atau isi lalu meneruskancontoh: filter enkripsi

Gambar 3: Pilihan callback pre. «Melihat, menghentikan, mengambil alih, mengubah» semuanya secara resmi dapat dilakukan

Dan pertanyaan yang tertunda di bagian 4 dijawab di sini — minifilter juga dapat hadir di Fast I/O (jalan pintas yang tidak membuat IRP). Karena FltMgr mengalirkan mekanisme callback ke jalur Fast I/O juga, tidak ada lagi «tidak terlihat jika jalan pintas dilalui» seperti era legacy. Alasan baris FASTIO_ berbaris di log Procmon adalah berkat posisi berdiri ini.

4. Altitude — «ketinggian» yang menentukan urutan

Ketika beberapa filter tertarik pada operasi yang sama, siapa yang melihat lebih dulu adalah masalah besar. Jika antivirus tidak melihat sebelum enkripsi, ia terpaksa memindai ciphertext. Alat pemantauan tidak dapat mengamati keseluruhan kecuali berada di atas semua pihak lain.

Yang menentukan urutan ini adalah altitude (ketinggian). Grup urutan muat dan pita nomor didefinisikan per jenis filter. Secara tepat, satuan yang mendapat altitude bukan seluruh driver, melainkan «instance» minifilter yang terpasang ke volume. Nomornya unik, dan semakin besar angkanya semakin di atas stack (lebih dekat ke aplikasi).4 Satu driver dapat memiliki beberapa definisi instance dan muncul di ketinggian berbeda; itulah sebabnya daftar fltmc instances per instance.

Lebih dekat ke aplikasi (angka lebih besar)FSFilter Activity Monitor: 360000–389999pengamatan dan pencatatan I/O (Procmon di sini)FSFilter Undelete: 340000–349999pemulihan file yang dihapusFSFilter Anti-Virus: 320000–329999deteksi dan pemberantasan virusFSFilter Replication: 300000–309999replikasi ke remoteFSFilter Continuous Backup: 280000–289999cadangan berkelanjutanLebih ke bawah: Content Screener /Quota Management / System Recovery /pita enkripsi, kompresi, dll. berlanjutLebih dekat ke sistem file (angka lebih kecil)

Gambar 4: Pita altitude (kutipan). Setiap kegunaan punya «ketinggian yang harus diduduki»

Yang penting: nomor ini dialokasikan dan dikelola oleh Microsoft.5 Vendor tidak menamai sendiri, melainkan mengajukan dan menerima — karena itu di PC mana pun tatanan «pemantauan di atas antivirus, antivirus di atas enkripsi» terjaga. Inilah jawaban terhadap «undian urutan muat» era legacy.

Tujuan pengajuan jika membuat minifilter sendiri. Untuk pengembang, satu langkah berikutnya saja. Altitude diajukan mengikuti prosedur Request a Filter Altitude Identifier, dengan subjek «Filter altitude request», dikirim sebagai email berbahasa Inggris ke fsfcomm@microsoft.com. Nama perusahaan, kontak (alias perusahaan yang dapat dipakai jangka panjang, bukan pribadi), nama produk, URL produk, deskripsi filter, nama file driver, jenis filter, jenis mulai, grup urutan muat yang diinginkan, dan altitude yang diinginkan — semuanya harus diisi. Perkirakan 30 hari kerja untuk pemrosesan, tidak ada loket darurat, dan nomor yang dialokasikan bisa berbeda dari yang diinginkan, juga dinyatakan dengan tegas.8 Selain itu, jika perusahaan sudah memiliki altitude bilangan bulat di grup urutan muat yang sama, nilai dengan desimal pada nomor itu (contoh: 325000.3) boleh diputuskan sendiri; dalam kasus itu cukup menghubungi lewat email setelah fakta.8

5. Perkenalan penghuni — melihat PC dengan fltmc

Cukup teori; mari lihat yang nyata. Dari command prompt dengan hak administrator:

:: Daftar minifilter yang terdaftar (beserta altitude)
fltmc

:: Filter mana yang terpasang di volume mana
fltmc instances

:: Dilihat dari sisi volume
fltmc volumes

fltmc tanpa argumen mengeluarkan daftar yang sama dengan fltmc filters. Keluarannya empat kolom, dan contoh format yang sama juga ada di dokumentasi Microsoft.9

C:\Windows\system32>fltmc

Filter Name                     Num Instances    Altitude    Frame
------------------------------  -------------  ------------  -----
bindflt                                 1        409800         0
cldflt                                  1        409500         0
WdFilter                                4        328010         0
luafv                                   1        135000         0
FileInfo                                4         45000         0

Di atas adalah kutipan untuk penjelasan. Filter yang muncul dan jumlah instance berbeda per lingkungan, tetapi nilai altitude adalah nilai tetap yang dialokasikan Microsoft, jadi dapat dicocokkan dengan daftar publik yang disinggung di bab 4.

Arti kolom adalah sebagai berikut.

Kolom Arti
Filter Name Nama filter (driver)
Num Instances Ke berapa volume terpasang (jumlah instance di bab 4)
Altitude Altitude. Semakin besar, semakin dekat ke aplikasi
Frame Nomor frame FltMgr. Jika ini <Legacy>, itu tanda filter legacy yang tidak memakai FltMgr masih hidup.9

Dari lima baris ini saja, dapat dibaca bahwa bindflt dan cldflt berada di pita FSFilter Top teratas (400000–409999), WdFilter di pita Anti-Virus (320000–329999), dan FileInfo di pita FSFilter Bottom terbawah (40000–49999). Komposisi «ketinggian yang harus diduduki per kegunaan» yang terlihat di bab 4 dapat dikonfirmasi apa adanya sebagai angka. Dan jika fltmc dijalankan lagi setelah Procmon dimulai, satu baris yang dimulai PROCMON bertambah di pita Activity Monitor (360000–389999).

Daftar yang muncul berbeda menurut lingkungan, tetapi penghuni khas adalah yang sudah sering muncul di seri ini.

  • WdFilter — minifilter Microsoft Defender. Berada di pita Anti-Virus. Di banyak PC, pos pemeriksaan yang dilalui setiap I/O file.
  • cldflt — filter file cloud. Komponen yang menjalankan Files On-Demand OneDrive, yang menyiapkan isi sebenarnya ketika reparse point (placeholder) yang dibahas di bagian 5 dibuka.10
  • PROCMON24 (dll.) — minifilter sementara pita Activity Monitor yang hanya muncul selama Process Monitor berjalan. Inilah rahasia Procmon dapat melihat seluruh I/O.11 Jalankan fltmc sebelum dan sesudah memulai, lalu bandingkan.
  • Selain itu, perangkat lunak cadangan, produk enkripsi (pencegahan kebocoran informasi), EDR, penyimpanan virtualisasi — semakin PC bisnis, semakin banyak penghuninya.

Jika alat Procmon yang dipakai sejak bagian 1 ditinjau dari luar kotak alat di bagian terakhir, terbentuk sirkulasi yang rapi: «pengamat pun, ternyata, adalah penghuni mekanisme yang sama dengan yang diamati».

6. Di mana antivirus menghabiskan waktu

Dampak praktis terbesar filter adalah biaya pemindaian antivirus. Berikut diagram di mana waktu terjadi (detail berbeda per produk; berikut adalah bentuk khas).

NTFSMinifilter AVAplikasiNTFSMinifilter AVAplikasipre-create: penilaian awal jalur atau kebijakanJika file belum dipindai,memindai isi di sini danjika ada masalah membatalkan buka── penyebab utama buka menjadi lambatFile yang diubah menjadisasaran pindai ulang saat ditutup dll.Pada banyak file kecil (hasil antara build dll.)bolak-balik ini menumpuk sebanyak jumlah fileMembuka fileMeneruskan (eksekusi buka)Buka berhasil (post-create)Jika tidak ada masalah, handle dikembalikanMenulis / menutup

Gambar 5: Titik terjadinya biaya pemindaian. Per file kecil, tetapi menjadi dominan jika puluhan ribu file

Dengan ini, dua topik praktis dapat dipahami dengan tepat.

Arti teknis pengaturan pengecualian. Pada I/O ke jalur yang cocok dengan daftar pengecualian, pemrosesan pemindaian filter dilewati. Filter tidak hilang dari stack; kenyataannya, keputusan «jangan periksa» diambil lebih awal. Dan ada satu batasan penting lagi — pengecualian hanya berlaku untuk filter produk yang memiliki pengaturan itu sendiri. Pengaturan pengecualian Microsoft Defender mengubah pemindaian WdFilter, dan tidak memengaruhi sama sekali perilaku minifilter lain yang tinggal bersama (antivirus pihak lain, EDR, cadangan, enkripsi, dan sebagainya). Ketika «sudah ditambah pengecualian tetapi masih lambat», curigai kemungkinan penghuni lain yang menghabiskan waktu (perbandingan fltmc bab 7). Efeknya besar, tetapi pengecualian pasti melemahkan perlindungan di lokasi itu. Dokumentasi Microsoft juga berulang kali memperingatkan bahwa pengecualian mengurangi pertahanan, jadi seminimal mungkin di atas penilaian risiko.6 Praktik penanganan deteksi salah dan dampak kinerja dibahas di «Jika aplikasi Windows buatan sendiri diperlakukan sebagai virus».

Jawaban baru bernama Dev Drive. Volume khusus yang dirancang untuk beban kerja pengembangan (banyak file kecil), di mana Microsoft Defender berjalan dalam mode kinerja (pemindaian asinkron). Diposisikan sebagai alternatif yang lebih aman terhadap pengecualian folder; secara default filter tambahan tidak terpasang, sementara peringatan kuat terhadap operasi melepas semua filter juga dinyatakan dengan tegas.7 Ini rekomendasi Microsoft saat ini terhadap «ingin mempercepat build tetapi takut pengecualian».

7. Prosedur investigasi «hanya lingkungan itu yang lambat»

Alat yang ditumpuk sepanjang seri, terakhir dirangkum menjadi satu prosedur.

YaYaTidakTidak (sporadis)Gejala: aplikasi sama tetapi hanya lingkungan tertentuakses filenya lambatLihat kolom Duration di Procmonoperasi mana (IRP_MJ_CREATE? WRITE?)yang menghabiskan waktuOperasi tertentu seragam lambat?Bandingkan fltmc instances dengan lingkungan yang cepatlihat selisih konfigurasi filterFilter selisih yang menjadi penyebab?Pengaturan pengecualian (dengan penilaian risiko) ataupertimbangan Dev Drive / konsultasi ke vendorCurigai selain filter:cache (bagian 4) / fragmentasi atau MFT (bagian 5) /tujuan jaringan (UNC) / perangkat itu sendiri

Gambar 6: Pemilahan kelambatan yang disebabkan filter. Kuncinya adalah «waktu yang diambil per operasi» dan «selisih konfigurasi filter antar lingkungan»

Poinnya dua. Pertama, Procmon punya waktu yang diambil per operasi (Duration). Jika «lambat» dapat dipecah menjadi «operasi mana yang lambat», pencarian pelaku sudah setengah selesai. Kedua, selisih lingkungan sering adalah selisih konfigurasi filter. Mesin pengembangan dan mesin produksi, PC sendiri dan PC pelanggan — cukup menyusun keluaran fltmc, kandidat yang harus dicurigai sudah terlihat.

Tiga langkah pertama jika belum pernah menyentuh Procmon. Kolom Duration secara default tidak ditampilkan, jadi operasinya saja ditulis agar tidak berhenti di sini.

  1. Mulai Procmon.exe sebagai administrator.
  2. Buka Options menu > Select Columns…, dan centang Duration dari daftar kolom.
  3. Di Filter menu > Filter… (Ctrl+L), masukkan Process Name / is / nama exe sasaran / Include, dan tekan tombol Add lalu OK (tanpa Add, syarat tidak masuk).

Setelah itu, klik kolom Duration untuk mengurutkan, maka operasi yang memakan waktu berkumpul di atas. Untuk agregasi per proses atau per file, Tools menu > File Summary juga dapat dipakai. Operasi ProcMon secara umum dirangkum di «Panduan praktis Process Monitor (ProcMon)».

8. Penutup seri — peta 6 bagian

Dengan ini, semua kotak peta yang digambar di bagian 1 sudah dibuka. Seluruhnya dalam satu lembar.

Penyelesaian kembali ke siniI/O dengan cache aktif bekerja sama(sistem file memanggil fungsi cache)Interupsi → selesai (bagian 1)AplikasiReadFile / WriteFile / async-awaitBagian 2: I/O sinkron dan asinkronmode handle dan OVERLAPPEDBagian 3: IOCP dan thread pool .NETpenerimaan penyelesaian dan eksekusi kelanjutanBagian 1: I/O Manager dan IRPresolusi nama, tiga objek, device stackBagian 6: filter dan minifilterFltMgr, altitude, pre/postBagian 4: Cache Managerview 256 KB, lazy writer, Fast I/O(bekerja sama dengan NTFS)Bagian 5: NTFSMFT, stream, tautan, dua jurnalStorage stack dan perangkat

Gambar 7: Peta seluruh seri. Cache Manager bukan «lapisan yang dilewati» melainkan mitra yang bekerja sama dengan sistem file; saat cache miss, permintaan dari NTFS ke penyimpanan dikeluarkan

9. Ringkasan — penutup seri

Ringkasan bagian terakhir.

  • Penyelaan ke I/O adalah titik perluasan yang diakui OS, dan standar saat ini adalah pendaftaran callback ke FltMgr (minifilter). Urutan ditentukan secara deterministik oleh altitude, dan Microsoft mengalokasikan serta mengelola nomornya.245
  • Alur kerjanya callback pre/post. Dapat meneruskan, menolak, mengambil alih, mengubah, dan juga hadir di Fast I/O. Procmon, Defender, maupun OneDrive, semuanya penghuni mekanisme yang sama.11110
  • Pengaturan pengecualian = melewati pemindaian, dan itu trade-off dengan perlindungan. Untuk volume pengembangan ada pilihan yang lebih aman: Dev Drive (pemindaian asinkron).67
  • «Hanya lingkungan itu yang lambat» dipilah dari Duration Procmon dan selisih konfigurasi fltmc — alat seri ini menjadi prosedur investigasi apa adanya.

Dan kesimpulan seluruh seri dalam satu baris adalah ini — I/O Windows adalah desain yang konsisten: tujuan ditentukan di namespace, permintaan diubah menjadi paket (IRP) dan dialirkan antar lapisan, dan setiap lapisan dapat memilih «melihat, menitipkan, mengambil alih». Di bawah satu baris File.ReadAllText, struktur enam bagian ini bergerak setiap kali. Alih-alih menghafal perilaku API, «seharusnya demikian» dapat diturunkan dari peta ini — itulah kekuatan yang ingin diberikan seri ini. Terima kasih telah menemani perjalanan yang panjang.

Artikel terkait

Area konsultasi terkait

KomuraSoft LLC menangani investigasi masalah kinerja dan bug aplikasi bisnis Windows yang melibatkan driver filter, seperti «hanya lingkungan tertentu yang lambat» atau «perangkat lunak keamanan mengganggu aplikasi sendiri».

Tautan referensi

  1. Microsoft Learn, About file system filter drivers. Tentang driver filter sistem file sebagai driver opsional yang dapat menyela (mengintersepsi) permintaan yang menuju sistem file atau driver filter lain; dengan menyela permintaan, fungsi dapat diperluas atau diganti sebelum sampai ke tujuan asli, dan permintaan dapat direkam, dipantau, datanya diubah, atau perilakunya dicegah; dan bahwa utilitas antivirus, program enkripsi, sistem hierarchical storage management, dan sebagainya adalah contoh driver filter. ↩ ↩2 ↩3

  2. Microsoft Learn, Filter Manager Concepts. Tentang Filter Manager (FltMgr) sebagai driver mode kernel yang menyertai Windows dan memublikasikan fungsi yang menyederhanakan pengembangan driver minifilter; minifilter yang dapat mendaftarkan pemrosesan sebelum dan sesudah operasi I/O (callback pre/post); FltMgr yang dapat terpasang di beberapa tempat di I/O stack sebagai frame agar hidup berdampingan dengan filter legacy; dan minifilter yang kembali ke altitude yang sama di frame yang sama bahkan setelah di-unload dan dimuat ulang. ↩ ↩2 ↩3 ↩4 ↩5

  3. Microsoft Learn, Advantages of the Filter Manager Model. Tentang kelebihan model minifilter terhadap model filter legacy, termasuk pengendalian urutan muat filter yang lebih baik; minifilter yang, berbeda dari filter legacy, dapat dimuat kapan saja; unload yang dimungkinkan; dan lampiran ke volume DAX dan sebagainya. ↩ ↩2

  4. Microsoft Learn, Load order groups and altitudes for minifilter drivers. Tentang grup urutan muat per kegunaan yang didefinisikan untuk filter sistem file, dengan rentang altitude dialokasikan ke setiap grup; setiap driver filter yang punya pengidentifikasi altitude unik yang menentukan posisi relatifnya terhadap filter lain di I/O stack; dan contoh grup seperti FSFilter Activity Monitor (360000–389999, pengamatan dan pelaporan I/O), FSFilter Undelete (340000–349999), FSFilter Anti-Virus (320000–329999, deteksi dan pemberantasan virus selama I/O file), FSFilter Replication (300000–309999), FSFilter Continuous Backup (280000–289999). ↩ ↩2 ↩3

  5. Microsoft Learn, Allocated altitudes. Tentang altitude minifilter yang dialokasikan dan dikelola oleh Microsoft, dengan daftar altitude yang sudah dialokasikan dipelihara secara publik; dan bahwa di daftar itu WdFilter.sys tercantum sebagai 328010 di grup FSFilter Anti-Virus, dan cldflt.sys sebagai 409500 di grup FSFilter Top. ↩ ↩2 ↩3

  6. Microsoft Learn, Configure and validate exclusions for Microsoft Defender Antivirus. Tentang pengaturan pengecualian Microsoft Defender yang mengeluarkan file, folder, dan proses sasaran dari pemindaian; dan bahwa pengecualian menurunkan tingkat perlindungan, jadi harus didefinisikan dengan hati-hati di atas penilaian kebutuhan, yang diingatkan berulang. ↩ ↩2 ↩3

  7. Microsoft Learn, Set up a Dev Drive on Windows 11. Tentang Dev Drive sebagai volume yang dirancang untuk beban kerja pengembangan, dengan Microsoft Defender berjalan dalam mode kinerja (pemindaian asinkron); diposisikan sebagai alternatif aman terhadap pengecualian folder (secure alternative to folder exclusions) sambil mempertimbangkan kecepatan dan kinerja; filter tambahan yang secara default tidak terpasang ke Dev Drive; dan peringatan bahwa operasi tanpa filter antivirus adalah risiko keamanan yang serius. ↩ ↩2 ↩3

  8. Microsoft Learn, Request a Filter Altitude Identifier. Tentang pengajuan altitude filter baru yang dilakukan dengan mengirim email teks ASCII ber subjek «Filter altitude request» ke fsfcomm@microsoft.com; bahwa nama perusahaan, email kontak (alias perusahaan jangka panjang, bukan pribadi), nama produk, URL produk, deskripsi filter, nama file filter, jenis filter, jenis mulai, grup urutan muat yang diinginkan, dan altitude yang diinginkan semuanya harus diisi; bahwa pemrosesan harus diperkirakan 30 hari kerja dan tidak ada loket pengajuan selain prosedur ini; bahwa Microsoft dapat mengalokasikan altitude yang berbeda dari yang diinginkan; dan bahwa jika sudah punya altitude bilangan bulat, altitude sendiri dengan desimal di grup urutan muat yang sama dapat dibuat dan cukup dihubungi setelah fakta. ↩ ↩2

  9. Microsoft Learn, Blocking legacy file system filter drivers. Tentang menjalankan fltmc filters dari command prompt dengan hak administrator yang mencantumkan filter dalam empat kolom «Filter Name / Num Instances / Altitude / Frame»; bahwa yang Frame-nya <Legacy> adalah driver filter sistem file legacy yang tidak lewat FltMgr, dan pada minifilter Frame berisi angka (0 dll.). ↩ ↩2

  10. Microsoft Learn, Cloud Files API. Tentang Cloud Files API (cloud filter) sebagai fondasi mesin sinkronisasi (Files On-Demand OneDrive dll.) yang menampilkan file di cloud sebagai placeholder secara lokal dan mengambil isi sebenarnya saat diakses. ↩ ↩2

  11. Microsoft Learn, Process Monitor - Sysinternals. Tentang Process Monitor sebagai alat pemantauan tingkat lanjut yang menampilkan aktivitas sistem file, registri, dan proses/thread secara real time (seperti di teks, saat berjalan dapat diamati muncul sebagai minifilter di daftar fltmc). ↩ ↩2

Artikel terbaru dengan tag yang sama untuk mendalami topik-topik terdekat.

Halaman-halaman ini menempatkan topik dalam konteks layanan dan keputusan yang lebih luas.

Artikel ini berkaitan langsung dengan layanan berikut.

Pertanyaan yang sering diajukan

Pertanyaan yang sering muncul dalam konsultasi tentang topik artikel ini.

Apa bedanya driver filter sistem file dan minifilter?
Keduanya adalah «driver yang menyela permintaan I/O ke sistem file», tetapi generasi cara menyelanya berbeda. Filter legacy yang lama menumpuk objek perangkatnya sendiri langsung ke device stack sistem file. Posisinya ditentukan urutan muat, sehingga urutan sulit dijamin, dan setelah dimuat tidak dapat di-unload dengan aman. Standar saat ini, minifilter, mendaftarkan callback ke Filter Manager (FltMgr) yang menyertai Windows: «panggil saya sebelum dan sesudah operasi ini». Posisi ditentukan secara deterministik oleh nomor yang disebut altitude, filter dapat dimuat kapan saja, dan filter yang mengimplementasikan callback unload bahkan dapat dilepas saat sistem berjalan. Hampir semua filter modern — antivirus, enkripsi, alat pemantauan, sinkronisasi cloud — diimplementasikan sebagai minifilter.
Mengapa perangkat lunak antivirus dapat memeriksa semua akses file?
Karena OS secara resmi menyediakan titik perluasan untuk itu. Minifilter dapat mendaftarkan kode ke Filter Manager agar dipanggil sebelum operasi (callback pre) dan sesudahnya (callback post) — misalnya membuka, membaca, atau menulis file. Filter antivirus duduk di pita altitude Anti-Virus (320000–329999). Ia dapat, misalnya, memindai isi segera setelah buka file berhasil (post-create), lalu membatalkan buka itu jika ada masalah sehingga akses gagal. Seperti yang terlihat di bagian 1 seri ini, seluruh I/O file mengalir lewat device stack. Berdiri di posisi tetap di jalur itu berarti seluruh akses dapat diperiksa. Ini bukan peretasan, melainkan mekanisme yang tertanam dalam desain OS.
Secara teknis, apa yang dilakukan pengaturan pengecualian antivirus (pengecualian folder)?
Untuk I/O ke jalur yang cocok dengan daftar pengecualian, filter produk itu melewati pemindaian yang biasanya dilakukannya. Filter itu sendiri tidak hilang dari stack; yang lebih dekat dengan kenyataan adalah keputusan «jangan periksa jalur ini» diambil lebih awal. Batasan penting: pengecualian hanya berlaku bagi produk yang memiliki pengaturan itu. Pengaturan pengecualian Microsoft Defender, misalnya, hanya mengubah pemindaian filter Defender (WdFilter). Ia tidak memengaruhi minifilter lain yang duduk bersama — antivirus pihak lain, EDR, perangkat lunak cadangan, dan sebagainya. Setiap produk membutuhkan pengecualian sendiri. Jika «sudah dikecualikan tetapi masih lambat», filter lain bisa menjadi penyebabnya. Dokumentasi Microsoft juga berulang kali memperingatkan bahwa pengecualian melemahkan perlindungan di lokasi itu, jadi harus seminimal mungkin bersama penilaian risiko. Untuk keperluan pengembangan, Dev Drive (mode kinerja = pemindaian asinkron) yang dirancang sebagai alternatif aman terhadap pengecualian folder juga layak dipertimbangkan.
Bagaimana Process Monitor merekam seluruh I/O?
Karena Procmon sendiri, saat dimulai, mendaftarkan diri ke Filter Manager sebagai minifilter di pita altitude Activity Monitor. Jika fltmc dijalankan dari command prompt dengan hak administrator saat Procmon sedang berjalan, filter dengan nama yang dimulai PROCMON muncul di daftar. Sebagai minifilter ia hadir di tahap pre dan post operasi I/O di setiap volume, sehingga dapat merekam proses mana yang melakukan operasi apa terhadap file mana tanpa celah. Istilah IRP dan Fast I/O yang muncul sepanjang seri ini tampil apa adanya di Procmon justru karena pengamatan dilakukan dari posisi yang berdiri tepat di jalur I/O.
Jika build di mesin pengembangan lambat, apakah driver filter perlu dicurigai?
Sangat layak dicurigai. Build adalah tumpukan pembuatan, baca-tulis, dan penghapusan sejumlah besar file kecil. Setiap file itu menjadi sasaran pemeriksaan filter (terutama pemindaian antivirus), sehingga ini beban kerja di mana biaya filter paling mudah muncul ke permukaan. Prosedur investigasi dasarnya: lihat kolom Duration di Procmon untuk memastikan waktu hilang di operasi mana, lalu bandingkan konfigurasi filter antar lingkungan dengan fltmc instances. Penanganannya, selain pengaturan pengecualian setelah menilai risiko, termasuk memakai Dev Drive yang dirancang khusus untuk volume pengembangan. Di Dev Drive, antivirus berjalan dalam mode kinerja (pemindaian asinkron), dan Microsoft memposisikannya sebagai alternatif yang lebih aman daripada pengaturan pengecualian.

Profil penulis

Halaman perkenalan penulis artikel.

Go Komura

Direktur KomuraSoft LLC

Berspesialisasi dalam pengembangan perangkat lunak Windows, konsultasi teknis, dan investigasi bug, terutama pada proyek dengan sistem yang sudah ada dan bug yang sulit direproduksi.

Kembali ke blog