The device ID format for a small computer system interface (SCSI) device is:
SCSI\t*v(8)p(16)r(4)
where t* is a device type code of variable length, v(8) is an 8-character vendor identifier, p(16) is a 16-character product identifier, and r(4) is a 4-character revision level value. The bus enumerator determines the device type by indexing an internal string table, using a numerically encoded SCSI device type code, obtained by querying the device, as shown in the following table. The remaining components are just strings returned by the device, but with special characters (including space, comma, and any nonprinting graphic) replaced with an underscore.
The ScsiPort driver currently returns the following device type strings, the first nine of which correspond to standard SCSI type codes.
| SCSI Type Code | Device Type | Generic Type | Peripheral ID |
|---|---|---|---|
| DIRECT_ACCESS_DEVICE (0) | Disk | GenDisk | DiskPeripheral |
| SEQUENTIAL_ACCESS_DEVICE (1) | Sequential | TapePeripheral | |
| PRINTER_DEVICE (2) | Printer | GenPrinter | PrinterPeripheral |
| PROCESSOR_DEVICE (3) | Processor | OtherPeripheral | |
| WRITE_ONCE_READ_MULTIPLE_DEVICE (4) | Worm | GenWorm | WormPeripheral |
| READ_ONLY_DIRECT_ACCESS_DEVICE (5) | CdRom | GenCdRom | CdRomPeripheral |
| SCANNER_DEVICE (6) | Scanner | GenScanner | ScannerPeripheral |
| OPTICAL_DEVICE (7) | Optical | GenOptical | OpticalDiskPeripheral |
| MEDIUM_CHANGER (8) | Changer | ScsiChanger | MediumChangerPeripheral |
| COMMUNICATION_DEVICE (9) | Net | ScsiNet | CommunicationsPeripheral |
| 10 | ASCIT8 | ScsiASCIT8 | ASCPrePressGraphicsPeripheral |
| 11 | ASCIT8 | ScsiASCIT8 | ASCPrePressGraphicsPeripheral |
| 12 | Array | ScsiArray | ArrayPeripheral |
| 13 | Enclosure | ScsiEnclosure | EnclosurePeripheral |
| 14 | RBC | ScsiRBC | RBCPeripheral |
| 15 | CardReader | ScsiCardReader | CardReaderPeripheral |
| 16 | Bridge | ScsiBridge | BridgePeripheral |
| 17 | Other | ScsiOther | OtherPeripheral |
An example of a device ID for a disk drive would be:
SCSI\DiskSEAGATE_ST39102LW_______0004
There are four hardware IDs in addition to the device ID:
SCSI\t*v(8)p(16)
SCSI\t*v(8)
SCSI\v(8)p(16)r(1)
V(8)p(16)r(1)
In the third and fourth of these additional identifiers, r(1) represents just the first character of the revision identifier. These hardware IDs are illustrated by the following examples:
SCSI\DiskSEAGATE_ST39102LW_______
SCSI\DiskSEAGATE_
SCSI\DiskSEAGATE_ST39102LW_______0
SEAGATE_ST39102LW_______0
The ScsiPort driver supplies only one compatible ID, one of the variable-sized generic type codes from the preceding table.
For example, the compatible ID for a disk drive is:
GenDisk
The generic identifier is used in INF files for SCSI devices more than any other, because SCSI drivers tend to be generic. Note that ScsiPort returns no generic name at all for sequential access and “processor” devices.