トップ回答者
USBシリアル接続が、機器を取り外した後、ドライバー使用中として残り、アンインストールできない

質問
回答
-
すでにできてしまったポートはHKLM\SYSTEM\CurrentControlSet\Control\COM Name Arbiter\ComDBにビットフラグで登録されているので、このフラグを0にすれば未使用に戻せます。
HKLM以下に書き込みするには管理者権限がいるので、通常はアプリケーションから削除するといったことはしない方がいいです。GlobalDisableSerNumGenやIgnoreHWSerNumをキーワードにしてネット検索するとポートを増やさない方法を見つけられます。
こちらもHKLM\SYSTEM\CurrentControlSet\Control\UsbFlags\に設定を書き込むことになるので管理者権限が必要です。
#ただしこの方法では、ホストコントローラーのドライバがUSB3.0のポートだと効果が無かったりもします。USBシリアル変換ケーブルなどは、同じケーブルを指せば同じCOMポートになった方が便利だからなのか、ポートが割り当てられたままになります。
同じUSBポートに挿しても、USB-シリアルのチップに書き込まれているPIDとVIDとシリアル番号が異なると、異なるCOMポートに割り当てる動作をするので、同一にしておくことで増えなくすることもできます。
#某F社のチップを使っているとメーカー提供のツールでPID,VID,シリアルをいじれたり
個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
すべての返信
-
すでにできてしまったポートはHKLM\SYSTEM\CurrentControlSet\Control\COM Name Arbiter\ComDBにビットフラグで登録されているので、このフラグを0にすれば未使用に戻せます。
HKLM以下に書き込みするには管理者権限がいるので、通常はアプリケーションから削除するといったことはしない方がいいです。GlobalDisableSerNumGenやIgnoreHWSerNumをキーワードにしてネット検索するとポートを増やさない方法を見つけられます。
こちらもHKLM\SYSTEM\CurrentControlSet\Control\UsbFlags\に設定を書き込むことになるので管理者権限が必要です。
#ただしこの方法では、ホストコントローラーのドライバがUSB3.0のポートだと効果が無かったりもします。USBシリアル変換ケーブルなどは、同じケーブルを指せば同じCOMポートになった方が便利だからなのか、ポートが割り当てられたままになります。
同じUSBポートに挿しても、USB-シリアルのチップに書き込まれているPIDとVIDとシリアル番号が異なると、異なるCOMポートに割り当てる動作をするので、同一にしておくことで増えなくすることもできます。
#某F社のチップを使っているとメーカー提供のツールでPID,VID,シリアルをいじれたり
個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
-
ご回答ありがとうございます。諸所テストしてみましたが、旧来からやられているれレジストリーの変更、エクスポートを行い、xxx.regを実行しHKLM\SYSTEM\CurrentControlSet\Control\COM Name Arbiter\ComDBを上書きする方法が、簡単の様です。(例)デスクトップにHKLM\SYSTEM\CurrentControlSet\Control\COM Name Arbiter\ComDBのエクスポートファイルを置き、ダブルクリックでレジストリーへの追加が簡単のようです。 まだ2デバイス(同じもの)のテストのみですが、台数を増やして確認してみます。 アプリケーション上、1つのCOMポートの使用のみですが、見た目同じのデバイスを100台程とっかえひっかえ接続するための悩みでした。