2011-09-14 101 views
3

我正在尋找創建一個「驅動程序」,我猜想爲Windows上的物理磁盤上的自定義文件系統。我不完全知道解釋它的最佳方式,但該設備已經有適當的驅動程序和類似於Windows的通信方式,但是我想要發生的事情是讓用戶能夠將設備插入他們的個人電腦,它顯示在我的電腦中,併爲他們提供瀏覽設備的全面支持。創建一個文件系統「驅動程序」

我意識到這可能是一個有點恐怖的人不知道做這樣的事情,甚至問這個問題的基本知識,但我已經有了類和一切構造在我的應用程序中閱讀它...我只是希望一切都能更集中,並且不需要最終用戶的更多工作。有沒有人有一個很好的指導來創建這樣的項目?

+0

這太混亂了。你想要一個驅動程序,但是Windows已經有你的設備的驅動程序了嗎? – Bojangles

+0

你在說什麼像[FUSE](http://fuse.sourceforge.net/)? – arunkumar

+0

@JamWaffles:Windows對物理設備和文件系統使用不同的驅動程序。擁有第一個並不意味着你擁有第二個。 – MSalters

回答

4

我知道什麼,我從你的描述瞭解最接近的是一個安裝文件系統,如Ext2 installable file system,允許Windows計算機與Linux的 源自工作EXT2(並在一定程度上的ext3)文件系統。

也許這可以作爲您調查的起點。

作爲替代方法,有Shell extension這比IFS複雜得多。現在已經不存在的GMail shell extension使用了這種方法,即使它由於GMail的變化而變得不起作用,它仍然可以用作靈感。

+0

這實際上只是關於什麼我需要!我會仔細研究一下其他人留下來看看最好的方法是什麼。謝謝! – Lander

0

我認爲您需要查看Windows Driver Kit文檔(以及相關主題),以確切瞭解您要創建的內容。

0

如果你打算依賴已經存在的驅動程序,也就是說你不需要在內核域執行你的代碼來與它進行通信,我建議你看一下FUSE的windows Dokan

如果確實需要在內核空間中運行,並直接與硬件通信,則可能需要下載windows DDK(驅動程序開發工具包)。請記住,與塊設備和文件系統進行通信的驅動程序是分開的,聽起來就像是在談論文件系統本身。我相信在內核空間中運行的任何東西都無法訪問C++運行庫,這意味着您只能使用C++的子集來運行內核驅動程序。

1

的選項有:

  1. 創建一個內核模式文件系統驅動程序。爲有經驗的開發人員工作9-12個月。
  2. 使用框架並在用戶模式下執行所有操作。幾個星期的工作,以獲得原型的工作。這種方法的唯一缺點是它比內核模式驅動程序慢。你可以玩上面提到的Dokan,或者你可以使用我們的Callback File System進行商業級開發。
相關問題