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 存储设备包含适用于 Compact Flash 设备和智能媒体设备的单独插槽。 因此,在此示例中,USB 存储端口驱动程序创建两个单独的 PDO,一个用于 Compact Flash 设备,另一个用于智能媒体设备。

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

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