实例 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 在系统中是否唯一,如下所示:
如果 UniqueID 为 FALSE,则设备的总线提供的 实例 ID 仅对设备的总线是唯一的。 即插即用 (PnP) 管理器修改总线提供的实例 ID,并将其与相应的设备 ID 组合在一起,以创建系统中唯一的设备实例 ID。
如果 UniqueID 为 TRUE,则由总线提供的设备 ID 和 实例 ID 构成的设备实例 ID 将唯一标识系统中的设备。
实例 ID 在系统重启时是永久性的。
PnP 管理器使用参数.QueryId.IdType 字段设置为 BusQueryInstanceID 的 IRP_MN_QUERY_ID 请求从设备的总线驱动程序查询此字符串。