由 USBSTOR.SYS 產生的標識碼
從 Windows 2000 開始,作業系統會提供許多 USB 大量儲存裝置的原生支援。 Usbstor.inf 安裝檔案包含明確支持的裝置標識碼。 如果 USB 中樞驅動程式列舉其中一個裝置,作業系統會自動載入 USB 記憶體埠驅動程式 ,Usbstor.sys。
Usbstor.inf 中 USB 大量儲存裝置的裝置識別碼採用 USB 裝置識別碼的一般形式,這些標識符是使用 USB 裝置裝置描述元中的資訊所撰寫的 USB 裝置識別碼:
USB\VID_v (4) &PID_d (4) &REV_r (4)
其中:
v (4) 是 USB 委員會指派給廠商的 4 位數廠商代碼。
d (4) 是廠商指派給裝置的 4 位數產品名稱。
r (4) 是修訂碼。
除了這些裝置識別碼之外, Usbstor.inf 還包含支援大量傳輸之類別 8 ATAPI CD-ROM 和抽取式媒體裝置的相容標識碼:
USB\CLASS_08&SUBCLASS_02&PROT_50
USB\CLASS_08&SUBCLASS_05&PROT_50
USB\CLASS_08&SUBCLASS_06&PROT_50
其中:
類別 08h = 大量儲存裝置。
subclass 02h = SFF-8020i ATAPI CD-ROM 裝置。
subclass 05h = SFF-8070i ATAPI 卸除式媒體。
subclass 06h = 泛型 SCSI 媒體。
通訊協定 50h = 僅限大量傳輸通訊協定。
如果從裝置的裝置描述元擷取的數據符合上述任何相容的識別碼,作業系統將會載入 Usbstor.sys。
一旦載入,USB 記憶體埠驅動程式就會為每個裝置的邏輯單元建立新的 PDO。 如需詳細資訊,請參閱USB大量儲存裝置裝置的裝置物件範例中說明 Usbstor.sys 所建立的範例裝置堆疊。
當 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) 只代表修訂標識元的第一個字元。
下表包含 USB 記憶體埠驅動程式用來產生識別符字串的 SCSI 裝置類型代碼。
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