ウィンドウOSでUSBデバイスをアンインストールするのを手伝ってください。ラップトップから USB が 1 つ取り外されると、ラップトップに USB が 1 つ追加されたことをウィンドウ OS が記憶しているので、それをアンインストールします。
モジュール「選択したデバイスのアンインストール」のusbdeviewソフトウェアのように。これはこのソフトのリンクです: http://www.nirsoft.net/utils/usb_devices_view.html
ウィンドウOSでUSBデバイスをアンインストールするのを手伝ってください。ラップトップから USB が 1 つ取り外されると、ラップトップに USB が 1 つ追加されたことをウィンドウ OS が記憶しているので、それをアンインストールします。
モジュール「選択したデバイスのアンインストール」のusbdeviewソフトウェアのように。これはこのソフトのリンクです: http://www.nirsoft.net/utils/usb_devices_view.html
devcon と呼ばれるコマンドライン ツールを使用して動作するようになり、それをコードから呼び出しました。
devcon.exe をシステム パスの 1 つにドロップして、どこでも機能するようにしました。
Devcon: デブコン
呼び出し: DEVCON USB「MI_01」を削除
次に呼び出されます: DEVCON rescan
コード:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "DEVCON";
proc.StartInfo.Arguments = "Remove *usb"*MI_01";
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
最初に、ドライバーをクリアするためのユーティリティを探している場合、ここで尋ねるのは適切ではないと思います。おそらくスーパーユーザーです。
コードからドライバーを自分でアンインストールしたい場合は、.net フレームワークにドライバーをアンインストールするためのクラスがないと思います。ただし、C# を使用して実行することもできます。これには Win32 API 関数があります: DiUninstallDeviceはネイティブ呼び出しであり、API は C です。ラッパーを作成し、P/Invoke を使用して .net から呼び出す必要があります。
一般的なロジックは次のようになります: USB デバイスが切断されたことが Windows OS から通知されたら、ドライバー ツリーをスキャンし、ドライバーを特定してから、上記の関数呼び出しを使用してドライバーを削除する必要があります。
とにかく、Windows ホストは、USB デバイスの PID (製品 ID)、VID (ベンダー ID)、およびシリアル番号を使用して、デバイスを記憶しています。そのため、デバイスが再び接続されると、これらのパラメーターを使用して USB デバイスを自動的に識別し、ドライバーを検索します (もちろん、過去に既にインストールされているドライバーがある場合)。