兼容 ID
兼容 ID 是供应商定义的标识字符串,Windows 使用该字符串将设备与 驱动程序包进行匹配。 兼容 ID 标识设备在某种特定级别上是什么,并指示声明该设备的任何驱动程序包都可以与具有该 ID 的设备一起使用,从而获得某种程度的功能。 兼容 ID 的格式与 硬件 ID 相同,但往往对设备的描述比硬件 ID 更通用。 设备可以关联兼容 ID 的列表。 兼容的 ID 应按适用性降低的顺序列出。 如果 Windows 找不到与设备硬件 ID 之一匹配的驱动程序包,它将使用兼容的 ID 来查找驱动程序包。 例如,设备的概念兼容 ID 列表可能如下所示:
<Product X made by company Y>
<Device of type W made by company Y>
<Device of type W>
其中,实际兼容的 ID 将使用遵循兼容 ID 的格式要求的字符串来表示这些概念。
若要查找给定设备的兼容 ID,请在设备管理器中选择该设备,选择“属性”,然后选择“详细信息”选项卡,然后使用“属性”下拉列表。
如果供应商交付的驱动程序包指定了驱动程序节点的兼容 ID,则供应商应确保其驱动程序包可以支持公开该兼容 ID 的所有硬件。
可以通过检索设备上的 DEVPKEY_Device_CompatibleIds 属性,以编程方式获取兼容 ID 的列表。 例如,可以使用 IoGetDevicePropertyData、 SetupDiGetDeviceProperty 或 CM_Get_DevNode_Property 等 API 检索该属性。
此例程检索的兼容 ID 列表是 REG_MULTI_SZ 值。 兼容 ID 列表中的最大字符数(包括每个兼容 ID 后面的 NULL 终止符和最终的 NULL 终止符)为 REGSTR_VAL_MAX_HCID_LEN
。 兼容 ID 列表中的最大可能 ID 数为 64。