根据文档,C++ 函数CM_Locate_DevNodeA
和CM_Reenumerate_DevNode
ofCfgMgr32.dll
应该是在设备管理器中扫描更改硬件的菜单项的程序等效项。
有关C# 中的托管代码,请参阅此问题的第二个答案。
但与文档相反,当设备管理器操作有效时,编程方法并不总是有效。这是我的情况:
用户已插入 USB 设备
未找到驱动程序
我的安装程序将正确的 INF 文件添加到 Windows/inf 目录中
CM_Reenumerate_DevNode
不会导致安装新驱动程序设备管理器中的“扫描硬件更改”使用新驱动程序开始安装