(57)【要約】【課題】デバイスのプラグイン時にプレフィックスの空きインデックスが不足する場合でもプラグインの拒否を回避し，またインデックスの枯渇を回避することを可能にする。【解決手段】プラグイン時に，空きインデックス検索処理部１２１が，レジストリ３を検索して特定プレフィックスの空きインデックスを抽出し，インデックス数比較処理部１３が，空きインデックスの数と，新規挿入デバイスに割当てるインデックスの数とを比較し，プレフィックス・インデックス割当て処理部１２が，比較結果をもとに１または複数のプレフィックスにおける空きインデックスからインデックスを割当て，割当てたプレフィックスおよびインデックスの値をレジストリ３に登録する。プレフィックス・インデックス解放処理部１６は，プラグアウト時にそのデバイスに割当てたプレフィックスとインデックスのペアをレジストリ３から削除する。【選択図】図１
2005165581.tif 000002
【特許請求の範囲】
【請求項１】
所定のオペレーティングシステムを搭載するコンピュータがデバイスにアクセスするためのデバイスドライバにおいてプレフィックスとインデックスとにより特定される通信ポートを割当てる通信ポート割当て装置であって，
デバイスが前記コンピュータに挿入されたときに，前記オペレーティングシステムからプラグイン通知を受信し，レジストリに登録されている特定プレフィックスごとのインデックスを検索して空きインデックスを抽出する手段と，
あらかじめ設定されたインデックス数が複数の場合の複数プレフィックス割当て許可または不許可を示す条件のもとで，前記抽出した空きインデックスの数と前記挿入されたデバイスに割当てるインデックスの数とを比較し，１または複数のプレフィックスにおける空きインデックスからインデックスを割当て，割当てたプレフィックスおよびインデックスの値を前記レジストリに書き込む手段とを備える
ことを特徴とする通信ポート割当て装置。
【請求項２】
請求項１に記載の通信ポート割当て装置において，さらに，
デバイスが前記コンピュータから抜かれたときに，前記オペレーティングシステムからプラグアウト通知を受信し，前記プラグイン時に割当てたプレフィックスとインデックスのペアを前記レジストリから削除する手段を備える
ことを特徴とする通信ポート割当て装置。
【請求項３】
所定のオペレーティングシステムを搭載するコンピュータがデバイスにアクセスするためのデバイスドライバにおいてプレフィックスとインデックスとにより特定される通信ポートを割当てる通信ポート割当て方法であって，
デバイスが前記コンピュータに挿入されたときに，前記オペレーティングシステムからプラグイン通知を受信し，レジストリに登録されている特定プレフィックスごとのインデックスを検索して空きインデックスを抽出するステップと，
あらかじめ設定されたインデックス数が複数の場合の複数プレフィックス割当て許可または不許可を示す条件のもとで，前記抽出した空きインデックスの数と前記挿入されたデバイスに割当てるインデックスの数とを比較し，１または複数のプレフィックスにおける空きインデックスからインデックスを割当て，割当てたプレフィックスおよびインデックスの値を前記レジストリに書き込むステップとを有する
ことを特徴とする通信ポート割当て方法。
【請求項４】
所定のオペレーティングシステムを搭載するコンピュータがデバイスにアクセスするためのデバイスドライバにおいてプレフィックスとインデックスとにより特定される通信ポートを割当てる通信ポート割当て方法を，コンピュータに実行させるための通信ポート割当てプログラムであって，
デバイスが前記コンピュータに挿入されたときに，前記オペレーティングシステムからプラグイン通知を受信するプラグイン処理ステップと，
前記プラグイン通知の受信により，レジストリに登録されている特定プレフィックスごとのインデックスを検索して空きインデックスを抽出し，抽出結果を空きインデックス格納テーブルに格納する空きインデックス検索処理ステップと，
プレフィックス毎の，インデックス数とインデックス数が複数の場合の複数プレフィックス割当て許可または不許可を示すフラグとが格納された割当てインデックス格納テーブルの内容と，前記空きインデックス格納テーブルの内容とを比較して，比較結果の割当て可能なインデックス情報を比較結果格納テーブルに格納するインデックス数比較処理ステップと，
前記比較結果格納テーブルの情報をもとに，前記レジストリへプレフィックスおよびインデックスの値の書き込みを行うプレフィックス・インデックス割当て処理ステップとを，
コンピュータに実行させるための通信ポート割当てプログラム。
【請求項５】
請求項４に記載の通信ポート割当てプログラムにおいて，さらに，
デバイスが前記コンピュータから抜かれたときに，前記オペレーティングシステムからプラグアウト通知を受信するプラグアウト処理ステップと，
前記プラグアウト通知の受信により，前記比較結果格納テーブルの情報から割当てられているプレフィックスとインデックスのペアを取得し，取得したプレフィックスとインデックスとをレジストリから削除するプレフィックス・インデックス解放処理ステップとを，
コンピュータに実行させるための通信ポート割当てプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，通信デバイスのＷｉｎｄｏｗｓＣＥ（米国，マイクロソフト社商標）ベースのプラットフォームへの登録技術に関し，特に，プレフィックスとインデックスとで特定される通信ポートを柔軟に割当て／解放する通信ポート割当て装置，通信ポート割当て方法および通信ポート割当てプログラムに関する。
【背景技術】
【０００２】
マイクロソフト社が開発した，持ち運ぶことを想定した機器への組み込みを意識したＯＳとしてＷｉｎｄｏｗｓＣＥがある。まず，ＷｉｎｄｏｗｓＣＥにおけるプレフィックスとインデックスの用語について説明する。
【０００３】
ＷｉｎｄｏｗｓＣＥでは，デバイスドライバのインタフェース関数をデバイスに対して提示し関係付けるためにデバイスファイル名（以下，通信ポートと記述）を規定する。通信ポートは，大英文字３個と，数字１個と，コロン１個で構成される。通信ポートを構成する大英文字３個がプレフィックス(Prefix)，数字１個がインデックス(Index) であり，このプレフィックスとインデックスとによって通信ポートが特定される。例えば「ＣＯＭ１：」という通信ポートの場合，プレフィックスはＣＯＭ，インデックスは１である。
【０００４】
ＷｉｎｄｏｗｓＣＥでは，ＣＯＭ，ＦＪＦ，ＦＪＨなど複数のプレフィックスが存在する。また，ＷｉｎｄｏｗｓＣＥの仕様では，インデックスは一つのプレフィックスに対して１，２，３，…，９，０の計１０個が割当て可能である。
【０００５】
図８は，ＷｉｎｄｏｗｓＣＥのドライバスタックチャートを示す図である。図８において，３はシステム情報が登録されるレジストリ，２０はＰＣカードやＵＳＢ等のデバイス，２１はＯＳ（ＷｉｎｄｏｗｓＣＥ）に実装されているＰＣカードソケットドライバ，ＵＳＢホストコントローラドライバ等の下位ドライバ，２２はクライアントドライバ，２３はＯＳ（ＷｉｎｄｏｗｓＣＥ）に実装されているＴＡＰＩ(telephony API) ，２４はダイヤルアップアプリケーション，２５は一般的なアプリケーションである。ＴＡＰＩは，コンピュータで電話機能を利用するためのアプリケーションインタフェースである。
【０００６】
ＷｉｎｄｏｗｓＣＥでは，レジストリ３中に，プレフィックス名，インデックス名，デバイスドライバ名等の情報が，デバイス２０のＩＤ（ベンダＩＤ／プロダクトＩＤ）毎に管理されている。このレジストリ情報を参照すれば，選択されたデバイス２０に対応するデバイスドライバ名，プレフィックス名，インデックス名がわかる。
【０００７】
通信時においては，次のような処理が行われる。例えばダイヤルアップアプリケーション２４でモデム名を指定してＣＯＭのＯＰＥＮ（通信動作の開始）をする場合，選択されたモデム名と対応するプレフィックスとインデックスをレジストリ３から取得してＣＯＭをＯＰＥＮする。
【０００８】
一方，一般的なアプリケーション２５（例えば，ターミナルアプリ）でＣＯＭを直接指定してＯＰＥＮする時，既にプレフィックスとインデックスが決定されているので，それらを用いてＣＯＭのＯＰＥＮをする。そして，デバイスドライバに実装されているストリームインタフェース関数がコールされて，通信が開始される。
【０００９】
なお，後述する本発明が解決しようとする課題に着目した従来技術に関して記載された文献は，特に見当たらない。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし，従来，デバイス使用（プラグイン）時にプレフィックスのインデックスがすべて割当てられている場合，選択的に単一または複数のプレフィックスおよびインデックスを割当てる機能がなかった。
【００１１】
例えば，あるプレフィックスについて，インデックス番号が１〜９までのインデックスが割当てられており，インデックス番号＝０のインデックスしか空いていない場合に，複数のデバイス２０がＷｉｎｄｏｗｓＣＥが搭載された装置（例えばＰＤＡ）に挿入されると，この複数のデバイス２０に対してプレフィックスおよびインデックスを割当てることができなかった。このため，デバイス２０のプラグインが拒否されていた。
【００１２】
また，従来，デバイス２０の未使用（プラグアウト）時に，プレフィックスに割当てられているインデックスを解放する機能がなかった。このため，インデックスが枯渇するおそれがあった。
【００１３】
本発明は，上記従来技術の問題点を解決し，プラグイン時にプレフィックスのインデックスがすべて割当てられている場合，選択的に単一または複数のプレフィックスおよびインデックスを割当てるとともに，プラグアウト時に，プレフィックスに割当てられているインデックスを解放する手段を提供することにより，プラグインの拒否の回避およびインデックスの枯渇の回避を実現することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するため，本発明は以下の処理を実行する。
（１）デバイス使用（プラグイン）時にプレフィックスのインデックスがすべて割当てられている場合，選択的に単一のプレフィックスおよびインデックスを割当てる機能を搭載し，デバイス２０のプラグインの拒否を回避する。
（２）デバイス使用（プラグイン）時にプレフィックスのインデックスがすべて割当てられている場合，選択的に複数のプレフィックスおよびインデックスを割当てる機能を搭載し，デバイス２０のプラグインの拒否を回避する。
（３）デバイス未使用（プラグアウト）時にプレフィックスに割り当てられたインデックスを解放する機能を搭載することで，インデックスの枯渇を回避する。
【００１５】
すなわち，本発明は，所定のオペレーティングシステムを搭載するコンピュータがデバイスにアクセスするためのデバイスドライバにおいてプレフィックスとインデックスとにより特定される通信ポートを割当てる通信ポート割当て装置であって，デバイスが前記コンピュータに挿入されたときに，前記オペレーティングシステムからプラグイン通知を受信し，レジストリに登録されている特定プレフィックスごとのインデックスを検索して空きインデックスを抽出する手段と，あらかじめ設定されたインデックス数が複数の場合の複数プレフィックス割当て許可または不許可を示す条件のもとで，前記抽出した空きインデックスの数と前記挿入されたデバイスに割当てるインデックスの数とを比較し，１または複数のプレフィックスにおける空きインデックスからインデックスを割当て，割当てたプレフィックスおよびインデックスの値を前記レジストリに書き込む手段とを備えることを特徴とする。
【００１６】
また，本発明は，上記通信ポート割当て装置において，さらに，デバイスが前記コンピュータから抜かれたときに，前記オペレーティングシステムからプラグアウト通知を受信し，前記プラグイン時に割当てたプレフィックスとインデックスのペアを前記レジストリから削除する手段を備えることを特徴とする。
【００１７】
以上の通信ポート割当て装置の処理機能は，コンピュータとソフトウェアプログラムとによって実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することも，ネットワークを通して提供することも可能である。
【発明の効果】
【００１８】
本発明によれば，デバイス使用（プラグイン）時にプレフィックスのインデックスがすべて割当てられていても，選択的に単一または複数のプレフィックスおよびインデックスを割当てることができるため，デバイスのプラグインの拒否を回避することが可能となる。
【００１９】
また，本発明によれば，デバイス未使用（プラグアウト）時にプレフィックスに割り当てられたインデックスを解放することができるため，インデックスの枯渇を回避することが可能となる。
【発明を実施するための最良の形態】
【００２０】
図１は，本発明の通信ポート割当て装置の構成を示す図である。図１において，１は通信ポート割当て装置，２はＷｉｎｄｏｗｓＣＥ等のＯＳである。通信ポート割当て装置１は，図８に示すクライアントドライバ２２内に設けられる。レジストリ３は，例えば，デバイス名，デバイス名と対応するデバイスドライバ名，プレフィックス名，インデックス名という要素からなるレジストリ情報を備えている。
【００２１】
通信ポート割当て装置１内において，１１はプラグイン処理部，１２はプレフィックス・インデックス割当て処理部，１２１は空きインデックス検索処理部，１３はインデックス数比較処理部，１４は記憶装置による蓄積部，１５はプラグアウト処理部，１６はプレフィックス・インデックス解放処理部である。蓄積部１４内において，１４１は空きインデックス格納テーブル，１４２は割当てインデックス格納テーブル，１４３は比較結果格納テーブルである。
【００２２】
プラグイン処理部１１は，デバイス２０がＷｉｎｄｏｗｓＣＥ等のＯＳ２を搭載した装置（例えばＰＤＡ等）に挿入されたときに，ＯＳ２からプラグイン通知を受信し，その後空きインデックス検索処理部１２１にプラグインイベントを通知する。
【００２３】
空きインデックス検索処理部１２１は，レジストリ３に登録されている特定プレフィックスのインデックスを検索し，空きインデックスを抽出する。その結果を空きインデックス格納テーブル１４１に格納する。また，プレフィックス・インデックス割当て処理部１２は，比較結果格納テーブル１４３の情報をもとにレジストリ３へのプレフィックスおよびインデックスの値の書き込みを行う。
【００２４】
インデックス数比較処理部１３は，割当てインデックス格納テーブル１４２と空きインデックス格納テーブル１４１の内容を比較し，その結果を比較結果格納テーブル１４３に格納する。この比較結果の比較結果格納テーブル１４３への格納については後述する。
【００２５】
割当てインデックス格納テーブル１４２は，図２のように，各プレフィックス毎の，インデックス数（Ｉｎｄｅｘ＿Ｎｕｍ），インデックス数が複数の場合の複数プレフィックス割当て許可または不許可を示すフラグ（Ａｃｒｏｓｓ：０（不許可）／１（許可）），割当てるプレフィックスの優先順位（Ｐｒｉｏｒｉｔｙ：小さい値ほど優先順位が高い）とが格納されたテーブルである。
【００２６】
例えば，図２（Ａ）に示す割当てインデックス格納テーブル１４２の場合，「ＣＯＭ」というプレフィックスのインデックス数は２で，Ａｃｒｏｓｓ値が「０」であることから，インデックスが複数の場合に複数プレフィックスは割当てできず，Ｐｒｉｏｒｉｔｙ値が「１」であることから一番優先順位が高いことがわかる。
【００２７】
また，「ＦＪＦ」というプレフィックスのインデックス数は２で，Ａｃｒｏｓｓ値が「１」であることから，インデックスが複数の場合に複数プレフィックスの割当てができ，Ｐｒｉｏｒｉｔｙ値が「２」であることから２番目に優先順位が高いことがわかる。
【００２８】
また，「ＦＪＨ」というプレフィックスのインデックス数は２で，Ａｃｒｏｓｓ値が「１」であることから，インデックスが複数の場合に複数プレフィックスの割当てができ，Ｐｒｉｏｒｉｔｙ値が「３」であることから一番優先順位が低いことがわかる。
【００２９】
空きインデックス格納テーブル１４１は，図３のように，各プレフィックスに対する１〜０までの計１０個のインデックスのうち，空きインデックス（割当て可能なインデックス）がどれであるかを示したテーブルである。図３に示す空きインデックス格納テーブル１４１において，「０」は占有されているインデックスを，「１」は空きインデックスを示す。
【００３０】
比較結果格納テーブル１４３は，割当てインデックス格納テーブル１４２と空きインデックス格納テーブル１４１の内容との比較結果が格納されたテーブルである。比較結果格納テーブルには，図４のように，各プレフィックスに対する１〜０までの計１０個のインデックスの占有状態（０：占有／１：空き）が示される。
【００３１】
プラグアウト処理部１５は，デバイス２０（ＵＳＢ／ＰＣカード等）がＷｉｎｄｏｗｓＣＥ等のＯＳ２が格納された装置（ＰＤＡ等）から抜かれたときに，ＯＳ２からプラグアウト通知を受信し，その後プレフィックス・インデックス解放処理部１６にプラグアウトイベントを通知する。
【００３２】
プレフィックス・インデックス解放処理部１６は，比較結果格納テーブル１４３の情報から，割当てられているプレフィックスとインデックスの１つのペアを取得し，取得されたプレフィックスとインデックスとをレジストリ３から削除する。
【００３３】
図５は本発明の処理フローの概要を示す図である。まず，デバイス２０のプラグイン処理を行う（ステップＳ１）。例えば，ＰＣカード，ＵＳＢ等のデバイス２０がＷｉｎｄｏｗｓＣＥ等のＯＳ２が搭載された装置（例えばＰＤＡ等）に挿入されると，ＯＳ２は下位ドライバ２１でデバイス２０を検出し，デバイス２０から必要な情報（例えばデバイスのＩＤ）を取得する。
【００３４】
ＯＳ２の下位ドライバ２１は，デバイス２０のＩＤを検索条件としてレジストリ情報を参照し，挿入されたデバイス２０に対応するドライバ名（クライアントドライバ２２）を呼び出す。具体的には，クライアントドライバ２２に含まれる本発明の通信ポート割当て装置１を呼び出す。次に，通信ポートを柔軟に割当てる。すなわち，通信ポート割当て装置１が選択的に単一または複数のプレフィックスとインデックスを割当て（ステップＳ２），デバイスを使用状態にする（ステップＳ３）。
【００３５】
また，ＯＳ２の下位ドライバ２１がデバイス２０のプラグアウトを検出すると（ステップＳ４），通信ポート割当て装置１が，割当てた通信ポートを解放する（ステップＳ５）。すなわち，レジストリ３から，割当てられているプレフィックスとインデックスのペアを削除する。
【００３６】
図６は，本発明の通信ポート割当て処理フローの一例を示す図である。まず，ＯＳ２からデバイス２０がプラグインされたことを示す通知をプラグイン処理部１１で受信する（ステップＳ１１）。プラグイン処理部１１は空きインデックス検索処理部１２１を起動する（ステップＳ１２）。空きインデックス検索処理部１２１は，全プレフィックスを抽出済かを判断する（ステップＳ１３）。全プレフィックスを抽出済の場合，ステップＳ１９へ進む。
【００３７】
抽出されていないプレフィックスがある場合には，空きインデックス検索処理部１２１は，割当てインデックス格納テーブル１４２のプレフィックス欄からプレフィックスを抽出し（ステップＳ１４），レジストリ３から該当するプレフィックスを検索する（ステップＳ１５）。次に，プレフィックスを発見したかを判断し（ステップＳ１６），プレフィックスを発見した場合にはインデックスの値を抽出し，空きインデックス検索処理部１２１は，空きインデックス格納テーブル１４１に結果を書き込む（ステップＳ１７）。
【００３８】
空きインデックス格納テーブル１４１には，例えば図３に示すように，各プレフィックスに対する１〜０までの計１０個のインデックスのうち，空きインデックス（割当て可能なインデックス）がどれであるかが書き込まれる。
【００３９】
図３の例の場合，例えば「ＣＯＭ」というプレフィックスの空きインデックスはインデックス番号＝０のインデックスであり，「ＦＪＦ」というプレフィックスの空きインデックスはインデックス番号が４〜０の７個のインデックスであり，「ＦＪＨ」というプレフィックスについては，インデックス番号が１〜０までの１０個のインデックスが空いていることがわかる。
【００４０】
次に，全レジストリ３を検索済かを判断し（ステップＳ１８），全レジストリ３を検索済の場合にはステップＳ１３に戻り，検索されていないレジストリ３がある場合にはステップＳ１５に戻る。
【００４１】
ステップＳ１３において全プレフィックスを抽出済の場合には，インデックス数比較処理部１３が起動し，割当てインデックス格納テーブル１４２を取得する（ステップＳ１９）。そして，未取得かつＰｒｉｏｒｉｔｙ値が小さいプレフィックスを取得し，該当プレフィックスのＡｃｒｏｓｓ値とＩｎｄｅｘ＿Ｎｕｍ値を取得する（ステップＳ２０）。
【００４２】
例えば，割当てインデックス格納テーブル１４２が，図２（Ａ）に示すような状態であったとすると，Ｐｒｉｏｒｉｔｙ値が最も小さい「ＣＯＭ」というプレフィックスが取得され，そのＡｃｒｏｓｓ値「０」とインデックス＿Ｎｕｍ値「２」が取得される。
【００４３】
次に，空きインデックス格納テーブル１４１から該当プレフィックスの空きインデックス数を取得し，Ｉｎｄｅｘ＿Ｎｕｍ値と空きインデックス数とを比較する（ステップＳ２１）。Ｉｎｄｅｘ＿Ｎｕｍ値より空きインデックス数が大きいかを判断し（ステップＳ２２），Ｉｎｄｅｘ＿Ｎｕｍ値より空きインデックス数が大きくない場合には，Ａｃｒｏｓｓ値が「１」（許可）かを判断する（ステップＳ２３）。
【００４４】
例えば，図２（Ａ）に示す割当てインデックス格納テーブル１４２から取得された「ＣＯＭ」のＩｎｄｅｘ＿Ｎｕｍ値「２」は，図３に示す「ＣＯＭ」の空きインデックス数「１」より大きいため，Ａｃｒｏｓｓ値が「１」（許可）かが判断される。
【００４５】
Ａｃｒｏｓｓ値が「１」（許可）でない場合には，全プレフィックスを取得済かを判断し（ステップＳ２４），取得されていないプレフィックスがある場合にはステップＳ２０に戻り，全プレフィックスを取得済の場合には，割当て不可の結果（０：占有）を比較結果格納テーブル１４３に書き込む（ステップＳ２５）。
【００４６】
例えば，図２（Ａ）に示す割当てインデックス格納テーブル１４２では，「ＣＯＭ」のＡｃｒｏｓｓ値は「０」であるため，ステップＳ２４へ進み，検索されていないプレフィックス（「ＦＪＦ」と「ＦＪＨ」）があることからステップＳ２０に戻り，「ＣＯＭ」の次にＰｒｉｏｒｉｔｙ値が小さい「ＦＪＦ」というプレフィックスが取得される。
【００４７】
ステップＳ２２において，Ｉｎｄｅｘ＿Ｎｕｍ値より空きインデックス数が大きい場合には，比較結果格納テーブル１４３の該当プレフィックスの空きインデックス番号が小さい順にＩｎｄｅｘ＿Ｎｕｍ値分「１」を代入し，その他は「０」を代入する（ステップＳ２６）。
【００４８】
例えば，図３の空きインデックス格納テーブル１４１に示すように，「ＦＪＦ」というプレフィックスの空きインデックス数は，インデックス番号が４〜０までの「７」であり，図２（Ａ）に示す割当てインデックス格納テーブル１４２において，「ＦＪＦ」というプレフィックスのＩｎｄｅｘ＿Ｎｕｍ値は「２」であることから，Ｉｎｄｅｘ＿Ｎｕｍ値より空きインデックス数が大きいと判断され，ステップＳ２６へ進む。
【００４９】
そして，例えば，「ＦＪＦ」というプレフィックスについての空きインデックスのうち，インデックス番号が小さい順に，比較結果格納テーブル１４３において，インデックス番号が４のインデックスとインデックス番号が５のインデックスに「１」が代入され，その他のインデックスには「０」が代入される。上記処理の結果，比較結果格納テーブル１４３には，例えば図４（Ａ）に示すような書き込みがなされる。
【００５０】
次に，プレフィックス・インデックス割当て処理部１２が比較結果格納テーブル１４３の「１」に該当するプレフィックスとインデックスをデバイス２０に該当するレジストリ３に書き込む（ステップＳ２７）。
【００５１】
ステップＳ２３においてＡｃｒｏｓｓ値が「１」（許可）の場合には，比較結果格納テーブル１４３の該当プレフィックスの空きインデックス番号が小さい順に（Ｉｎｄｅｘ＿Ｎｕｍ値−空きインデックス数）の個数分「１」を代入して（ステップＳ２８），ステップＳ２９に進む。
【００５２】
例えば，上記ステップＳ１９において図２（Ｂ）に示す割当てインデックス格納テーブル１４２が取得されたとすると，ステップＳ２０で取得される「ＣＯＭ」というプレフィックスのＡｃｒｏｓｓ値は「１」（許可）である。したがって，ステップＳ２８において，比較結果格納テーブル１４３には「ＣＯＭ」のインデックス番号＝０のインデックスに対して，（Ｉｎｄｅｘ＿Ｎｕｍ値−空きインデックス数）＝２−１＝１個分，「１」が代入される。
【００５３】
そして，（Ｉｎｄｅｘ＿Ｎｕｍ値−空きインデックス数）の値をＩｎｄｅｘ＿Ｎｕｍ値に代入して（ステップＳ２９），ステップＳ２０に戻る。上記の例では，（Ｉｎｄｅｘ＿Ｎｕｍ値−空きインデックス数）＝２−１＝１がＩｎｄｅｘ＿Ｎｕｍ値に代入される。
【００５４】
ステップＳ２０に戻った後に取得されるプレフィックス「ＦＪＦ」の空きインデックス数は，例えば図３の空きインデックス格納テーブル１４１に示すように「７」である。また，上記ステップＳ２９で代入されたＩｎｄｅｘ＿Ｎｕｍ値＝１であることから，Ｉｎｄｅｘ＿Ｎｕｍ値より空きインデックス数が大きい。したがって，ステップＳ２６に進み，比較結果格納テーブル１４３において，「ＦＪＦ」というプレフィックスについての空きインデックスのうち，インデックス番号が最も小さいインデックス番号＝４のインデックスに対して「１」を代入する。上記処理の結果，比較結果格納テーブル１４３には，例えば図４（Ｂ）に示すような書き込みがなされる。
【００５５】
図７は，本発明の通信ポート解放処理フローの一例を示す図である。まず，ＯＳ２からデバイス２０がプラグアウトされたことを示す通知をプラグアウト処理部１５で受信する（ステップＳ３１）。
【００５６】
プラグアウト処理部１５はプレフィックス・インデックス解放処理部１６を起動する（ステップＳ３２）。プレフィックス・インデックス解放処理部１６は，比較結果格納テーブル１４３から割当てられているプレフィックスとインデックスの１ペアを取得する（ステップＳ３３）。
【００５７】
プレフィックスとインデックスの１ペアを取得できたかを判断し（ステップＳ３４），プレフィックスとインデックスの１ペアを取得できない場合には処理を終了し，プレフィックスとインデックスの１ペアを取得できた場合には，プレフィックス・インデックス解放処理部１６はレジストリ３から該当するプレフィックスとインデックスを検索する（ステップＳ３５）。
【００５８】
該当のプレフィックスとインデックスを発見したかを判断し（ステップＳ３６），該当のプレフィックスとインデックスを発見しない場合にはステップＳ３３に戻り，該当のプレフィックスとインデックスを発見した場合には，プレフィックス・インデックス解放処理部１６は，レジストリ３からプレフィックスとインデックスの値を削除して（ステップＳ３７），ステップＳ３３に戻る。
【００５９】
以上の実施の形態では，オペレーティングシステムとしてＷｉｎｄｏｗｓＣＥを搭載した装置の例を説明したが，本発明は，ＷｉｎｄｏｗｓＣＥに限らず，同様なプレフィックスとインデックスの割当てを行うデバイスドライバを扱うＯＳであれば，同様に実施することが可能である。以上から把握できるように，本発明の実施の形態の特徴を述べると，以下のとおりである。
【００６０】
（付記１）  所定のオペレーティングシステムを搭載するコンピュータがデバイスにアクセスするためのデバイスドライバにおいてプレフィックスとインデックスとにより特定される通信ポートを割当てる通信ポート割当て装置であって，
デバイスが前記コンピュータに挿入されたときに，前記オペレーティングシステムからプラグイン通知を受信し，レジストリに登録されている特定プレフィックスごとのインデックスを検索して空きインデックスを抽出する手段と，
あらかじめ設定されたインデックス数が複数の場合の複数プレフィックス割当て許可または不許可を示す条件のもとで，前記抽出した空きインデックスの数と前記挿入されたデバイスに割当てるインデックスの数とを比較し，１または複数のプレフィックスにおける空きインデックスからインデックスを割当て，割当てたプレフィックスおよびインデックスの値を前記レジストリに書き込む手段とを備える
ことを特徴とする通信ポート割当て装置。
【００６１】
（付記２）  付記１に記載の通信ポート割当て装置において，さらに，
デバイスが前記コンピュータから抜かれたときに，前記オペレーティングシステムからプラグアウト通知を受信し，前記プラグイン時に割当てたプレフィックスとインデックスのペアを前記レジストリから削除する手段を備える
ことを特徴とする通信ポート割当て装置。
【００６２】
（付記３）  所定のオペレーティングシステムを搭載するコンピュータがデバイスにアクセスするためのデバイスドライバにおいてプレフィックスとインデックスとにより特定される通信ポートを割当てる通信ポート割当て装置であって，
デバイスが前記コンピュータに挿入されたときに，前記オペレーティングシステムからプラグイン通知を受信するプラグイン処理手段と，
前記プラグイン処理手段からプラグインイベントを受信し，レジストリに登録されている特定プレフィックスごとのインデックスを検索して空きインデックスを抽出し，抽出結果を空きインデックス格納テーブルに格納する空きインデックス検索処理手段と，
プレフィックス毎の，インデックス数とインデックス数が複数の場合の複数プレフィックス割当て許可または不許可を示すフラグとが格納された割当てインデックス格納テーブルの内容と，前記空きインデックス格納テーブルの内容とを比較して，比較結果の割当て可能なインデックス情報を比較結果格納テーブルに格納するインデックス数比較処理手段と，
前記比較結果格納テーブルの情報をもとに，前記レジストリへプレフィックスおよびインデックスの値の書き込みを行うプレフィックス・インデックス割当て処理手段とを備える
ことを特徴とする通信ポート割当て装置。
【００６３】
（付記４）  付記３に記載の通信ポート割当て装置において，さらに，
デバイスが前記コンピュータから抜かれたときに，前記オペレーティングシステムからプラグアウト通知を受信するプラグアウト処理手段と，
前記プラグアウト処理手段からプラグアウトイベントを受信し，前記比較結果格納テーブルの情報から割当てられているプレフィックスとインデックスのペアを取得し，取得したプレフィックスとインデックスとをレジストリから削除するプレフィックス・インデックス解放処理手段とを備える
ことを特徴とする通信ポート割当て装置。
【００６４】
（付記５）  所定のオペレーティングシステムを搭載するコンピュータがデバイスにアクセスするためのデバイスドライバにおいてプレフィックスとインデックスとにより特定される通信ポートを割当てる通信ポート割当て方法であって，
デバイスが前記コンピュータに挿入されたときに，前記オペレーティングシステムからプラグイン通知を受信し，レジストリに登録されている特定プレフィックスごとのインデックスを検索して空きインデックスを抽出するステップと，
あらかじめ設定されたインデックス数が複数の場合の複数プレフィックス割当て許可または不許可を示す条件のもとで，前記抽出した空きインデックスの数と前記挿入されたデバイスに割当てるインデックスの数とを比較し，１または複数のプレフィックスにおける空きインデックスからインデックスを割当て，割当てたプレフィックスおよびインデックスの値を前記レジストリに書き込むステップとを有する
ことを特徴とする通信ポート割当て方法。
【００６５】
（付記６）  付記５に記載の通信ポート割当て方法において，さらに，
デバイスが前記コンピュータから抜かれたときに，前記オペレーティングシステムからプラグアウト通知を受信し，前記プラグイン時に割当てたプレフィックスとインデックスのペアを前記レジストリから削除するステップとを有する
ことを特徴とする通信ポート割当て方法。
【００６６】
（付記７）  所定のオペレーティングシステムを搭載するコンピュータがデバイスにアクセスするためのデバイスドライバにおいてプレフィックスとインデックスとにより特定される通信ポートを割当てる通信ポート割当て方法を，コンピュータに実行させるための通信ポート割当てプログラムであって，
デバイスが前記コンピュータに挿入されたときに，前記オペレーティングシステムからプラグイン通知を受信するプラグイン処理ステップと，
前記プラグイン通知の受信により，レジストリに登録されている特定プレフィックスごとのインデックスを検索して空きインデックスを抽出し，抽出結果を空きインデックス格納テーブルに格納する空きインデックス検索処理ステップと，
プレフィックス毎の，インデックス数とインデックス数が複数の場合の複数プレフィックス割当て許可または不許可を示すフラグとが格納された割当てインデックス格納テーブルの内容と，前記空きインデックス格納テーブルの内容とを比較して，比較結果の割当て可能なインデックス情報を比較結果格納テーブルに格納するインデックス数比較処理ステップと，
前記比較結果格納テーブルの情報をもとに，前記レジストリへプレフィックスおよびインデックスの値の書き込みを行うプレフィックス・インデックス割当て処理ステップとを，
コンピュータに実行させるための通信ポート割当てプログラム。
【００６７】
（付記８）  付記７に記載の通信ポート割当てプログラムにおいて，さらに，
デバイスが前記コンピュータから抜かれたときに，前記オペレーティングシステムからプラグアウト通知を受信するプラグアウト処理ステップと，
前記プラグアウト通知の受信により，前記比較結果格納テーブルの情報から割当てられているプレフィックスとインデックスのペアを取得し，取得したプレフィックスとインデックスとをレジストリから削除するプレフィックス・インデックス解放処理ステップとを，
コンピュータに実行させるためのプログラムを含む通信ポート割当てプログラム。
【図面の簡単な説明】
【００６８】
【図１】本発明の通信ポート割当て装置の構成を示す図である。
【図２】割当てインデックス格納テーブルの一例を示す図である。
【図３】空きインデックス格納テーブルの一例を示す図である。
【図４】比較結果格納テーブルの一例を示す図である。
【図５】本発明の処理フローの概要を示す図である。
【図６】本発明の通信ポート割当て処理フローの一例を示す図である。
【図７】本発明の通信ポート解放処理フローの一例を示す図である。
【図８】ＷｉｎｄｏｗｓＣＥのドライバスタックチャートを示す図である。
【符号の説明】
【００６９】
１  通信ポート割当て装置
２  オペレーティングシステム（ＯＳ）
３  レジストリ
１１  プラグイン処理部
１２  プレフィックス・インデックス割当て処理部
１３  インデックス数比較処理部
１４  蓄積部
１５  プラグアウト処理部
１６  プレフィックス・インデックス解放処理部
２０  デバイス
２１  下位ドライバ
２２  クライアントドライバ
２３  ＴＡＰＩ
２４  ダイヤルアップアプリケーション
２５  一般的なアプリケーション
１２１  空きインデックス検索処理部
１４１  空きインデックス格納テーブル
１４２  割当てインデックス格納テーブル
１４３  比較結果格納テーブル
【図１】
2005165581.tif 000003
【図２】
2005165581.tif 000004
【図３】
2005165581.tif 000005
【図４】
2005165581.tif 000006
【図５】
2005165581.tif 000007
【図６】
2005165581.tif 000008
【図７】
2005165581.tif 000009
【図８】
2005165581.tif 000010