Device Object Example for a USB Mass Storage Device
2010-06-04 13:48
393 查看
The following figure shows the device objects that are created for a composite USB mass storage device containing both a Smart Media slot and a Compact Flash slot.
![](http://i.msdn.microsoft.com/dynimg/IC126082.png)
Device Object Tree for a Composite USB Mass Storage Device
Starting from the bottom of the figure, the following list describes each device object or device object stack and its associated driver:
The PCI bus driver enumerates the USB host controller. The system loads the port driver, usbport.sys, and its accompanying miniports (not shown in the figure). Then, usbport.sys creates an FDO for the host controller.
The port driver enumerates the USB hubs in the system, starting with the root hub. The usbhub.sys driver manages all USB hubs. The figure only shows one level of hub device objects, but USB allows daisy-chaining of hub devices, so there could potentially be many more hub device objects in the tree. The hub driver detects and enumerates the USB mass storage device and creates a PDO for it.
Windows supplies a USB storage port driver, usbstor.sys, that serves as an interface between the USB stack and the native Windows storage class drivers. The USB storage port driver creates its own functional device object (FDO). The USB storage port driver can divide the physical storage device into as many as 16 logical units. In the example depicted in the figure, the USB storage device contains separate slots for a Compact Flash device and a Smart Media device. Therefore, in this example, the USB storage port driver creates two separate PDOs, one for the Compact Flash device and another for the Smart Media device.
The stack above the USB storage port driver is managed in the usual way by the native disk class driver. The disk class driver creates a PDO and an FDO for the disk as a whole (partition zero), and PDOs for each partition on the disk.
The partition manager creates an FDO for each disk partition.
![](http://i.msdn.microsoft.com/dynimg/IC126082.png)
Device Object Tree for a Composite USB Mass Storage Device
Starting from the bottom of the figure, the following list describes each device object or device object stack and its associated driver:
The PCI bus driver enumerates the USB host controller. The system loads the port driver, usbport.sys, and its accompanying miniports (not shown in the figure). Then, usbport.sys creates an FDO for the host controller.
The port driver enumerates the USB hubs in the system, starting with the root hub. The usbhub.sys driver manages all USB hubs. The figure only shows one level of hub device objects, but USB allows daisy-chaining of hub devices, so there could potentially be many more hub device objects in the tree. The hub driver detects and enumerates the USB mass storage device and creates a PDO for it.
Windows supplies a USB storage port driver, usbstor.sys, that serves as an interface between the USB stack and the native Windows storage class drivers. The USB storage port driver creates its own functional device object (FDO). The USB storage port driver can divide the physical storage device into as many as 16 logical units. In the example depicted in the figure, the USB storage device contains separate slots for a Compact Flash device and a Smart Media device. Therefore, in this example, the USB storage port driver creates two separate PDOs, one for the Compact Flash device and another for the Smart Media device.
The stack above the USB storage port driver is managed in the usual way by the native disk class driver. The disk class driver creates a PDO and an FDO for the disk as a whole (partition zero), and PDOs for each partition on the disk.
The partition manager creates an FDO for each disk partition.
相关文章推荐
- 使用Device IO Control 讀寫 USB Mass Storage
- 第四十篇:USB Mass Storage Device & USB Attached SCSI Protocol
- WinCE的USB Device功能实现(Serial,RNDIS,Mass_Storage)
- WinCE的USB Device功能实现(Serial,RNDIS,Mass_Storage)
- usb mass storage device
- satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-storage:
- Encryption/decryption system for USB storage devic
- Android usb client mass-storage不能自动挂载到主机端的问题(1)
- USB function驱动三种模式 RNDIS/Serial/MassStorage
- USB复合设备(mass storage&hid)
- usb mass storage
- USB Mass Storage大容量存储 The Thirteen Class章节的理解
- Windows Mobile USB Mass Storage(大容量存储器)功能开发总结
- USB Mass Storage协议
- 二、Usb mass_storage turn on 的过程
- Driver for device rausb0 has been compiled with version 22
- android usb mass storage EMMC转化为SD卡(二)
- Why use MTP instead of USB Mass Storage
- USB Host Driver for USB Storage 基于AT91SAM9
- C++永久对象存储 (Persistent Object Storage for C+