在Windows系統上開發工作在內核模式的設備驅動程序是一件極為困難的事情。使用Dokan庫(Dokan Library),您可以非常方便地創建自己的文件系統而不需要編寫設備驅動程序。Dokan庫類似于Linux下的FUSE用戶空間文件系統,但是它工作在Windows下,其與FUSE(Linux user mode file system)類似。常見的場合貌似在游戲《坦克世界》的插件安裝里。
Dokan庫:
Dokan庫包含一個用戶模式的DLL文件(dokan.dll)以及一個內核模式文件系統驅動(dokan.sys)。Dokan文件系統驅動一旦安裝,您就可以在Windows上創建和普通文件系統一樣的文件系統。使用Dokan庫創建的文件系統的應用程序稱為文件系統應用程序。
來自用戶程序的文件操作請求(例如:CreateFile,ReadFile,WriteFile等)將被發送的 Windows輸入/輸出子系統(運行在內核模式),請求之后將被發送到Dokan文件系統驅動程序(dokan.sys)。通過使用Dokan用戶模式庫文件(dokan.dll)提供的函數,文件系統應用程序能夠向文件系統驅動程序注冊回調函數。
文件系統驅動程序在收到請求后調用注冊的回調函數例程來響應請求?;卣{函數例程的處理結果將返回給用戶程序。例如:當Windows資源管理器請求創建一個目錄,請求“OpenDirectory”將發送到 Dokan文件系統驅動程序,然后驅動程序將調用文件系統應用程序提供的OpenDirectory回調函數例程。
函數例程的處理結果作為 OpenDirectory請求的響應返回給Windows資源瀏覽器。如此一來,Dokan文件系統驅動程序就如同一個位于用戶程序和文件系統程序之間的代理程序。使用Dokan庫的好處是,它允許程序員開發更安全也更容易調試的用戶空間文件系統。