在Windows上以编程方式安装驱动程序,驱动程序不会变为活动状态

时间:2014-09-23 09:28:37

标签: windows installation usb device-driver

我有一个程序可以为特定设备安装USB驱动程序,然后更新设备固件。我使用SetupCopyOEMInf()来安装驱动程序,但是,除非我重新启动系统,否则此功能似乎不会使驱动程序处于活动状态。

即。安装正常,SetupCopyOEMInf()返回OK,但设备管理器中的设备仍然是“未知”,除非我重新启动Windows。但是,当我手动安装驱动程序时,系统会识别所有内容,并且设备会快速绑定到驱动程序。

除了SetupCopyOEMInf()还有什么其他的东西我应该这样做,以便驱动程序绑定到设备?

感谢。

2 个答案:

答案 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会在驱动程序更新后重启设备。