共用方式為


與其他文件系統篩選驅動程式共存

檔系統篩選驅動程式必須正確處理的最不小心問題之一是與其他篩選驅動程式共存。 建置檔案系統篩選驅動程式以與其他文件系統篩選驅動程式共存時,最好考慮下列問題:

  • 篩選驅動程式必須考慮其作業中是否有其他篩選驅動程式。 篩選驅動程式所執行的任何作業都應該夠強固,才能使用相同或不同的技術來存留額外的篩選驅動程式。

  • 篩選驅動程式可能會藉由變更系統的基底行為來影響其他篩選的行為。

  • 增加篩選驅動程式的數目會增加耗用量,特別是堆棧空間。 檔系統篩選驅動程式必須致力於將這類干擾資源的使用降到最低。 否則,惡意使用者應用程式可以利用這類弱點來讓系統失敗。 開發人員應該特別小心完成路徑和錯誤路徑。

  • 篩選驅動程式在傳送給較低驅動程式 (篩選驅動程式或文件系統) ,且應該在接受的內容中很寬鬆。 可能的話,篩選驅動程式應該嘗試確保傳送至基礎驅動程式的作業很簡單,而且不複雜 (在建立作業期間不會執行重新命名作業,例如) 。

  • 篩選驅動程式必須小心鎖定。 永遠不能在文件系統呼叫之間保留鎖定。 系統的各種元件對於鎖定順序和可封鎖和無法封鎖的函式做出非常精確且明確的假設。 藉由新增另一層鎖定來干擾此問題,很容易會導致死結。 源自 Srv.sys 的 I/O 會特別快速地公開這些問題,但在正常壓力測試期間也可以看到這些問題。

任何文件系統篩選驅動程式開發人員不只設計並實作以與其他篩選驅動程式一起共存,也務必使用其他篩選驅動程式測試篩選驅動程式,以確保驅動程式不會在系統中產生安全性問題。