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 = 대용량 스토리지 디바이스입니다.
subclass 02h = SFF-8020i ATAPI CD-ROM 디바이스.
subclass 05h = SFF-8070i ATAPI 이동식 미디어.
subclass 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 관리자가 새로 만든 PDO의 디바이스 식별 문자열을 쿼리할 때 USB 스토리지 포트 드라이버는 디바이스의 SCSI 조회 데이터에서 파생된 새 디바이스, 하드웨어 및 호환 ID 집합을 만듭니다. 디바이스 ID 형식은 다음과 같습니다.
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.
디스크 드라이브에 대한 디바이스 ID의 예는 다음과 같습니다.
USBSTOR\SEAGATE_ST39102LW_______0004
USB 스토리지 포트 드라이버에서 생성하는 하드웨어 ID는 다음과 같습니다.
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.
다음 표에는 USB 스토리지 포트 드라이버에서 식별자 문자열을 생성하는 데 사용하는 SCSI 디바이스 유형 코드가 포함되어 있습니다.
| 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 스토리지 포트 드라이버에서 생성되는 하드웨어 ID를 보여 줍니다.
USBSTOR\DiskSEAGATE_ST39102LW_______0004
USBSTOR\DiskSEAGATE_ST39102LW_______
USBSTOR\DiskSEAGATE_
USBSTOR\SEAGATE_ST39102LW_______0
SEAGATE_ST39102LW_______0
USBSTOR\GenDisk
GenDisk
USB 스토리지 포트 드라이버는 두 개의 호환 ID를 생성합니다.
USBSTOR\t*
USBSTOR\RAW
where t* is a SCSI device type code of variable length.
USB 스토리지 포트 드라이버에서 생성된 호환 ID는 다음 예제에 나와 있습니다.
USBSTOR\Disk
USBSTOR\RAW