Von USBSTOR.SYS generierte Bezeichner

Ab Windows 2000 bietet das Betriebssystem systemeigene Unterstützung für viele USB-Massenspeichergeräte. Die Installationsdatei "Usbstor.inf " enthält Geräte-IDs für geräte, die explizit unterstützt werden. Wenn der USB-Hubtreiber eines dieser Geräte aufzählt, lädt das Betriebssystem automatisch den USB-Speicherporttreiber, Usbstor.sys.

Die Geräte-IDs für USB-Massenspeichergeräte in Usbstor.inf nehmen die übliche Form für USB-Geräte-IDs, die mithilfe von Informationen im Gerätedeskriptor des USB-Geräts zusammengesetzt sind:

USB\VID_v(4)&PID_d(4)&REV_r(4)

Where:

  • v(4) ist der 4-stellige Anbietercode, den der USB-Ausschuss dem Anbieter zuweist.

  • d(4) ist der 4-stellige Produktcode, den der Hersteller dem Gerät zuweist.

  • r(4) ist der Revisionscode.

Zusätzlich zu diesen Geräte-IDs enthält Usbstor.inf kompatible IDs für die Klasse 8 ATAPI-CD-ROM und Wechselmediengeräte, die den Massentransport unterstützen:

USB\CLASS_08&SUBCLASS_02&PROT_50

USB\CLASS_08&SUBCLASS_05&PROT_50

USB\CLASS_08&SUBCLASS_06&PROT_50

Where:

  • Klasse 08h = Massenspeichergeräte.

  • Unterklasse 02h = SFF-8020i ATAPI CD-ROM Geräte.

  • Unterklasse 05h = SFF-8070i ATAPI Wechselmedien.

  • Unterklasse 06h = generische SCSI-Medien.

  • Protokoll 50h = das Nur-Massen-Transportprotokoll.

Wenn die vom Gerätedeskriptor abgerufenen Daten mit einer dieser kompatiblen IDs übereinstimmen, wird das Betriebssystem Usbstor.sysgeladen.

Sobald sie geladen wird, erstellt der USB-Speicherporttreiber für jedes der logischen Geräteeinheiten einen neuen PDO. Weitere Informationen finden Sie im Beispiel für den Gerätestapel, der von Usbstor.sys in Device Object Example for a USB Mass Storage Device veranschaulicht wurde.

Wenn der PnP-Manager die Geräteidentifikationszeichenfolgen der neu erstellten PDOs abfragt, erstellt der USB-Speicherporttreiber einen neuen Satz von Geräte-, Hardware- und kompatiblen IDs, die von den SCSI-Untersuchungsdaten des Geräts abgeleitet wurden. Das Geräte-ID-Format lautet wie folgt:

USBSTOR\v(8)p(16)r(4)

Where:

  • v(8) ist ein 8-stellige Anbieterbezeichner.

  • p(16) ist eine 16-stellige Produkt-ID.

  • r(4) ist ein Wert der 4-stelligen Revisionsebene.

Ein Beispiel für eine Geräte-ID für ein Laufwerk wäre wie folgt:

USBSTOR\SEAGATE_ST39102LW_______0004

Die vom USB-Speicherporttreiber generierten Hardware-IDs sind wie folgt:

USBSTOR\t*v(8)p(16)r(4)

USBSTOR\t*v(8)p(16)

USBSTOR\t*v(8)

USBSTOR\v(8)p(16)r(1)

v(8)p(16)r(1)

USBSTOR\GenericTypeString

GenericTypeString

Where:

  • t* ist ein SCSI-Gerätetypcode mit variabler Länge.

  • v(8) ist ein 8-stellige Anbieterbezeichner.

  • p(16) ist eine 16-stellige Produkt-ID.

  • r(4) ist ein Wert der 4-stelligen Revisionsebene. In diesen zusätzlichen Bezeichnern stellt r(1) nur das erste Zeichen des Revisionsbezeichners dar.

Die folgende Tabelle enthält die SCSI-Gerätetypcodes, die vom USB-Speicherporttreiber zum Generieren von Bezeichnerzeichenfolgen verwendet werden.

SCSI-Typcode Gerätetyp Generischer Typ

DIRECT_ACCESS_DEVICE (0)

Datenträger oder SFloppy

GenDisk oder GenSFloppy

SEQUENTIAL_ACCESS_DEVICE (1)

Sequential

GenSequential

WRITE_ONCE_READ_MULTIPLE_DEVICE (4)

Worm

GenWorm

READ_ONLY_DIRECT_ACCESS_DEVICE (5)

CdRom

GenCdRom

OPTICAL_DEVICE (7)

Optisch

GenOptical

MEDIUM_CHANGER (8)

Changer

GenChanger

Standardtyp (alle Werte, die zuvor nicht aufgeführt wurden)

Other

UsbstorOther

Diese Beispiele zeigen die Hardware-IDs, die vom USB-Speicherporttreiber generiert werden:

USBSTOR\DiskSEAGATE_ST39102LW_______0004

USBSTOR\DiskSEAGATE_ST39102LW_______

USBSTOR\DiskSEAGATE_

USBSTOR\SEAGATE_ST39102LW_______0

SEAGATE_ST39102LW_______0

USBSTOR\GenDisk

GenDisk

Der USB-Speicherporttreiber generiert zwei kompatible IDs.

USBSTOR\t*

USBSTOR\RAW

dabei ist t* ein SCSI-Gerätetypcode mit variabler Länge.

Die kompatiblen IDs, die vom USB-Speicherporttreiber generiert werden, werden in den folgenden Beispielen veranschaulicht:

USBSTOR\Datenträger

USBSTOR\RAW