Geräteobjektbeispiel für ein USB-Massenspeichergerät
Die folgende Abbildung zeigt die Geräteobjekte, die für ein zusammengesetztes USB-Massenspeichergerät erstellt werden, das sowohl einen Smart Media-Steckplatz als auch einen Compact Flash-Steckplatz enthält.
Geräteobjektstruktur für ein zusammengesetztes USB-Massenspeichergerät
Ausgehend vom unteren Rand der Abbildung werden in der folgenden Liste die einzelnen Geräteobjekte oder Geräteobjektstapel und der zugehörige Treiber beschrieben:
Der PCI-Bustreiber listet den USB-Hostcontroller auf. Das System lädt den Porttreiber ,usbport.sys, und die zugehörigen Miniports (nicht in der Abbildung dargestellt). Anschließend erstellt usbport.sys eine FDO für den Hostcontroller.
Der Porttreiber listet die USB-Hubs im System auf, beginnend mit dem Stammhub. Der usbhub.sys-Treiber verwaltet alle USB-Hubs. Die Abbildung zeigt nur eine Ebene von Hubgeräteobjekten, aber USB ermöglicht die Daisy-Verkettung von Hubgeräten, sodass möglicherweise viele weitere Hubgeräteobjekte in der Struktur vorhanden sein können. Der Hubtreiber erkennt und listet das USB-Massenspeichergerät auf und erstellt dafür ein PDO.
Windows stellt einen USB-Speicherporttreiber usbstor.sysbereit, der als Schnittstelle zwischen dem USB-Stapel und den nativen Windows-Speicherklassentreibern fungiert. Der USB-Speicherporttreiber erstellt ein eigenes funktionales Geräteobjekt (Functional Device Object, FDO). Der USB-Speicherporttreiber kann das physische Speichergerät in bis zu 16 logische Einheiten unterteilen. In dem in der Abbildung dargestellten Beispiel enthält das USB-Speichergerät separate Steckplätze für ein Compact Flash-Gerät und ein Smart Media-Gerät. Daher erstellt der USB-Speicherporttreiber in diesem Beispiel zwei separate PDOs, eines für das Compact Flash-Gerät und ein weiteres für das Smart Media-Gerät.
Der Stapel über dem USB-Speicherporttreiber wird in der üblichen Weise vom systemeigenen Datenträgerklassentreiber verwaltet. Der Datenträgerklassentreiber erstellt eine PDO und eine FDO für den Datenträger als Ganzes (Partition 0) und PDOs für jede Partition auf dem Datenträger.
Der Partitions-Manager erstellt eine FDO für jede Datenträgerpartition.