web-dev-qa-db-ja.com

Windows7でFTDIのキャッシュされたレジストリエントリを削除する方法

FTDIUSB-to-comm-portデバイスを持っています。 FTProg を使用してデバイスを再プログラムする必要がある場合、デバイスのシリアル番号が同じままであると、COMポートドライバー/設定が正しく再インストールされないことに気付きました。

デバイスをインストールすると(シリアル番号としてmysernumを選択)、レジストリキーは次のようになります。

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{4d36e978-e325-11ce-bfc1-08002be10318}\##?#FTDIBUS#VID_0403+PID_6010+mysernumA#0000#{4d36e978-e325-11ce-bfc1-08002be10318}
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{4d36e978-e325-11ce-bfc1-08002be10318}\##?#FTDIBUS#VID_0403+PID_6010+mysernumB#0000#{4d36e978-e325-11ce-bfc1-08002be10318}
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{86e0d1e0-8089-11d0-9ce4-08003e301f73}\##?#FTDIBUS#VID_0403+PID_6010+mysernumA#0000#{86e0d1e0-8089-11d0-9ce4-08003e301f73}
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{86e0d1e0-8089-11d0-9ce4-08003e301f73}\##?#FTDIBUS#VID_0403+PID_6010+mysernumB#0000#{86e0d1e0-8089-11d0-9ce4-08003e301f73}
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\FTDIBUS\VID_0403+PID_6010+mysernumA
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\FTDIBUS\VID_0403+PID_6010+mysernumB
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\FTSER2K\Enum
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Serenum\Enum
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\usbccgp\Enum
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FTSER2K\Enum
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serenum\Enum
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\usbccgp\Enum

デバイスマネージャーを使用して通信ポートをアンインストールしても、レジストリに残っているものがあります。デバイスマネージャーでデバイスを再スキャンすると、インストール手順の一部がスキップされ、COMポートの設定がキャッシュからプルされます。残りのレジストリキーは

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{a5dcbf10-6530-11d2-901f-00c04fb951ed}\##?#USB#VID_0403&PID_6010#mysernum#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB\VID_0403&PID_6010\mysernum
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\usbccgp\Enum
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses\{a5dcbf10-6530-11d2-901f-00c04fb951ed}\##?#USB#VID_0403&PID_6010#mysernum#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_0403&PID_6010\mysernum
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\usbccgp\Enum

特定のデバイスのシリアル番号のキャッシュを削除する必要がありますが、RegEditで脳外科手術を行うことに不安があります。

これどうやってするの?

1
Jason S

私はそれを考え出した。これはデュアルシリアルポートコンバータ(FT2232H)であるため、デバイスマネージャでは、ポート(COMおよびLPT)の下にポートごとに1つのエントリがありますが、ユニバーサルシリアルバスコントローラの下にはUSBコンポジットデバイスもあります。 2つのポートをアンインストールしていましたが、USBコンポジットデバイスはアンインストールしていませんでした。

これは、デバイスマネージャの[接続別デバイス]ビューで簡単に見つけることができます。

enter image description here

USBコンポジットデバイスをアンインストールすると、すべてのレジストリアイテムが完全にクリーンアップされ、クリーンな再インストールが可能になります。

2
Jason S

レジストリキーがまったく使用されていない場合は、レジストリクリーナーソフトウェアを使用することをお勧めします(例: ccleaner

あなたがそれにすべてのひねりを加えたいならば、私は「ゴースト」デバイスの除去のためにこのツールをお勧めします:

http://www.uwe-sieber.de/misc_tools_e.html

3番目の解決策は、Windowsのデバイスマネージャーで「非表示のデバイス」を有効にし、ドライバーのチェックマークを削除して削除することです。

0
Cody