web-dev-qa-db-ja.com

FTDI仮想COMポートの列挙をリセットすることは可能ですか?本番環境で数百のCOMポートを簡単に取得できます

serverfault でもこれを尋ねましたが、おそらくここで尋ねる方が適していますか?エチケットを破っていないことを願っています。

FTDI USB toシリアルチップを使用してWindowsホストと通信するデバイスを製造する場合、Windowsは新しいFTDI vid + pid + serialがPCに接続されるたびにポート番号を増やすように見えるため、数百のCOMポートを取得します。 。

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\FTDIBUSを調べて、表示される新しいエントリを削除しようとしましたが、唯一の効果は、同じvid + pid + serialを持つデバイス(つまり、すでに一度接続されています)。

質問:列挙が最初の空きCOMポート番号から開始するように、このカウンターを何らかの方法でリセットすることは可能ですか?

5
icecream

私は仕事をしていないので、目の前にハードウェアはありませんが、FTDIアプリケーションノート AN_107-高度なドライバーオプション にはいくつかの有望なオプションがあるようです。

特に、「ハードウェアのシリアル番号を無視する」(セクション7.1、20ページ)オプションは、あなたが望むことをするだろうと思います。

7.1ハードウェアのシリアル番号を無視する

デバイスのベンダーIDと製品IDが同じで、シリアル番号が異なる場合、システムは通常、それらを異なるデバイスとして扱います。これにより、各デバイスにドライバーがインストールされ、各デバイスのレジストリエントリが作成されます。

この動作をオーバーライドして、システムにデバイスのシリアル番号を無視させ、同じUSBポートに接続されたVIDとPIDが一致するすべてのデバイスを同じデバイスであるかのように扱うことができます。これは、IgnoreHWSerNumというREG_BINARY値をレジストリに追加し、01に設定することで実現されます。

AN_123ドライバのインストール時にCOMポートがどのように割り当てられるか アプリノートも非常に有益です。

OT、最近のデバイスは非常に複雑になっているため、ほとんどのドキュメントはデータシートからAppNotesに移動されています。常にアプリのメモを読むことを忘れないでください!

6
Fake Name