USB 大容量存储设备的设备对象示例

下图显示了为包含智能媒体槽和紧凑闪存槽的复合 USB 大容量存储设备创建的设备对象。

为包含智能媒体槽和紧凑闪存槽的复合 USB 大容量存储设备创建的设备对象。

复合 USB 大容量存储设备的设备对象树

从图的底部开始,以下列表描述了每个设备对象或设备对象堆栈及其关联的驱动程序:

  1. PCI 总线驱动程序枚举 USB 主机控制器。 系统加载端口驱动程序、usbport.sys及其随附的微型端口(未在图中显示)。 然后, usbport.sys 为主机控制器创建 FDO。

  2. 端口驱动程序枚举系统中的 USB 中心,从根中心开始。 usbhub.sys 驱动程序管理所有 USB 中心。 该图仅显示一个级别的中心设备对象,但 USB 允许将中心设备链接在一起,因此树中可能存在更多中心设备对象。 中心驱动程序检测并枚举 USB 大容量存储设备,并为其创建 PDO。

  3. Windows 提供 USB 存储端口驱动程序 usbstor.sys,用作 USB 堆栈和本机 Windows 存储类驱动程序之间的接口。 USB 存储端口驱动程序创建其自己的功能设备对象(FDO)。 USB 存储端口驱动程序可将物理存储设备划分为多达 16 个逻辑单元。 在图中所示的示例中,USB 存储设备包含压缩闪存设备和智能媒体设备的单独槽。 因此,在此示例中,USB 存储端口驱动程序创建两个单独的 PDO,一个用于 Compact Flash 设备,另一个用于智能媒体设备。

  4. USB 存储端口驱动程序上方的堆栈通常由本机磁盘类驱动程序管理。 磁盘类驱动程序为整个磁盘(即零号分区)创建一个 PDO 和一个 FDO,并为磁盘上的每个分区创建各自的 PDO。

  5. 分区管理器为每个磁盘分区创建 FDO。