私は署名付きドライバがあり、C#(Vistaおよび7 64ビットを対象とする)を使用して特定のUSBデバイスに対してプログラムでインストールする必要があります。特定のデバイス用の特定のドライバのプログラムによるインストール(プレインストールに失敗した場合)
DIFx API内でDriverPackagePreinstall関数を使用するのが非常に簡単でした(hereはP /呼び出し方法です)。デバイスをUSBに差し込む前に呼び出すと、Windowsはドライバをデバイスが検出されると、
ドライバがあらかじめインストールされていない状態でUSBにデバイスを接続すると問題が発生します。そのデバイス用に別のドライバがインストールされていることがあります(1台のテスト用PCに、汎用ドライバがインストールされており、そのデバイスがデバイスマネージャの「その他のデバイス」に表示されています)。
今までの私は、デバイスがSetupDiGetClassDevsを使用してあることがそのVIDとPID(ベンダーによってデバイスを識別するためにSetupDiEnumDeviceInfoとSetupDiGetDeviceRegistryProperty機能を検出することができました、この問題を解決しようとすると、製品識別子)。今私は私のデバイスのSP_DEVINFO_DATAを持っていると私はInstallSelectedDriverの機能に電話しなければならないと思いますか?もしそうなら、その機能をP/Invokeする方法を教えてもらえますか(私はpinvoke.netで見つけることができません)、デバイスにインストールしたいドライバを指定する方法(INFパスがあると仮定) ?
@Mauro_Ganswerは、しかし、あなたが提供されるリンクがダウンしているようです。おそらくあなたの答えに使用例を追加できますか? –
彼はちょうどP/[InstallSelectedDriver](https://msdn.microsoft.com/en-us/library/windows/hardware/ff547654(v=vs.85).aspx)関数を呼び出します。 – Pupsik