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类型为 BusQueryHardwareIDsIRP_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