Archive for 8. November 2017

Was hat es mit FLTMC.EXE auf sich?

8 November 2017

Mit FLTMC.EXE kann man unter Windows Filtertreiber für Dateisysteme managen. Was sind nun Filtertreiber? Filtertreiber sind Kerneltreiber, welche zwischen anderen Treibern eingeschoben werden können, um bestimmte zusätzliche Funktionen realisieren zu können. Als da wären der Virenscanner, Dateikontingente usw.

Ruft man bei einem Windows 10 (v1703) FLTMC.EXE auf so erhält man z. B. als Ausgabe:

Filtername       Anzahl von Instanzen    Höhe    Frame
—————  ——————–    —-    —–
WdFilter                      6       328010         0
storqosflt                    0       244000         0
wcifs                         1       189900         0
FileCrypt                     0       141100         0
luafv                         1       135000         0
npsvctrig                     1        46000         0
Wof                           4        40700         0
FileInfo                      6        40500         0

Damit weiß man schon mal welche Filtertreiber bekannt sind und welche durch laufende Instanzen aktiv sind. Aber welche ist nun für was zuständig?

Um dies rauszufinden hilft ein kleiner Powershell-Aufruf:

fltmc|Out-String -Stream|select -skip 3|% {($_ -split ‚ ‚)[0]}|% {Get-ChildItem "C:\windows\system32\drivers\$_.sys"}| select name, @{n="Description";e={$_.VersionInfo.FileDescription}}

Name           Description
—-           ———–
WdFilter.sys   Microsoft antimalware file system filter driver
storqosflt.sys QoS-Filter für Speicher
wcifs.sys      Windows Container Isolation FS Filter Driver
FileCrypt.sys  Windows sandboxing and encryption filter
luafv.sys      LUA-Filtertreiber zur Dateivirtualisierung
npsvctrig.sys  Named pipe service triggers
Wof.sys        Windows-Überlappungsfilter
FileInfo.sys   FileInfo Filter Driver

Filtertreiber die nicht gestartet sind, tauchen in der Liste nicht auf. So taucht ein weiterer Treiber auf, wenn z. B. die OneDrive-Unterstützung mittels des cldflt-Dienst gestartet wird, indem man Start-Service cldFlt aufruft:

Name           Description
—-           ———–
WdFilter.sys   Microsoft antimalware file system filter driver
storqosflt.sys QoS-Filter für Speicher
wcifs.sys      Windows Container Isolation FS Filter Driver
CldFlt.Sys    Cloud Files Mini Filter Driver
FileCrypt.sys  Windows sandboxing and encryption filter
luafv.sys      LUA-Filtertreiber zur Dateivirtualisierung
npsvctrig.sys  Named pipe service triggers
Wof.sys        Windows-Überlappungsfilter
FileInfo.sys   FileInfo Filter Driver

Ähnlich verhält es sich, wenn man z. B. Kaspersky Interent Security installiert, dann verschwindet auf einmal der WdFilter.sys von Microsoft und es taucht KLIF.sys auf:

Name           Description
—-           ———–
KLIF.sys      Core System Interceptors [fre_win8_x64]
storqosflt.sys QoS-Filter für Speicher
wcifs.sys      Windows Container Isolation FS Filter Driver
CldFlt.Sys    Cloud Files Mini Filter Driver
FileCrypt.sys  Windows sandboxing and encryption filter
luafv.sys      LUA-Filtertreiber zur Dateivirtualisierung
npsvctrig.sys  Named pipe service triggers
Wof.sys        Windows-Überlappungsfilter
FileInfo.sys   FileInfo Filter Driver

Die Treiber hängen alle vom Filtermanager-Dienst ab. Wenn man den zugehörigen Dienst abfragt, findet man noch weitere Infos, vor allem abhängige Treiber die nicht mittels FLTMC.EXE bearbeitet werden können:

(get-service fltmgr).DependentServices|where status -eq running

Name       DisplayName
—-       ———–
vmcompute  Hyper-V-Hostserverdienst
Wof        Windows Overlay File System Filter Driver
FileInfo   File Information FS MiniFilter
WdFilter   Windows Defender Antivirus-Minifiltertreiber
wcifs      Windows Container Isolation
storqosflt QoS-Filter für Speicher – Treiber
luafv      UAC-Dateivirtualisierung
SysMain    Superfetch
FileCrypt  FileCrypt

Man sieht, dass die Namen sich mit den FLTMC-Namen deckt aber die Bezeichnungen der Dienste von den Dateibeschreibungen vereinzelt abweicht.

Detaillierte Infos zu den einzelnen Diensten findet man hier: https://notesfromthedatacenter.wordpress.com/tag/fltmc/

Schaut man sich die Ausgabe von FLTMC.EXE an, dann gibt es noch die Spalte Höhe bzw. Altitude, dahinter verbirgt sich eine Nummer. Dabei sind dies keine willkürlichen Nummern, sondern es gibt gewisse Nummernblöcke. D. h. jeder Treiber ist einem bestimmten Block zugeordnet:

Block Beschreibung
420000 – 429999 Filter
400000 – 409999 FSFilter Top
360000 – 389999 FSFilter Activity Monitor
340000 – 349999 FSFilter Undelete
320000 – 329998 FSFilter Anti-Virus
300000 – 309998 FSFilter Replication
280000 – 289998 FSFilter Continuous Backup
260000 – 269998 FSFilter Content Screener
240000 – 249999 FSFilter Quota Management
220000 – 229999 FSFilter System Recovery
200000 – 209999 FSFilter Cluster File System
180000 – 189999 FSFilter HSM
170000 – 174999 *FSFilter Imaging (ex: .ZIP)
160000 – 169999 FSFilter Compression
140000 – 149999 FSFilter Encryption
130000 – 139999 FSFilter Virtualization
120000 – 129999 FSFilter Physical Quota Management
100000 – 109999 FSFilter Filter Open File
80000 – 89999 FSFilter Security Enhancer
60000 – 69999 FSFilter Copy Protection
40000 – 49999 FSFilter Bottom
20000 – 29999 FSFilter System

Quelle: https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/allocated-altitudes. Welche Bedeutung die jeweiligen Blöcke haben, findet man hier: https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/load-order-groups-and-altitudes-for-minifilter-drivers.

Advertisements