車の形をした煙草入れ、ブリキのおもちゃ(玩具)と自動車グッツのコレクション。

シガレットケースと呼ばれる車型のタバコ入れ、ブリキの玩具、貴重、珍品の車グッツを公開

RS232CのCOMポート指定で10以上が使えない

2010年02月23日 10時58分53秒 | その他
覚書
COM10 以上のシリアルポートを指定する方法

最新、出張でAUのデータカード、FOMAでの通信を使ったりし、各社のRS232C~USB変換器(COREGA CG-USBRS232R),(サンワサプライ USB-CVRS9),(IO・DATA USB-RSAQ2,USB-RSAQ5)等をを使っているうちに、COMの番号が10を超えるようになってしまいました。
先日、自分で作ったプログラムでCOM11を開こうとした所、うまくいきません。

悩んで調べてもらった所、
COM10 以上のシリアルポートを指定する方法 が
下記のマイクロソフト サポート オンラインに掲載されていました。

http://support.microsoft.com/kb/115831/ja

CreateFile() を使用すると、シリアルポートのハンドルを得ることができます。この場合、共有モードパラメータには 0 、クリエイトパラメータには OPEN_EXISTING 、テンプレートパラメータには NULL を設定しなければいけません。詳細は "Win32 Programmer's Reference" の "CreateFile()" を参照してください。

CreateFile() は、ファイル名に "COM1" から "COM9" を使用した場合は、正常に終了しますが、"COM10" またはそれ以上のポート番号を使用すると、
"INVALID_HANDLE_VALUE"
というメッセージが返されます。ポート名が、.COM10 となる場合は、CreateFile() で以下の様に設定すれば、シリアルポートを正しく設定することができます。

CreateFile(
"\.COM10", /* 通信デバイスの名前のアドレス */
fdwAccess, /* アクセス (読み取りおよび書き込み) モード */
0, /* 共有モード */
NULL, /* セキュリティ記述子のアドレス */
OPEN_EXISTING, /* 作成方法 */
0, /* ファイル属性 */
NULL /* コピーする属性付きファイルのハンドル */
);


注意 : この構文は COM1 から COM9 でも有効です。ボードによっては、ユーザーがポート名を選べるものもあります。そのような場合でも、自分で付けた名前をポート名の箇所に入れ替えれば、この構文は有効となります。


アプリケーションテクノロジー株式会社
アプリケーションテクノロジー株式会社
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする