OpenVPN TAP 驱动程序安装

发布于 2024-08-18 00:41:54 字数 657 浏览 10 评论 0原文

我正在尝试通过 Tapinstall 在 Windows 中控制 OpenVPN TAP 驱动程序的多个实例。似乎因为所有设备都有相同的 HWID - 'tap0901' - 我无法使用 tapinstall 删除任何一个设备 - 当我发出问题时,所有这些设备都会消失

tapinstall.exe remove tap0901

此外,当我安装另一个实例时,

tapinstall.exe install OemWin2k.inf tap0901

所有设备 都会消失其他实例会被重置(使用现有 Tap 安装的打开连接已损坏),因为 tapinstall 会尝试更新所有现有实例上的驱动程序。

到目前为止,我的解决方案是将 INF 文件中指定的 hwid 的所有实例重命名为其他名称,并将 .cat 和 .sys 文件也重命名为这个新名称;但是,这会破坏驱动程序签名。

有谁知道管理多个 OpenVPN TAP 驱动程序实例的任何替代方法,这些方法允许我:

  1. 删除驱动程序的任何单个实例,而不干扰其他实例的操作
  2. 安装新实例,而不干扰其他实例的操作

Win32 API 调用也可以;我正在尝试编写一个程序来自动执行此操作。

感谢您的帮助!

I'm trying to control multiple instances of OpenVPN's TAP driver in windows via tapinstall. It seems that because all of the devices have the same HWID -- 'tap0901' -- I'm unable to remove any single one with tapinstall -- all of them disappear when i issue

tapinstall.exe remove tap0901

Furthermore, when I do install another instance with

tapinstall.exe install OemWin2k.inf tap0901

all the other ones get reset (open connections using those existing tap installations are broken) because tapinstall tries to update the drivers on all the existing instances.

My solution thus far was to rename all instances of the hwid specified in the INF file to something else and to also rename the .cat and .sys files to this new name as well; however, this breaks the driver signing.

Does anyone know of any alternative ways to manage multiple OpenVPN TAP driver instances that allow me to:

  1. Remove any single instance of the driver without interfering with the operation of other instances
  2. Install new instances without interfering with the operation of the other instances

Win32 API calls are okay too; I'm trying to write a program to automate this.

Thanks for the help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

jJeQQOZ5 2024-08-25 00:41:54

如果有人想知道,我找到了一种方法来做到这一点,但它非常hacky。受到 devcon 源代码的启发。

  1. SetupDiCreateDeviceInfoList
  2. SetupDiCreateDeviceInfo
  3. SetupDiSetDeviceRegistryProperty
  4. SetupDiCallClassInstaller
  5. UpdateDriverForPlugAndPlayDevices
  6. SetupDiSetDeviceRegistryProperty - 将硬件 ID 重命名为此处唯一的名称。

If anyone is wondering, I found a way to do this, but it's pretty hacky. Inspired by the devcon source code.

  1. SetupDiCreateDeviceInfoList
  2. SetupDiCreateDeviceInfo
  3. SetupDiSetDeviceRegistryProperty
  4. SetupDiCallClassInstaller
  5. UpdateDriverForPlugAndPlayDevices
  6. SetupDiSetDeviceRegistryProperty - Rename the Hardware ID to something unique here.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文