いいえ、ありません。デバイスと正確なニーズに応じて、いくつかの選択肢があります。
最初の最も簡単な方法は、ドライバーをリダイレクトすることです。 デバイスに COM1 デバイスがまだ定義されていない場合は、レジストリを変更HKLM\drivers\builtin
して、特定のポートのインデックスを から に変更3
できます1
。これにより、device.exe はポートを COM3 ではなく COM1 として公開します。ただし、私の経験では、ほとんどのシリアル ポートは OS がインデックスを自動割り当てできるように設定されているため、これは機能しない可能性があります。つまり、COM1 と COM2 は既に使用されています。ただし、これを回避することはできます。デバイスの 3 以下のすべてのインスタンスにインデックスを明示的に割り当てるだけです。インデックス 1 を 3 に、インデックス 3 を 1 に移動すると、ポートが効果的にスワップされます。
OEM がドライバーの初期化をセットアップする方法に依存するため、いくつかの例を次に示します。明示的なポート名のないドライバーの例を次に示します (この場合は I2C ですが、同じように動作します)。

Prefix
とがあることに注意してくださいIndex
。このドライバーは、「I2C0:」として列挙されます。値を「2」などの別の値に変更するIndex
と、「I2C2:」として列挙されます。
場合によっては、ドライバーは次のような特定のポート名を提供できます。

ここで、値がplus にPort
一致することに注意してください。手動で設定を変えたらどうなるか分からないので、そうしないでください。これを COM3 に移動したい場合は、3 とCOM3 に変更しますが、これらの値を使用するように設定されたレジストリが他にないことを確認する必要があります。2 つのドライバー インスタンスが同じインデックスで列挙しようとするのは望ましくありません。そうする場合、2番目の値がインクリメントされるだけの動作だと思いますが、何が起こっているのかがわかるように、値を一意として明示的に設定するのが最善です。Prefix
Index
Index
Port
それがニーズを満たさない場合は、ポートの移動/集約を行うために実際のデバイス ドライバーを作成する必要があります。これは、Windows Mobile の既存の GPS 中間ドライバー (GPSID) とよく似た働きをし、シリアル データを任意のポートにリダイレクトできます。ただし、マネージ コード (CF 内) はネイティブ シンボルをエクスポートできないため、device.exe を取得して C# アセンブリを読み込む方法がないため、これは C で記述する必要があります。