看一下这个例子:据报道,Windows 7中的USB设备具有设备实例路径(DevinstPath) USB \ VID_1EAB& PID_0501 \ 7& 25C389C1& 0& 1 ,我完全知道它对应于注册表中所谓的硬件密钥(hwkey)。
现在我的问题是:当我的KMDF驱动程序代码具有该USB设备的WDFDEVICE句柄时,我怎么知道它的DevinstPath?
我知道我可以
但我不知道如何获得所谓的“实例路径”。一些内核大师能否告诉我如何才能得到它?
MSDN doc似乎对此非常模糊!BTW:我也意识到用户层函数 SetupDiGetDeviceInstanceId 实际上返回了DevinstPath - 尽管它被命名为“InstanceId”。
答案 0 :(得分:1)
WdfDeviceAllocAndQueryPropertyEx
或IoGetDevicePropertyData
(传递WDM物理设备对象)来查询设备实例路径
答案 1 :(得分:0)
设备实例ID为自动递增序列。
您可以在注册表中找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
;
规则:NextPareneID.XXXXXXXX.N
XXXXXX使用UUID计算crc32值(测试正常)
N是1〜9
设备实例ID格式为N&PareneID&random的数字和索引