3

Tapinstallを介してWindowsでOpenVPNのTAPドライバーの複数のインスタンスを制御しようとしています。すべてのデバイスのHWIDが同じであるため('tap0901')、tapinstallで1つのデバイスを削除できないようです。発行すると、すべてのデバイスが消えます。

tapinstall.exe remove tap0901

さらに、別のインスタンスをインストールする場合

tapinstall.exe install OemWin2k.inf tap0901

tapinstallは既存のすべてのインスタンスのドライバーを更新しようとするため、他のすべてのものはリセットされます(既存のタップインストールを使用して開いている接続が切断されます)。

これまでの私の解決策は、INFファイルで指定されたhwidのすべてのインスタンスの名前を別の名前に変更し、.catファイルと.sysファイルの名前もこの新しい名前に変更することでした。ただし、これによりドライバーの署名が壊れます。

複数のOpenVPNTAPドライバーインスタンスを管理するための代替方法を知っている人はいますか?

  1. 他のインスタンスの操作を妨げることなく、ドライバーの単一のインスタンスを削除します
  2. 他のインスタンスの動作を妨げることなく、新しいインスタンスをインストールします

Win32API呼び出しも問題ありません。これを自動化するプログラムを書こうとしています。

助けてくれてありがとう!

4

1 に答える 1

6

誰かが疑問に思っているなら、私はこれを行う方法を見つけましたが、それはかなりハッキーです。devconソースコードに触発されました。

  1. SetupDiCreateDeviceInfoList
  2. SetupDiCreateDeviceInfo
  3. SetupDiSetDeviceRegistryProperty
  4. SetupDiCallClassInstaller
  5. UpdateDriverForPlugAndPlayDevices
  6. SetupDiSetDeviceRegistryProperty-ハードウェアIDの名前をここで一意の名前に変更します。
于 2010-01-20T02:02:34.497 に答える