仮想 COM ポートを介して通信するデバイスがいくつかあるシステムがあります。時間の経過とともに、COM ポート番号が変更されます。これらのデバイスの新しい COM ポート番号を検索して記憶するコードを作成しました。これはうまくいきます。
私の問題は、COM ポート番号の検索範囲を定義することです。Microsoft KBで、通常 (デフォルトで) Windows NT OS の COM ポートは 256 に制限されていることがわかりました。また、これは構成可能であり、システムが非常に異なる最大 COM ポート番号を持つことを妨げるものは何もないことも指定しています。
COMポート番号の範囲をプログラムで知る方法があるかどうか疑問に思っています。明らかに、システムに 2⁸ の範囲のみを検索させると、たとえば 2¹⁶ の範囲を検索するよりもはるかに短い時間で済みます! しかし、私のアプリケーションを実行しているシステムが 2⁸ を超える COM ポート番号をサポートするように設定されている場合、ある時点で、COM ポート番号の割り当てが COM0 (または COM1 ですか?) にループバックするまで、アプリケーションは確実に何度も失敗し始めます。あまり魔術を必要としないなら、それは避けたい。
私は主にJavaで作業していますが、どんなアイデアでも大歓迎です。