Идентификаторы, созданные USBSTOR.SYS

Начиная с Windows 2000 операционная система обеспечивает встроенную поддержку для многих устройств с накопительным объемом USB. The Usbstor.inf installation file contains device IDs for those devices that are explicitly supported. If the USB hub driver enumerates one of these devices, the operating system will automatically load the USB storage port driver, Usbstor.sys.

The device IDs for USB mass storage devices in Usbstor.inf take the usual form for USB device IDs composed by using information in the USB device's device descriptor:

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

Where:

  • v(4) is the 4-digit vendor code that the USB committee assigns to the vendor.

  • d(4) is the 4-digit product code that the vendor assigns to the device.

  • r(4) is the revision code.

In addition to these device IDs, Usbstor.inf contains compatible IDs for class 8 ATAPI CD-ROM and removable media devices that support bulk-only transport:

USB\CLASS_08&SUBCLASS_02&PROT_50

USB\CLASS_08&SUBCLASS_05&PROT_50

USB\CLASS_08&SUBCLASS_06&PROT_50

Where:

  • класс 08h = устройства массового хранения.

  • подкласс 02h = SFF-8020i ATAPI CD-ROM устройствах.

  • подкласс 05h = SFF-8070i ATAPI съемный носитель.

  • подкласс 06h = универсальный носитель SCSI.

  • протокол 50h = протокол транспорта, доступный только для массового использования.

If the data retrieved from the device's device descriptor matches any of these compatible IDs, the operating system will load Usbstor.sys.

После загрузки драйвер порта USB создает новый PDO для каждого логических единиц устройства. For more information, see the example device stack created by Usbstor.sys illustrated in Device Object Example for a USB Mass Storage Device.

Когда диспетчер PnP запрашивает строки идентификации устройства только что созданных PDOS, драйвер usb-хранилища создает новый набор устройств, аппаратных и совместимых идентификаторов, производных от данных запроса SCSI устройства. Формат идентификатора устройства выглядит следующим образом:

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

Where:

  • v(8) is an 8-character vendor identifier.

  • p(16) is a 16-character product identifier.

  • r(4) is a 4-character revision level value.

Ниже приведен пример идентификатора устройства для диска:

USBSTOR\SEAGATE_ST39102LW_______0004

Идентификаторы оборудования, создаваемые драйвером порта USB, приведены следующим образом:

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* is a SCSI device type code of variable length.

  • v(8) is an 8-character vendor identifier.

  • p(16) is a 16-character product identifier.

  • r(4) is a 4-character revision level value. In these additional identifiers, r(1) represents just the first character of the revision identifier.

В следующей таблице содержатся коды типов устройств SCSI, используемые драйвером порта хранилища USB для создания строк идентификаторов.

Код типа SCSI Device type Generic type

DIRECT_ACCESS_DEVICE (0)

Диск или SFloppy

GenDisk или 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)

Optical

GenOptical

MEDIUM_CHANGER (8)

Changer

GenChanger

Тип по умолчанию (все значения, не перечисленные ранее)

Other

UsbstorOther

В этих примерах показаны аппаратные идентификаторы, созданные драйвером порта usb-хранилища:

USBSTOR\DiskSEAGATE_ST39102LW_______0004

USBSTOR\DiskSEAGATE_ST39102LW_______

USBSTOR\DiskSEAGATE_

USBSTOR\SEAGATE_ST39102LW_______0

SEAGATE_ST39102LW_______0

USBSTOR\GenDisk

GenDisk

Драйвер порта USB создает два совместимых идентификатора.

USBSTOR\t*

USBSTOR\RAW

where t* is a SCSI device type code of variable length.

Совместимые идентификаторы, созданные драйвером порта USB, иллюстрируются следующими примерами:

USBSTOR\Disk

USBSTOR\RAW