SCSI HBA 的裝置物件範例
下圖顯示針對具有 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。
一或多個篩選驅動程式可以將篩選設備物件附加至儲存體埠驅動程式匯出的目標裝置 PDO, (篩選 DO) 。 例如,這類篩選驅動程式可以攔截和改變類別驅動程式傳送至目標裝置的要求,以解決裝置特定問題,而不需要對一般類別或埠驅動程式進行硬體特定變更。
此圖顯示 CD 音訊篩選驅動程式連結至 CD-ROM PDO 的篩選 DO。
儲存類別驅動程式會建立 FDO,並將它附加至下一個較低的裝置物件,這是儲存體埠驅動程式匯出的目標裝置 PDO,或由中間篩選驅動程式連結至堆疊的篩選 DO。 類別驅動程式會透過較低驅動程式的裝置物件,對存放裝置發出所有後續要求。
下圖顯示兩個這類 FDO:一個代表 CD-ROM 裝置,另一個代表硬碟的磁碟分割 0。 磁碟分割 0 代表整個原始磁片,無論磁片磁碟機是否已分割,一律存在。
當 PnP 管理員使用 BusRelations) 查詢其子裝置 (IRP_MN_QUERY_DEVICE_RELATIONS時,類別驅動程式也可以作為匯流排驅動程式,傳回 PDO 清單。 例如,分割媒體裝置的驅動程式,例如卸載式磁片可能會傳回代表其分割區的 PDO 清單。 較高層級的驅動程式會將 FDO 附加至這些 PDO。
此圖顯示三個這類 PDO,每個 PDO 都代表可當作目標裝置定址的磁碟分割。
如果是固定磁片,磁碟分割管理員會連接到代表分割區 0 的 FDO,並代表所有分割區處理 PnP 作業。 磁片類別驅動程式和任何高階篩選驅動程式都對分割區管理員的活動是透明的。
一或多個篩選驅動程式可以附加在類別驅動程式上方。 不同于較低層級的篩選驅動程式,上層篩選驅動程式會攔截傳送至類別驅動程式的 IRP,而且可以在轉送至下一個較低的裝置物件之前加以改變。 例如,篩選驅動程式可以攔截任何讀取/寫入要求,並視需要轉換資料,以及定義其他 I/O 控制程式碼 (IOCTLs) ,例如,讓使用者應用程式提供密碼或其他相關資訊。
此圖顯示磁片加密篩選驅動程式所建立的篩選 DO,並連結至磁片 PDO 以進行磁碟分割 1。