共用方式為


存放裝置堆疊、儲存體磁片區和檔案系統堆疊

注意

為了獲得最佳可靠性和效能,請使用 檔案系統迷你篩選驅動程式 搭配篩選管理員支援,而不是舊版檔案系統篩選驅動程式。 若要將舊版驅動程式移植到迷你篩選器驅動程式,請參閱 移植舊版篩選驅動程式的指導方針

探索檔案系統舊版篩選驅動程式如何附加至檔案系統和磁片區之前,必須先瞭解存放裝置堆疊、儲存體磁片區和檔案系統堆疊之間的關聯性。

儲存體裝置堆疊

大部分的儲存體驅動程式都是 PnP 設備磁碟機,這些驅動程式是由 PnP 管理員載入和管理。 存放裝置會以 PnP 裝置樹狀結構表示,其中包含機器上每個實體或邏輯裝置的裝置節點或 devnode。 請務必注意,檔案系統和檔案系統篩選驅動程式不是 PnP 設備磁碟機;因此,PnP 裝置樹狀結構 不包含任何開發節點。

特定儲存裝置的 devnode 包含裝置的 儲存裝置堆疊 ;這是代表裝置儲存設備磁碟機的附加裝置物件鏈結。 由於儲存體裝置,例如磁片,可能會包含一或多個邏輯磁片區 (分割區或動態磁碟區) ,因此儲存裝置堆疊本身看起來通常比堆疊更像樹狀結構。 此樹狀結構的根目錄是一種功能裝置物件, (FDO) 儲存介面卡或與儲存堆疊整合的另一個裝置堆疊。 此樹狀結構的分葉是邏輯磁片區的實體裝置物件 (PDO) ,也稱為可掛接檔案系統磁片區的 儲存體磁片區。

如需一些一般儲存裝置堆疊的圖表和描述,請參閱儲存體裝置設計指南的下列各節:

儲存體磁片區

磁片區是儲存裝置,例如固定磁片、磁片磁碟機或 CD-ROM,其格式為儲存目錄和檔案。 大型磁片區可以分成多個 邏輯磁片區,也稱為 分割區。 每個邏輯磁片區都會格式化為特定媒體型檔案系統使用,例如 NTFS、FAT 或 CDFS。

儲存磁片區或存放裝置物件是裝置物件 - 通常是實體裝置物件 (PDO) - ,代表系統的邏輯磁片區。 儲存裝置物件位於存放裝置堆疊中,但它不一定是堆疊中最上層的裝置物件。

當檔案系統掛接在儲存體磁片區上時,它會建立檔案系統磁片區裝置物件, (VDO) 來代表檔案系統的磁片區。 檔案系統 VDO 是透過稱為 磁片區參數區塊 的共用物件掛接在儲存體裝置物件上, (VPB) 。

掛接管理員

掛接管理員是 I/O 系統的一部分,負責管理儲存體磁片區資訊,例如磁片區名稱、磁碟機號和磁片區掛接點。 將新的存放裝置磁片區新增至系統時,掛接管理員會以下列其中一種方式通知其抵達:

  • 建立儲存體磁片區的類別驅動程式會呼叫 IoRegisterDeviceInterface ,在 MOUNTDEV_MOUNTED_DEVICE_GUID 介面類別別中註冊新的介面。 發生這種情況時,隨插即用裝置介面通知機制會警示磁片區抵達系統的掛接管理員。

  • 儲存體磁片區的驅動程式會傳送掛接管理員IRP_MJ_DEVICE_CONTROL要求,並指定 I/O 控制程式碼 的IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION 。 您可以呼叫 IoBuildDeviceIoControlRequest來建立此要求。

唯一磁片區名稱

掛接管理員會查詢磁片區驅動程式以回應新儲存體磁片區的抵達,以取得下列資訊:

  • 磁片區的非持續性裝置物件名稱 (或目標名稱) ,位於系統物件 (樹狀目錄的 Device 目錄中,例如:「\Device\HarddiskVolume1」)

  • 磁片區的全域唯一識別碼 (GUID) ,也稱為 唯一磁片區名稱

  • 磁片區的建議持續性符號連結名稱,例如磁碟機號 (例如 「\DosDevices\D:」)

如需儲存體驅動程式與掛接管理員之間互動的詳細資訊,請參閱 在儲存體類別驅動程式中支援掛接管理員要求

檔案系統堆疊

檔案系統驅動程式會建立兩種不同類型的裝置物件: (CDO) 控制裝置物件,以及 (VDO) 的磁片區裝置物件。 檔案系統堆疊是由其中一個裝置物件所組成,以及附加至它之檔案系統篩選驅動程式的任何篩選裝置物件。 檔案系統的裝置物件一律會形成堆疊底部。

檔案系統 CDO

檔案系統 CDO 代表整個檔案系統,而不是個別磁片區,並儲存在通用檔案系統佇列中。 檔案系統在其 DriverEntry 常式中建立一或多個具名的 CDO。 例如,FastFat 會建立兩個 CDO:一個用於固定媒體,另一個用於卸載式媒體。 CDFS 只會建立一個 CDO,因為它只有卸載式媒體。

檔案系統 CDO 必須命名。 這是因為檔案系統篩選驅動程式,以及許多核心模式支援常式,都依賴 VDO 與 CDO 之間的這項差異來區分。

檔案系統 VDO

檔案系統 VDO 代表檔案系統所掛接的磁片區。 檔案系統會在掛接磁片區時建立 VDO,通常是為了回應磁片區掛接要求。 不同于 CDO,VDO 一律會與特定的邏輯或實體儲存裝置相關聯。

注意

不同于 CDO,VDO 絕對不能命名,因為命名磁片區裝置物件會建立安全性漏洞。