我需要通过插入的USB设备找到USB主机控制器。我需要它为该控制器设置一个特定的注册表项,这是修复KB928631所必需的。
我能够使用CM_Get_Parent()
函数获取设备句柄并获取父设备句柄。
不幸的是,没有关于HUB数量的信息,所以我不知道应该调用多少次CM_Get_Parent()
才能到达主机控制器。
是否有可用于区分HUB的控制器特定数据?
目前我正在获取CM_DRP_LOCATION_INFORMATION
属性并确定属性返回的字符串是否由“PCI bus”启动。如果是这样假设当前设备是主机控制器。
这是一个可靠的解决方案吗?