篩選管理員概念

篩選管理員 (FltMgr.sys) 是系統提供的核心模式驅動程式,可實作並公開檔案系統篩選驅動程式中常用的功能。 協力廠商檔案系統篩選開發人員可以使用 FltMgr的功能來撰寫比舊版檔案系統篩選驅動程式更簡單的「minifilter」 驅動程式。 最終結果是縮短的開發程式,且品質更高、更強固的驅動程式。

FltMgr 會隨 Windows 一起安裝,但只有在載入迷你篩選驅動程式時才會變成作用中。 它會附加至目標磁片區的檔案系統堆疊。 迷你篩選驅動程式會間接附加至檔案系統堆疊,方法是向 FltMgr 註冊迷你篩選器驅動程式選擇篩選的 I/O 作業。

迷你篩選會依特定順序附加。 作業系統會依 載入順序群組和高度來決定附件的順序。 特定磁片區上特定高度的迷你篩選驅動程式附件稱為迷你篩選驅動程式的 實例

迷你篩選的高度:

  • 確保迷你篩選驅動程式的實例一律會載入相對於其他迷你篩選驅動程式實例的適當位置。
  • 決定 FltMgr 呼叫迷你篩選驅動程式來處理 I/O 的順序。

下圖顯示具有篩選管理員和三個迷你篩選驅動程式的簡化 I/O 堆疊。

說明使用篩選管理員和三個迷你篩選驅動程式簡化 I/O 堆疊的圖表。

迷你篩選驅動程式可以篩選 IRP 型 I/O 作業,以及快速 I/O 和檔案系統篩選 (FSFilter) 回呼作業。 針對它選擇篩選的每個 I/O 作業,迷你篩選器可以註冊 預先操作回呼常式、後置回呼常式或兩者。 當 FltMgr處理 I/O 作業時,它會針對註冊該作業的每個迷你篩選驅動程式呼叫適當的回呼常式。 當該回呼常式傳回時, FltMgr 會針對註冊作業的下一個迷你篩選驅動程式呼叫適當的回呼常式。

例如,假設此圖中的所有三個迷你篩選驅動程式都已註冊相同的 I/O 作業。 在此情況下:

  • 當 FltMgr收到 I/O 作業時,它會呼叫迷你篩選預先操作回呼常式,以高度從最高到最低 (A、B、C) 。 FltMgr 接著會將 I/O 要求轉送到下一個較低的驅動程式,以便進一步處理。
  • 當 FltMgr收到 I/O 要求完成時,它會以反向順序呼叫每個迷你篩選驅動程式的後置回呼常式,從最低到最高 (C、B、A) 。

為了與舊版篩選驅動程式的互通性, FltMgr 可以將篩選裝置物件附加至多個位置的檔案系統 I/O 堆疊。 每個 FltMgr的篩選裝置物件稱為框架。 從舊版篩選驅動程式的觀點來看,每個篩選管理員框架只是另一個舊版篩選驅動程式。

每個篩選管理員框架都代表一系列的高度。 FlgMgr 可以調整現有的框架,或建立新的框架,以允許迷你篩選驅動程式附加在正確的位置。

FltMgr 無法在兩個附加的舊版篩選之間附加迷你篩選,除非它們之間已經有篩選管理員框架。 如果迷你篩選器是要附加在舊版篩選上方,則可以將其附加在下方,視第二個附加的舊版篩選準則是否存在而定。 要附加在舊版篩選準則下方的迷你篩選,可以改為附加在該舊版篩選上方。

重要

請一律使用迷你篩選器來驗證舊版篩選的互通性,或考慮將舊版篩選取代為迷你篩選。 如需詳細資訊,請參閱 移植舊版篩選驅動程式的指導方針

如果卸載並重載迷你篩選器驅動程式,則會在卸載的相同畫面格中,以相同的高度重載。

下圖顯示具有兩個篩選管理員框架、迷你篩選驅動程式實例和舊版篩選驅動程式的簡化 I/O 堆疊。

圖表說明簡化的 i/o 堆疊,其中包含兩個篩選管理員框架、迷你篩選驅動程式實例,以及舊版篩選驅動程式。