下圖顯示針對具有 PCI IEEE 1394 控制器及連接 CD-ROM 且可分割磁碟裝置的 PCI SCSI 配接卡的系統所建立的裝置物件。 連接至 IEEE 1394 控制器的裝置物件會在 IEEE 1394 控制器的裝置物件範例中顯示並說明。
SCSI HBA 上 CD-ROM 和磁碟裝置的裝置物件樹狀結構
從圖底部開始,以下描述每個裝置物件及其相關聯的驅動程式:
儲存體匯流排驅動程式會建立儲存體匯流排的 FDO,並將它附加至 PnP 管理員所建立的儲存體匯流排 PDO(未顯示在此圖中)。 儲存匯流排 FDO 下方的裝置物件樹狀結構結構取決於儲存匯流排及其整合到系統中的方式。 高於埠驅動程式層級的儲存體驅動程式不會與任何這些較低物件互動。
此圖顯示PCI匯流排驅動程式為配備PCI匯流排的系統所建立的存儲匯流排FDO。
PCI 匯流排驅動程式會列舉並建立其匯流排上每個儲存體配接器 PDO。 對應的儲存埠驅動程式會建立 FDO,並將它附加至其配接器的 PDO。
此圖顯示兩個配接卡 PDO:一個用於 IEEE 1394 控制器 (如 IEEE 1394 控制器的裝置物件範例中所述),另一個用於 SCSI HBA。 SCSI 埠驅動程式和相關聯的迷你埠驅動程式會建立 FDO ,並將它附加至 SCSI 配接器 PDO。
儲存埠驅動程式會為連結至其配接器的每個目標裝置建立 PDO,以虛擬化目標裝置。 此圖顯示 SCSI 埠/迷你埠驅動程式所建立的兩個此類 PDO:一個用於硬碟驅動器,另一個用於 CD-ROM。
一個或多個過濾器驅動程式可以將過濾器裝置物件(過濾器 DO)附加至由儲存端口驅動程式匯出的目標裝置 PDO。 這類篩選驅動程式可以攔截和變更類別驅動程式傳送至目標裝置的要求,例如,以解決裝置特定的問題,而不需要對泛型類別或埠驅動程式進行硬體特定的變更。
此圖顯示由 CD 音訊濾波器驅動程式附加至 CD-ROM PDO 的濾波器 DO。
儲存體類別驅動程式會建立一個 FDO,並將其附加到下一層次的裝置物件,這個裝置物件可以是由儲存體埠驅動程式匯出的目標裝置 PDO,或者是由介入的篩選驅動程式附加到堆疊上的篩選 DO。 類別驅動程式會透過較低驅動程式的裝置物件向儲存裝置發出所有後續要求。
此圖顯示兩個這樣的 FDO :一個代表 CD-ROM 裝置,另一個代表硬碟的分割區 0。 分割區 0 代表整個原始磁碟,無論磁碟機是否分割,都始終存在。
類別驅動程式也可以充當匯流排驅動程式,當 PnP 管理員使用 IRP_MN_QUERY_DEVICE_RELATIONS 搭配 BusRelations 查詢其子裝置時,返回 PDO 清單。 例如,分割媒體裝置 (例如抽取式磁碟) 的驅動程式可能會傳回代表其分割區的 PDO 清單。 更高級別的驅動程式將 FDO 附加到這些 PDO。
此圖顯示了三個這樣的 PDO,每個 PDO 代表一個可以定址為目標裝置的磁碟分割區。
在固定磁碟的情況下,分割區管理員會連結至代表分割區 0 的 FDO,並代表所有分割區處理 PnP 作業。 分割區管理員的活動對磁碟類別驅動程式和任何上層篩選驅動程式都是透明的。
一或多個篩選驅動程式可以附加在類別驅動程式上方。 不同於較低層級的篩選驅動程式,較高層級的篩選驅動程式會攔截傳送至類別驅動程式的 IRP,並可以在將它們轉送至下一個較低的裝置物件之前變更它們。 篩選驅動程式可以攔截任何讀取/寫入要求,並視需要轉換數據,以及定義其他 I/O 控制碼 (IOCTL) ,例如,讓使用者應用程式能夠提供密碼或其他相關資訊。
此圖顯示由磁碟加密篩選驅動程式所建立的篩選器 DO,並附加至分割區 1 的磁碟 PDO。