VID、DID、SID/SSID、SVID科普

概念定义

VID:全称Vendor Identification,又称Vendor ID,是代表发明设备的专利所有者(技术厂商)的识别码,即常说的厂商ID,这个ID是PCI-SGI组织统一编制命名的,是唯一的厂商标识,不允许重名。例如:ATI的VID是0x1002,而NVIDIA的VID则是0x10DE。

DID:全称Device Identification,又称Device ID,是针对设备本身标识的代码,即常说的设备ID。这个ID标识主要区别同类设备的不同型号,一般由技术发明厂商按PCI规范命名,不同厂商的设备可以有重名(由于不同厂商都有唯一的VID,因此并不会混淆

份)。例如:同样研发代号为R350的ATI 9800和ATI 9800XT,设备ID却不同,分别为:0x4E48和0x4E4A。 

SID/SSID:全称 Subsystem-Identification,又称Sub-ID子(次要)系统(设备)识别码,是授权被制造的设备的二次编码。和DID的区别是这个代码不是原技术厂商设备的代码,而是二级制造厂商代工设备的代码。有时候,如果是由技术厂商自己组织制造设备,这个编码也可以和DID同名。

SVID:全称 Subsystem-Vendor Identification,又称Sub-Vendor ID子(次要)系统厂商识别码,是由PCI-SGI组织认证的二级制造厂商的识别码,同样是唯一的厂商标识,不允许重名,但同一家技术厂商的VID和SVID可以重名。SID和SVID代码通常放在一起,作为设备二次认证的IDs。例如:8139网卡的Subsystem IDs组合是0x813910EC,前面的8139是SID,后面的10EC是SVID。

RID:全称Revision ID,又称Rev ID。即通常所说的版本号:REV.X.

CC:全称Class-Code,类型代码,是区别不同类或者同类不同规格设备类型的编码。对于每一种设备如显示、声卡、SCSI、USB设备等等都有各自的标准分类。例如:Class-Code:000c0300,代表UHCI类型的USB设备;而Class-Code: 000c0310,则代表OHCI类型的USB设备。

实际操作

Windows:

设备管理器中右击PCI相关硬件 → 属性 → 详细信息 → 硬件ID:

Linux:

使用lspci命令

验证:

实际案例:

检验ASUS XG-100C 是否可用于ESXi 7.0

1.查看VID、DID、SVID、SSID

可以看到该卡

VID:1d6a

DID:07b1

SSID:8741

SVID:1043

2.直接查看是否存在ESXi7.0驱动

通过https://www.vmware.com/resources/compatibility查询,asus相关网卡仅有如下驱动,未找到该网卡

3.查看原厂方案

ASUS XG-100C为OEM厂商,原厂方案为Aquantia AQC107 , Aquantia后被Marvell 收购,产品方案改名为 AQtion 10Gbit Network Adapter,而无论方案是否改名,在https://www.vmware.com/resources/compatibility中均存在认证驱动。

4.比对VID、DID、SVID、SSID

原厂方案存在驱动并不代表同样支持OEM厂商,我们需进行VID、DID、SVID、SSID比对。

通过筛选VID、DID,得出以下几个结果:

对几个型号逐一比对:

前三个型号SSID与SVID均不对应,但是最后一项存在如下:


SVID、SSID均为0000,而0000 与 FFFF均为无效code,所以这表明只要VID、DID一致即可。

故ASUS XG-100C可用于ESXi 7.0。

reference :

https://docs.microsoft.com/en-us/windows-hardware/drivers/install/identifiers-for-pci-devices

https://www.vmware.com/resources/compatibility

https://www.marvell.com/products/ethernet-adapters-and-controllers/fastlinq-edge-ethernet-controllers.html

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注