我有一个程序可以为特定设备安装USB驱动程序,然后更新设备固件。我使用SetupCopyOEMInf()来安装驱动程序,但是,除非我重新启动系统,否则此功能似乎不会使驱动程序处于活动状态。
即。安装正常,SetupCopyOEMInf()返回OK,但设备管理器中的设备仍然是“未知”,除非我重新启动Windows。但是,当我手动安装驱动程序时,系统会识别所有内容,并且设备会快速绑定到驱动程序。
除了SetupCopyOEMInf()还有什么其他的东西我应该这样做,以便驱动程序绑定到设备?
感谢。
答案 0 :(得分:1)
尝试使用devcon安装驱动程序,使用devcon dp_add mydriver.inf
在WDK中提供源代码。如果这有效,你可以通过devcon中的源来逐步了解如何动态正确安装驱动程序,devcon也使用SetupCopyOEMInf,所以如果它有效,你可以将它与你的代码进行比较,找出区别是什么,这里是一个片段以防它现在帮助你:
TCHAR SourceInfFileName[MAX_PATH]; // Full path name
TCHAR DestinationInfFileName[MAX_PATH];
PTSTR DestinationInfFileNameComponent = NULL;
if (!SetupCopyOEMInf(SourceInfFileName,
NULL,
SPOST_PATH,
0,
DestinationInfFileName,
ARRAYSIZE(DestinationInfFileName),
NULL,
&DestinationInfFileNameComponent)) {
// Handle Error
}
答案 1 :(得分:0)
我认为Device Manager会在驱动程序更新后重启设备。