Идентификаторы, созданные USBSTOR.SYS
Начиная с Windows 2000 операционная система обеспечивает встроенную поддержку многих запоминающих устройств USB. Файл установки Usbstor.inf содержит идентификаторы устройств, которые явно поддерживаются. Если драйвер USB-концентратора перечисляет одно из этих устройств, операционная система автоматически загрузит драйвер порта USB-хранилища ,Usbstor.sys.
Идентификаторы устройств для запоминающих устройств USB в файле Usbstor.inf принимают обычную форму для идентификаторов USB-устройств, состоящих с использованием сведений в дескрипторов устройства USB:
USB\VID_v(4)&PID_d(4)&REV_r(4)
Где:
v(4) — это 4-значный код поставщика, который комитет USB назначает поставщику.
d(4) — это 4-значный код продукта, который поставщик назначает устройству.
r(4) — это код редакции.
В дополнение к этим идентификаторам устройств usbstor.inf содержит совместимые идентификаторы для CD-ROM класса 8 ATAPI и съемных носителей, поддерживающих массовый транспорт:
USB\CLASS_08&SUBCLASS_02&PROT_50
USB\CLASS_08&SUBCLASS_05&PROT_50
USB\CLASS_08&SUBCLASS_06&PROT_50
Где:
class 08h = запоминающих устройств.
подкласс 02h = устройства SFF-8020i ATAPI CD-ROM.
подкласс 05h = съемный носитель SFF-8070i ATAPI.
подкласс 06h = универсальный носитель SCSI.
protocol 50h = транспортный протокол, доступный только для массовых операций.
Если данные, полученные из дескриптора устройства, соответствуют любому из этих совместимых идентификаторов, операционная система загрузит Usbstor.sys.
После загрузки драйвер порта USB-хранилища создает новое PDO для каждой логической единицы устройства. Дополнительные сведения см. в примере стека устройств, созданногоUsbstor.sys показан в разделе Device Object Example for a USB Mass Storage Device (Пример объекта устройства для запоминающих устройств USB).
Когда диспетчер PnP запрашивает строки идентификации устройств вновь созданных PDO, драйвер порта USB-хранилища создает новый набор устройств, оборудования и совместимых идентификаторов, полученных из данных запроса SCSI устройства. Формат идентификатора устройства выглядит следующим образом:
USBSTOR\v(8)p(16)r(4)
Где:
v(8) — это идентификатор поставщика из 8 символов.
p(16) — это идентификатор продукта из 16 символов.
r(4) — это 4-символьное значение уровня редакции.
Ниже приведен пример идентификатора устройства для диска.
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
Где:
t* — это код типа устройства SCSI переменной длины.
v(8) — это идентификатор поставщика из 8 символов.
p(16) — это идентификатор продукта из 16 символов.
r(4) — это 4-символьное значение уровня редакции. В этих дополнительных идентификаторах r(1) представляет только первый символ идентификатора редакции.
В следующей таблице содержатся коды типов устройств SCSI, используемые драйвером порта USB-хранилища для создания строк идентификаторов.
Код типа SCSI | Тип устройства | Универсальный тип |
---|---|---|
DIRECT_ACCESS_DEVICE (0) |
Диск или SFloppy |
GenDisk или GenSFloppy |
SEQUENTIAL_ACCESS_DEVICE (1) |
Последовательные |
GenSequential |
WRITE_ONCE_READ_MULTIPLE_DEVICE (4) |
Вирус-червь |
GenWorm |
READ_ONLY_DIRECT_ACCESS_DEVICE (5) |
Cdrom |
GenCdRom |
OPTICAL_DEVICE (7) |
Оптический |
GenOptical |
MEDIUM_CHANGER (8) |
Смены |
GenChanger |
Тип по умолчанию (все значения, не перечисленные ранее) |
Другое |
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
где t* — это код типа устройства SCSI переменной длины.
Совместимые идентификаторы, созданные драйвером порта USB-хранилища, показаны в следующих примерах:
USBSTOR\Disk
USBSTOR\RAW