Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Menedżer filtrów (FltMgr.sys) to sterownik trybu jądra dostarczany przez system, który implementuje i uwidacznia funkcje często wymagane w sterownikach filtrów systemu plików. Deweloperzy filtrów systemu plików mogą używać funkcji programu FltMgr do pisania sterowników minifiltrów , które są prostsze do opracowywania niż starsze sterowniki filtrów systemu plików. Rezultatem końcowym jest skrócony proces rozwoju i wyższej jakości, bardziej niezawodne sterowniki.
Program FltMgr jest instalowany z systemem Windows, ale staje się aktywny tylko wtedy, gdy ładowany jest sterownik minifiltru. Przyłącza się do stosu systemu plików dla docelowego woluminu. Sterownik minifiltru dołącza się pośrednio do stosu systemu plików, rejestrując się w programie FltMgr dla operacji we/wy, które sterownik minifiltru wybiera do filtrowania.
Minifiltry są dołączane w określonej kolejności. System operacyjny określa kolejność załączników według grup kolejności ładowania i priorytetów. Podłączenie sterownika minifiltru na określonej wysokości na określonym woluminie jest nazywane wystąpieniem sterownika minifiltru.
Wysokość minifiltru:
- Gwarantuje, że instancja sterownika minifiltru jest zawsze ładowana w odpowiedniej lokalizacji względem innych instancji sterowników minifiltru.
- Określa kolejność, w której FltMgr wywołuje sterownik minifiltru do obsługi operacji we/wy.
Na poniższej ilustracji przedstawiono uproszczony stos we/wy z menedżerem filtrów i trzema sterownikami minifiltru.
Sterownik minifiltru może filtrować następujące typy operacji:
- Operacje we/wy oparte na protokole IRP
- Szybkie operacje we/wy
- Operacje wywołania zwrotnego filtru systemu plików (FSFilter)
Dla każdej operacji we/wy, którą decyduje się filtrować, minifiltr może zarejestrować procedurę wywołania zwrotnego przed operacją, procedurę wywołania zwrotnego po operacji lub obie te procedury. Gdy FltMgr obsługuje operację I/O, wywołuje odpowiednią procedurę zwrotną dla każdego sterownika minifiltru zarejestrowanego dla tej operacji. Gdy ta procedura wywołania zwrotnego kończy działanie, FltMgr wywołuje odpowiednią procedurę wywołania zwrotnego dla następnego sterownika minifiltru, który zarejestrował się do tej operacji.
Załóżmy na przykład, że wszystkie trzy sterowniki minifiltrów na tym rysunku są zarejestrowane dla tej samej operacji we/wy. W takiej sytuacji:
- Gdy FltMgr odbiera operację we/wy, wywołuje procedury wywołania zwrotnego minifiltru w kolejności od najwyższej do najniższej (A, B, C). FltMgr następnie przekazuje żądanie we/wy do następnego niższego sterownika w celu dalszego przetwarzania.
- Gdy FltMgr odbiera żądanie I/O do realizacji, wywołuje procedury wywołania zwrotnego po operacji każdego sterownika minifiltru w odwrotnej kolejności, od najniższego do najwyższego (C, B, A).
W celu współdziałania ze starszymi sterownikami filtrów program FltMgr może dołączyć obiekty urządzeń filtru do stosu we/wy systemu plików w więcej niż jednej lokalizacji. Każda z obiektów urządzenia filtru FltMgr jest nazywana ramką. Z perspektywy dziedziczonego sterownika filtrowania każda ramka menedżera filtrowania jest po prostu kolejnym dziedziczonym sterownikiem filtrowania.
Każda ramka menedżera filtrów reprezentuje zakres wysokości. Program FltMgr może dostosować istniejącą ramę lub utworzyć nową, umożliwiając sterownikom minifiltrowania dołączenie w odpowiedniej lokalizacji.
Program FltMgr nie może dołączyć minifiltru między dwoma dołączonymi starszymi filtrami, chyba że między nimi istnieje już ramka menedżera filtrów. Jeśli minifiltr ma być dołączony powyżej starszego filtru, można go dołączyć poniżej, w zależności od istnienia drugiego dołączonego starszego filtru. Minifiltr, który ma być dołączony poniżej starszego filtru, może być dołączony powyżej tego starszego filtru.
Ważne
Zawsze sprawdzaj współdziałanie starszych filtrów z minifiltrami lub rozważ zastąpienie starszych filtrów minifiltrami. Aby uzyskać więcej informacji, zobacz Wytyczne dotyczące przenoszenia starszych sterowników filtrów.
Jeśli sterownik minifiltru zostanie odinstalowany i ponownie załadowany, system ponownie załaduje go na tym samym poziomie w tej samej ramie, z której został odinstalowany.
Na poniższej ilustracji przedstawiono uproszczony stos wejścia/wyjścia z dwiema strukturami menedżera filtrów, instancjami sterowników minifiltru i starszym sterownikiem filtru.