1394 设备的标识符
1394 总线驱动程序为设备构造以下标识符:
1394\VendorName&ModelName
1394\UnitSpecId&UnitSwVersion
其中:
VendorName 是硬件供应商的名称。
ModelName 标识设备。
UnitSpecId 标识软件规范颁发机构。
UnitSwVersion 标识软件规范。
用于构造这些标识符的信息来自设备的配置 ROM。
如果设备具有供应商和型号名称字符串,则 1394 总线驱动程序使用第一个标识符作为设备 ID 和硬件 ID,并将第二个标识符用作兼容 ID。 如果设备缺少供应商或型号名称字符串,则总线驱动程序使用第二个标识符作为设备 ID 和兼容 ID,如果查询硬件 ID,则返回双 null。 因此,在某些情况下,IEEE1394总线驱动程序提供设备 ID,但不提供硬件 ID。 这是设备 ID 是硬件 ID 之一的一般规则的例外。
IEEE1394上的相机的设备 ID 可能是:
1394\SONY&CCM-DS250_1.08
对于设备配置 ROM 中的每个单元目录,多功能设备都有一组单独的标识符。
如果设备的功能驱动程序位于 SBP-2 端口驱动程序的顶部,则其设备 ID 采用以下格式。
SBP2\VendorName&ModelName&LUNn*
其中:
VendorName 是硬件供应商。
ModelName 标识设备。
n* 是一个字符串,表示逻辑单元数的低序 2 字节(以十六进制表示)。 多功能设备上的各种函数生成除此数字外相同的设备 ID。
SBP-2 1394 硬盘的设备 ID 可能如下所示:
SBP2\VST_TECHNOLOGIESINC.&VST_FULL_HEIGHT_FIREWIRE_DRIVE&LUN0
与 1394 总线一样,SBP2 端口驱动程序不会将设备 ID 分类为硬件 ID。 但是,虽然 1394 总线区分硬件 ID 和兼容 ID,但 SBP2 端口驱动程序却不区分。 对于IRP_MN_QUERY_ID类型为 BusQueryHardwareIDs 和 IRP_MN_QUERY_ID类型为 BusQueryCompatibleIDs SBP2 的 IRP 返回同一组四个标识符:
SBP2\VendorName&ModelName&CmdSetIdn*
SBP2\Gen
代系
SBP2\n*&d*
其中:
n* 是命令集 ID 号。
Gen 是下表的“泛型类型”列中列出的泛型名称之一。
d* 是采用逻辑单元数上两个字节的下五位构成的数字。 此数字是对应于 Gen 字符串标识符的设备通用名称的数字代码。
上一示例 (SBP2\n*&d*) 中列出的第四个 ID 在所有 SBP2 硬件标识符中是唯一的,其中 n*、命令集 ID 号和 d*,泛型名称的数字代码采用十进制,而不是十六进制。
下表列出了 SBP2 端口驱动程序返回的通用设备名称。 SBP2 端口驱动程序生成的大多数(但不是全部)泛型名称都是 SCSI 端口驱动程序生成的泛型名称的子集。
1394 类型代码 | 设备类型 | 泛型类型 |
---|---|---|
RBC_DEVICE 或 DIRECT_ACCESS_DEVICE (0) |
磁盘 |
GenDisk |
SEQUENTIAL_ACCESS_DEVICE (1) |
顺序程序 |
GenSequential |
PRINTER_DEVICE (2) |
打印机 |
GenPrinter |
WRITE_ONCE_READ_MULTIPLE_DEVICE (4) |
蠕虫 |
GenWorm |
READ_ONLY_DIRECT_ACCESS_DEVICE (5) |
CdRom |
GenCdRom |
SCANNER_DEVICE (6) |
扫描仪 |
GenScanner |
OPTICAL_DEVICE (7) |
光学 |
GenOptical |
MEDIUM_CHANGER (8) |
换 |
GenChanger |
默认类型 (上面未列出的所有值) |
其他 |
GenSbp2Device |