实例 ID

实例 ID 是由设备的枚举器报告的字符串, (其总线驱动程序) ,并将设备与计算机上的其他相同类型的设备区分开来。 实例 ID 包含序列号信息(如果受基础总线支持)或某种位置信息。 字符串不能包含对 IRP_MN_QUERY_ID 请求的响应中不允许的任何“\”字符或任何其他字符;否则,字符串的泛型格式特定于总线。 实例 ID(不包括 NULL 终止符)的字符数必须小于 MAX_DEVICE_ID_LEN。 此外, 实例 ID 是创建 设备实例 ID 时的另一个输入,以及 设备 ID,设备实例 ID 的最大可能长度为 MAX_DEVICE_ID_LEN。 这要求 实例 ID 的长度足够小 MAX_DEVICE_ID_LEN ,以便可以将设备实例 ID 创建为长度小于 MAX_DEVICE_ID_LEN的字符串。

设备的 DEVICE_CAPABILITIES 结构的 UniqueID 成员指示总线提供的实例 ID 在系统中是否唯一,如下所示:

  • 如果 UniqueIDFALSE,则设备的总线提供的 实例 ID 仅对设备的总线是唯一的。 即插即用 (PnP) 管理器修改总线提供的实例 ID,并将其与相应的设备 ID 组合在一起,以创建系统中唯一的设备实例 ID。

  • 如果 UniqueIDTRUE,则由总线提供的设备 ID 和 实例 ID 构成的设备实例 ID 将唯一标识系统中的设备。

实例 ID 在系统重启时是永久性的。

PnP 管理器使用参数.QueryId.IdType 字段设置为 BusQueryInstanceIDIRP_MN_QUERY_ID 请求从设备的总线驱动程序查询此字符串。