目标计算机中有多个相同型号的网络适配器。如下,都是Intel I211。
PCI\VEN_8086&DEV_1539&SUBSYS_00008086&REV_03\0060E0FFFF6336A000
Name: Intel(R) I211 Gigabit Network Connection
Hardware IDs:
PCI\VEN_8086&DEV_1539&SUBSYS_00008086&REV_03
PCI\VEN_8086&DEV_1539&SUBSYS_00008086
PCI\VEN_8086&DEV_1539&CC_020000
PCI\VEN_8086&DEV_1539&CC_0200
Compatible IDs:
PCI\VEN_8086&DEV_1539&REV_03
PCI\VEN_8086&DEV_1539
PCI\VEN_8086&CC_020000
PCI\VEN_8086&CC_0200
PCI\VEN_8086
PCI\CC_020000&DT_0
PCI\CC_020000
PCI\CC_0200&DT_0
PCI\CC_0200
PCI\VEN_8086&DEV_1539&SUBSYS_00008086&REV_03\0060E0FFFF6336A100
Name: Intel(R) I211 Gigabit Network Connection #2
Hardware IDs:
PCI\VEN_8086&DEV_1539&SUBSYS_00008086&REV_03
PCI\VEN_8086&DEV_1539&SUBSYS_00008086
PCI\VEN_8086&DEV_1539&CC_020000
PCI\VEN_8086&DEV_1539&CC_0200
Compatible IDs:
PCI\VEN_8086&DEV_1539&REV_03
PCI\VEN_8086&DEV_1539
PCI\VEN_8086&CC_020000
PCI\VEN_8086&CC_0200
PCI\VEN_8086
PCI\CC_020000&DT_0
PCI\CC_020000
PCI\CC_0200&DT_0
PCI\CC_0200
如何通过 devcon、C++ 或 C# 更新这些相同型号适配器中的特定一个的驱动程序?例如,通过唯一的设备实例 ID进行更新(例如:PCI\VEN_8086&DEV_1539&SUBSYS_00008086&REV_03\0060E0FFFF6336A100)
谢谢
编辑:我已经为此搜索了 API,但它们都使用硬件 ID来更新驱动程序,这将更新所有相同型号适配器的驱动程序。例如:C++ 的UpdateDriverForPlugAndPlayDevicesA和 devcon 的更新命令。
EDIT2:这个问题的动机是我们正在使用 RTOS(实时操作系统,RTX64),我们希望通过 RTOS 与其他设备建立实时网络通信(EtherCAT 连接)。我们需要将其中一个适配器的驱动程序更新为RTX64提供的驱动程序,以便它可以使用该适配器。
我们只更新其中一个的唯一可行解决方案是使用 Windows 的“设备管理器”。(下图没有同型号的适配器,只是展示了如何通过设备管理器手动更新)
我们要求我们的用户在安装我们的软件后进行此手动更新。这对他们来说并不方便。所以我们正试图找到一种自动的方法来做到这一点。
由于 Windows 中的设备管理器可以做到这一点,我们假设有一个 API 也可以做到这一点。