我正在研究 KMDF pcie 驱动程序。目前,如果我断开/重新连接设备,Windows 不会识别设备已断开连接,不会重新枚举节点,也不会释放驱动程序。
目前最好的方法是通过设备管理器手动禁用/启用驱动程序,这会导致重新加载。当我尝试通过 SetupAPI.h 手动执行此操作时,通过使用 SetupDiSetClassInstallParams 和 SetupDiCallClassInstaller,我在 SetupDiCallClassInstaller 上收到 0xe0000219 错误,对应于 NO_ASSOCIATED_SERVICE,我不知道如何处理这个问题。有没有更好的方法以编程方式强制重启?
或者,有没有办法获得翻译的资源列表 WDFCMRESLIST,通常由即插即用 EvtDevicePrepareHardware 回调提供?这样我就可以重新配置我的驱动程序。