天天看點

Windows CE的檔案系統

Windows CE的檔案系統

[align=center][img]http://img.iwomm.cn/wince/ce.jpg[/img][/align]

不是所有檔案系統驅動程式都使用了實體裝置,即使使用,也可能沒有使用分區驅動程式。這就提供了巨大的靈活性。

作業系統啟動時,NK.exe 将直接從 ROM 檔案系統加載 FileSys.exe。然後,FileSys.exe 從 ROM 檔案系統内的預設系統資料庫對系統資料庫進行初始化。

之後,FileSys.exe 将讀取系統資料庫項,以便啟動各種應用程式。裝置管理器從 HKEY_LOCAL_MACHINE/Driver/BuiltIn 項加載驅動程式。

内置到 FileSys.exe 中的存儲管理器向裝置管理器通知系統注冊,以便接收有關塊驅動程式加載和解除安裝的通知。

然後,存儲管理器打開塊驅動程式,并向它查詢配置檔案名稱。每個塊裝置類型都有一個與它相關的配置檔案。存儲管理器讀取有關裝置的分區驅動程式的資訊,并加載适當的驅動程式。

因為檔案系統将不需要知道資料是否來自磁盤上的分區、或者直接來自磁盤,是以,FSDMGR 對檔案系統驅動程式進行包裝,以便為驅動程式的高端或低端提供接口。

存儲管理器調用檔案系統驅動程式 (FSD),而 FSD 使用 FSDMGR_ API 從裝置檢索資料。如果是 CD(沒有分區),則裝置通過 FSDMGR 與塊驅動程式通信。如果它是有多個分區的硬碟,那麼它以同樣方式使用 FSDMGR_ API。但這之後 FSDMGR 會将工作轉交給适當的分區驅動程式。

我們已經讨論了存儲管理器、FSDMGR、FSD、分區驅動程式和塊驅動程式如何互動和互操作。讓我們回過來詳細讨論它們是如何加載的,并考查系統資料庫中的配置檔案的細節。前面已經提到過,配置檔案隻是一組系統資料庫值,用于定義有關塊裝置和應當如何在系統中使用它的資訊。配置檔案位于以下項的下面:HKEY_LOCAL_MACHINE/System/StorageManager/Profiles

每個配置檔案都是位于基本配置檔案項的下面,以此配置檔案名稱辨別的項。例如,如果 Windows CE .NET 裝置上有一個硬碟,并且它确實使用硬碟配置檔案,則配置檔案位于

HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/Hard Disk 下面。所有配置檔案資訊都包含在該配置檔案項下面的命名值中。下表列出了各種值及其目的。

值        類型        說明

Folder        REG_SZ        在 Windows 資料總管中顯示給使用者的檔案夾名稱。對于多個執行個體,将自動追加整數。(例如,Storage Card、Storage Card2 等等。)

FileSystem        REG_SZ        用作磁盤的預設檔案系統的名稱。(如果使用了分區驅動程式,則通常不使用它。)

PartitionDriver        REG_SZ        列出如果預設驅動程式不合适時要使用的分區驅動程式。如果該字元串為空,則不加載任何分區驅動程式。如果該值不出現,則使用預設分區驅動程式。

AutoFormat        REG_DWORD        如果磁盤沒有格式化,則自動執行格式化

AutoPart        REG_DWORD        如果磁盤沒有分區,則自動将它分區,并且其中一個分區占據最大數量的可用磁盤空間。

AutoMount        REG_DWORD        當儲存設備驅動程式加載時,自動裝入檔案系統。

Name        REG_SZ        顯示在控制台 UI 中的配置檔案名稱。

MountFlags        REG_DWORD        用于确定如何裝入檔案系統的标志。

将檔案系統标記為隐藏可以防止它被任何标準的檔案和檔案夾枚舉發現。

存儲管理器獨立完成該操作,以便裝置驅動程式和應用程式可以檢測到是否特定系統正在使用存儲管理器。

MountFlags 的下一位訓示檔案系統是否可包含基于配置單元的系統資料庫。

作為根标志的裝入檔案系統允許通過将外部存儲作為根進行連接配接來避免這個問題,因為這樣一來,檔案 /MyDataFile.TXT 将駐留在外部儲存設備的根中。隐藏 ROM 檔案系統将隐藏 ROM 檔案系統資料檔案(但不執行适當的 EXE 和 DLL),允許更新 ROM 中的所有檔案。

Windows CE 檔案系統體系結構是靈活的和可擴充的,并且支援:

•                多個塊裝置。

•                每個塊裝置支援多個分區。

•                每個分區支援不同檔案系統。

•                将外部裝置檔案系統作為根系統裝入。

系統資料庫是讓加載和運作檔案系統的過程具有正确的(或期望的)行為的關鍵。

繼續閱讀