(57)【特許請求の範囲】
【請求項１】
計算デバイスであって、
インフラストラクチャ・ベースのネットワークとピア・ツー・ピア・グループへ前記計算デバイスを同時に接続するように構成された無線装置と、
オペレーティング・システムと、
それぞれ命令を格納し実行するメモリーとプロセッサーであって、前記命令が、少なくとも、
ドライバーであって、該ドライバーと前記オペレーティング・システムとの間のインターフェースとして該ドライバー内に複数のポートを提供するように構成されたドライバーであって、前記複数のポートが、
前記オペレーティング・システムと前記インフラストラクチャ・ベースのネットワークとの間のインフラストラクチャ・モード接続を可能にするように構成されたインフラストラクチャ・モード・ポートであって、前記インフラストラクチャ・ベースのネットワークが、特定のワイヤレス仕様の周波数範囲で動作する、インフラストラクチャ・モード・ポートと、
前記ピア・ツー・ピア・グループへのピア・ツー・ピア接続を、前記特定のワイヤレス仕様の前記周波数範囲における通信を介して確立するように構成された制御ポートと、
前記オペレーティング・システムと前記ピア・ツー・ピア・グループとの間のインターフェースを提供するように構成されたピア・ツー・ピア通信ポートであって、前記ピア・ツー・ピア・グループが、前記特定のワイヤレス仕様の前記周波数範囲で動作する、ピア・ツー・ピア通信ポートと、
を含む、ドライバーと、
に組織された、メモリーとプロセッサーと、
を含み、
前記オペレーティング・システムが、前記制御ポートを介して前記ピア・ツー・ピア接続を確立し、前記ピア・ツー・ピア通信ポートを介して前記ピア・ツー・ピア・グループと通信するように、前記複数のポートを介して前記ドライバーと対話するように構成された、計算デバイス。
【請求項２】
請求項１に記載の計算デバイスであって、前記オペレーティング・システムは、更に、前記ピア・ツー・ピア接続を介して前記計算デバイスと結合されたディスプレイ・デバイスのオーディオ／ビデオ特性を制御するコマンドを、前記制御ポートを通じて送信するように構成される、計算デバイス。
【請求項３】
請求項１に記載の計算デバイスであって、
前記ドライバーは、
メディア・アクセス・コントロール（ＭＡＣ）アドレスと前記制御ポートとを関連付けることにより前記制御ポートを提供し、
前記無線装置に、前記制御ポートの前記ＭＡＣアドレスと関連する制御フレームを送信させる、
ように構成された、計算デバイス。
【請求項４】
請求項３に記載の計算デバイスであって、
前記制御フレームは、パブリック・アクション・フレームおよびサービス発見フレームを含む、
計算デバイス。
【請求項５】
請求項４に記載の計算デバイスであって、
前記オペレーティング・システムは、更に、前記ドライバー内における前記ピア・ツー・ピア通信ポートの作成を要求するコマンドを前記ドライバーへ送信するように構成された、
計算デバイス。
【請求項６】
計算デバイスを動作させる方法であって、前記計算デバイスが、該計算デバイスにおいてドライバー・ソフトウェアにより制御されるワイヤレス無線装置を有し、前記方法が、少なくとも１つのプロセッサーにより、
前記ドライバー・ソフトウェアと前記計算デバイスにおける他のソフトウェア要素との間に制御ポートを提供するコマンドを前記ソフトウェア・ドライバーへ提供し、前記制御ポートを介してピア・ツー・ピア・デバイスへの第１のワイヤレス接続が確立され、
前記ドライバー・ソフトウェアに少なくとも１つのコマンドを前記制御ポートを介して送信し、前記少なくとも１つのコマンドが、前記ドライバー・ソフトウェアが前記ワイヤレス無線装置を命令してアクション・フレームを送信させるための要求であり、
前記少なくとも１つのコマンドのうちの１以上のコマンドに対する前記ドライバー・ソフトウェアからの応答を、前記制御ポートを通じて受信し、
前記少なくとも１つのコマンドのうちの前記１以上のコマンドに対する前記応答に基づいて、少なくとも１つのリモート・デバイスとの前記第１のワイヤレス接続を確立するために、前記第１のワイヤレス接続における前記計算デバイスの役割を決定し、
少なくとも１つの他のコマンドを前記ドライバー・ソフトウェアへ提供し、前記少なくとも１つの他のコマンドが、前記ドライバー・ソフトウェアが、該ドライバー・ソフトウェアと前記計算デバイスにおける前記他のソフトウェア要素との間にピア・ツー・ピア通信ポートを提供し、前記第１のワイヤレス接続における前記計算デバイスの決定された前記役割のために前記ピア・ツー・ピア通信ポートを構成するための要求であり、
前記ピア・ツー・ピア通信ポートを通じてかつワイヤレス仕様の周波数範囲における１つ以上の周波数でのワイヤレス通信を介して、前記少なくとも１つのリモート・デバイスとデータ・パケットを交換し、
前記ドライバー・ソフトウェアと前記計算デバイスにおける前記他のソフトウェア要素との間のインフラストラクチャ・モード・ポートを通じて前記ドライバー・ソフトウェアと対話し、該対話が、アクセス・ポイントと第２のワイヤレス接続を形成すること、前記ワイヤレス仕様の前記周波数範囲における１つ以上の他の周波数を介して前記アクセス・ポイントと通信すること、を含む、
ことを含む方法。
【請求項７】
請求項６に記載の方法であって、
前記少なくとも１つのリモート・デバイスはディスプレイ・デバイスを含み、
前記データ・パケットはオーディオ／ビデオ・コンテンツを含み、
前記方法は更に、前記ディスプレイ・デバイスでの前記オーディオ／ビデオ・コンテンツの提示における少なくとも１つのオーディオ／ビデオ特性を制御するため、コマンドを前記制御ポートを通じて送信することを含む、
方法。
【請求項８】
請求項６に記載の方法であって、
前記計算デバイスの役割を決定することは、グループ・オーナーまたはクライアントの役割を選択することを含む、
方法。
【請求項９】
請求項７に記載の方法であって、
前記ドライバー・ソフトウェアは、前記計算デバイスのオペレーティング・システムへ前記ワイヤレス無線装置をインターフェースし、
前記計算デバイスにおける前記他のソフトウェア要素は、前記計算デバイスの前記オペレーティング・システムであり、
前記第１ワイヤレス接続と前記第２ワイヤレス接続とは、前記ドライバー・ソフトウェアにより前記ワイヤレス無線装置を介して同時に維持される、
方法。
【請求項１０】
請求項７に記載の方法であって、前記方法は更に、
前記計算デバイスの前記他のソフトウェア要素が、前記制御ポートを通じて前記ドライバー・ソフトウェアと対話して、一組のピア・ツー・ピア・リモート・デバイスとの第３ワイヤレス接続を確立し、前記第３ワイヤレス接続における前記計算デバイスの役割を決定し、
前記計算デバイスの前記他のソフトウェア要素が、前記ドライバー・ソフトウェアへ少なくとも１つの追加コマンドを提供し、該少なくとも１つの追加コマンドが、前記ドライバー・ソフトウェアが、第２のピア・ツー・ピア通信ポートを提供し、前記第３のワイヤレス接続における前記計算デバイスの決定された前記役割のために前記第２のピア・ツー・ピア通信ポートを構成するための要求を含み、
前記第２のピア・ツー・ピア通信ポートを通じて前記一組のピア・ツー・ピア・リモート・デバイスとデータ・パケットを交換する
ことを含む方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  現在の多くのコンピューターは、ワイヤレス通信をサポートするために無線装置（radio）を有する。ワイヤレス通信は、例えば、ネットワークのアクセス・ポイントへ接続するために用いられる。ワイヤレス・コンピュータは、アクセス・ポイントと結合することにより、そのネットワーク、例えば、インターネットなどのようなネットワーク上のデバイスや、そのネットワークを通じて到達可能な他のネットワークへ、アクセスすることができる。その結果として、ワイヤレス・コンピュータは、多くの他のデバイスとデーターを交換することができ、多くの有用な機能が使用可能となる。
【０００２】
[0002]  コンピューターをアクセス・ポイントと結合するように構成できるように、通常、アクセス・ポイントは、標準に従って動作させられる。アクセス・ポイントへ接続するデバイスのための一般的な１つの標準は、Ｗｉ−Ｆｉ（ワイファイ）と呼ばれるものである。この標準は、Ｗｉ−Ｆｉアライアンスにより公表されたものであり、ポータブル・コンピュータで広く用いられている。この標準には複数のバージョンがあるが、何れのものも、アクセス・ポイントを通じての接続をサポートするために用いることができる。
【０００３】
[0003]  また、ワイヤレス通信は、アクセス・ポイントを用いずに他のデバイスへ直接に接続するために、用いることができる。そのような接続は、「ピア・ツー・ピア」接続と呼ばれることもあり、例えば、コンピューターがマウスやキーボードへワイヤレスで接続することを可能にするために用いられる。それらの直接接続のためのワイヤレス通信も、標準化されている。そのようなワイヤレス通信の一般的な１つの標準は、ＢＬＵＥＴＯＯＴＨ（登録商標）（ブルートゥース）と呼ばれるものである。
【０００４】
[0004]  幾つかの場合、ワイヤレス・コンピュータは、アクセス・ポイントを介してや、ピア・ツー・ピア接続で連動するグループの一部として、他の複数のデバイスへ同時に接続する。このような同時の接続をサポートするために、複数の無線装置を有するコンピューターもある。最近では、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（ワイファイ・ダイレクト）と呼ばれる標準が提案されており、この標準は、インフラストラクチャ接続とピア・ツー・ピア・グループの一部としての通信との双方を、１つの無線装置で処理できる類似のワイヤレス通信を用いて、可能とする。この標準もＷｉ−Ｆｉアライアンスにより発表されたものであり、インフラストラクチャ・ベースの通信のための普及したＷｉ−Ｆｉ接続標準を、直接接続をサポートするように拡張する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
[0005]  ワイヤレス計算デバイスが他のワイヤレス・デバイスへ結合できるというシナリオを拡張するために、直接接続をサポートする構成を計算デバイスに装備することが期待される。例えば、共に働くコンピュータ・ユーザは、特別のインフラストラクチャを必要とせずにユーザー間でデーターを共有することを可能にするために、グループを容易に形成することができる。同様に、コンピューターは、プリンターや他の望まれるサービスを提供するデバイスへ、容易にワイヤレスで接続することができる。
【課題を解決するための手段】
【０００６】
[0006]  ワイヤレス計算デバイスは、構成設定可能なポートをサポートする無線装置ドライバーを提供することにより、インフラストラクチャ・モードでのワイヤレス通信とピア・ツー・ピア・モードでのワイヤレス通信との双方をサポートするように、簡単に実施および制御される。それらのポートは、インフラストラクチャ・モードで動作するように、動的に構成設定されるポートであり得る。代替的または追加的に、ポートは、ピア・ツー・ピア通信をサポートするように構成設定されることもできる。
【０００７】
[0007]  ピア・ツー・ピア通信をサポートするポートは、制御ポートおよび１以上の通信ポートを含む。制御ポートは、パブリック・アクション・フレーム（public action frame）やサービス発見（service discovery）フレームなどのような制御フレームの送信および受信に使用される。これらの制御フレームの交換は、オペレーティング・システムの制御の下で行われ、その結果として、ドライバーは、ピア・ツー・ピア通信のために、ワイヤレス計算デバイスを含むデバイスのグループを確立する。グループを確立する処理の一部として、グループ内のワイヤレス計算デバイスの役割に関しては、グループ内の他のデバイスとネゴシエーションが行われる。制御ポートは、これらの機能が行われるように、制御フレームの送信および受信をサポートする。
【０００８】
[0008]  グループが確立されると、グループ内のデバイス間での通信のために構成設定された第２のポートが使用される。そのポートは、ワイヤレス計算デバイスに対してネゴシエーションで決められた役割に基づいて構成設定される。デバイスは、例えば、グループ・オーナーとして動作するか、またはピア・ツー・ピア・グループのクライアントとして動作することができる。
【０００９】
[0009]  ドライバーが複数のピア・ツー・ピア通信ポートをサポートして、ワイヤレス計算デバイスを、幾つかのグループのクライアントとして構成設定し、グループ・オーナーが他のグループにあるように構成設定することもできる。それぞれのポートは、１以上のグループ内のデバイス間での通信をサポートするように構成設定できる。その結果として、ワイヤレス計算デバイスは、複数のグループに参加し、それぞれのグループで同じ役割または異なる役割を持つようにされる。
【００１０】
[0010]  更に、１以上のポートを、インフラストラクチャ・モードで通信するように構成設定することもできる。その結果として、ワイヤレス計算デバイスは、複数のグループとの同時の通信をサポートすることに加えて、インフラストラクチャ・モードおよびピア・ツー・ピア・モードでの同時の通信をサポートすることができ、多くのシナリオに対してデバイスを柔軟に構成設定することを可能とする。
【００１１】
[0011]  ポートは、指定された機能のために構成設定することができるが、更に、ポートは、指定された機能と他の機能とが矛盾しない場合、他の機能のために使用することもできる。一例として、ピア・ツー・ピア・グループを確立する際に使用されるフレームを送信および受信するために構成設定された制御ポートは、そのグループを確立した後に、グループ内の１以上のデバイスを制御するためのサイド・チャンネルとして使用することができる。デバイスを制御するコマンドは、そのデバイスへの接続を介して、データ・フレームとは別に送信される。特定の例として、制御ポートは、計算デバイスと、ディスプレイ・デバイス、例えば、ワイヤレス・ネットワーク接続の構成を備えるテレビジョンとを含むグループを確立するために、使用される。接続が確立されると、計算デバイスは、制御ポートを通じて、ディスプレイ・デバイスのオーディオ／ビデオ特性を制御するためのコマンドを送信する。このようにして、計算デバイスは、ディスプレイ・デバイスとのピア・ツー・ピア通信のために構成設定されたポートを通じて、オーディオ／ビデオ・コンテンツをデーターとしてストリームで送ることができ、計算デバイスとは別にリモート・コントロールとして働いて、ディスプレイの可聴特性や視覚特性を変更することができる。
【００１２】
[0012]  このワイヤレス計算デバイスは、サポートされる通信のモードおよびモードの組み合わせに関する柔軟性を有するものでありながら、比較的少数のコマンドにより簡単に制御できる。
【００１３】
[0013]  前記の事項は、特許請求の範囲に記載した本発明の概要であり、この概要は本発明を限定するものではない。
[0014]  添付の図面は正確な尺度を考慮したものではない。様々な図面に示されているコンポーネントのうちの同じまたは類似のコンポーネントに関しては、同じ参照番号が付されている。図面を明瞭にするために、全ての図面において全てのコンポーネントへのラベル付けは行っていない。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施形態を実施できる例示的な環境を示す。
【図２】図２は、ワイヤレス通信に適用される例示的な計算デバイスの高レベル・ブロック図である。
【図３】図３は、ワイヤレス通信に適用される例示的な計算デバイスの、より詳細なブロック図である。
【図４】図４は、ピア・ツー・ピア・ワイヤレス通信のための制御ポートを確立するための例示的なプロセスのフローチャートである。
【図５】図５は、幾つかの実施形態に従ったピア・ツー・ピア接続を確立するための例示的なプロセスのフローチャートである。
【図６】図６は、ピア・ツー・ピア・ワイヤレス接続を介してデータ・フレームを送信または受信するための例示的なプロセスのフローチャートである。
【図７】図７は、サイド・チャンネルを実施するために制御ポートを使用しているときにデータ・フレームを送信するための例示的なプロセスのフローチャートである。
【図８】図８は、サイド・チャンネル通信を使用できる例示的な環境を示す。
【図９】図９は、計算デバイスの概略図であり、本発明の実施形態を実施できる例示的な環境を示す。
【発明を実施するための形態】
【００１５】
[0024]  発明者は、ピア・ツー・ピア・グループのデバイスとの直接接続およびインフラストラクチャ・モードでの通信をサポートするための簡素でありながらも柔軟性のある制御機構が、直接通信の有用性および有効性を大きく拡張するであろうことを、認識および理解した。そのような能力は、従来のインフラストラクチャ・モード通信に加えて直接モード通信をサポートする計算デバイスの普及を拡大する。更に、同じ無線装置を同時に制御する構成を提供することにより、複数の通信モードをサポートするために個別の無線装置にかける費用を削減できる。
【００１６】
[0025]  幾つかの実施形態によると、そのような機能は、ワイヤレス計算デバイスにおける無線装置のためのドライバー内で実現できる。無線装置は、複数のメディア・アクセス・コントロール（ＭＡＣ）アドレスを認識することができる。ドライバーは、無線装置と対話し、無線装置により使用されるＭＡＣアドレスとそれぞれに関連する複数のポートを準備させる。それぞれのポートは、インフラストラクチャ・モード、またはピア・ツー・ピア・グループのデバイスとの直接通信のモードで動作するように構成設定される。
【００１７】
[0026]  ピア・ツー・ピア・グループのデバイスとの直接通信のために構成設定されたポートのうち、１つのポートは制御ポートとして構成設定される。制御ポートは、グループのデバイスとの直接接続を確立する制御フレームの送信および受信に使用される。また、制御ポートを通じての通信は、グループ内のワイヤレス計算デバイスの役割を確立する。
【００１８】
[0027]  １以上の他のポートを、ピア・ツー・ピア・グループのデバイスとの直接通信をサポートするために使用することもできる。それらのポートは、グループ内のワイヤレス計算デバイスの特定の役割をサポートするように構成設定される。そのようなポートは、例えば、グループ・オーナーまたはクライアントとしての役割をサポートするように構成設定される。このようにして、ワイヤレス計算デバイスは、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ標準に従ってグループ・オーナー・ネゴシエーションに参加することができ、そのネゴシエーションの結果がどうであれ、そのネゴシエーションにおいて決まった役割で動作する。
【００１９】
[0028]  それぞれのポートの構成設定は、ポートの構成設定に適切なフレームを送信および受信するための命令を含むドライバー内の活性化ソフトウェア（activating software）に基づくことができる。なお、フレームの処理は、ドライバーとオペレーティング・システムとで分離することができ、オペレーティング・システムがポートを通じての通信についてのステータス情報を保持するようにできる。従って、ドライバーは、ステータス情報を必要としないフレームに応答することができ、例えば、受信したメッセージに応じてアクノレッジメントを発行することにより応答することができる。他のフレームはオペレーティング・システムへ渡され得る。
【００２０】
[0029]  オペレーティング・システムとドライバーとの間での対話は、標準のドライバ・インターフェースを通じて行われる。そのインターフェースは、幾つかの実施においてＯＩＤＳと呼ばれる一組のコマンドをサポートする。少数の追加のコマンドを使用して、グループ内のワイヤレス・デバイス間での直接通信のためのポートを提供するためのドライバーの構成設定をサポートすることができる。追加のコマンドは、ドライバーを制御して、ポートが構成設定されるようにし、そのポートが制御ポートとして働くように、またはグループ内の役割のうちの１つを引き受けるようにする。また、コマンドは、オペレーティング・システムが、ドライバーに対して、割り当てられた役割として適切な機能を行うことを命令することを、可能にする。例えば、ポートが、制御ポートとして構成設定された場合、そのポートは、デバイスおよびサービスを見つけること、グループを形成するために他のデバイスとフレームを交換すること、およびグループ内のワイヤレス計算デバイスの役割についてネゴシエーションすることを、命令される。
【００２１】
[0030]  幾つかの実施形態では、ドライバーは、追加のコマンドを認識するように構成設定され、そのコマンドには、インフラストラクチャ接続やピア・ツー・ピア接続を確立することにも、それらを介して通信することにも関連していないサイド・チャンネル通信を行わせるコマンドが含まれる。一例として、ドライバーは、ピア・ツー・ピア接続と直接に関連しない、ピア・ツー・ピア・グループのデバイスの幾つかの特徴を制御するものとして認識されるフレームを送信するように、構成設定される。
【００２２】
[0031]  より特定的な例として、ワイヤレス計算デバイスにおける直接接続は、計算デバイスから近くのディスプレイ・デバイスへ、オーディオ／ビデオ情報を送信するために使用される。そのようなオーディオ／ビデオ情報は音楽のようなオーディオ情報であり、ディスプレイ・デバイスはステレオ・スピーカーである場合もある。サイド・チャンネルの情報は、スピーカーを通じて再生される音楽の音量や音色や他のオーディオ特性を制御するために使用される。代替例として、オーディオ／ビデオ・コンテンツは画像であり、ディスプレイ・デバイスはプロジェクターである場合もある。サイド・チャンネルの情報は、プロジェクターで提示される画像の明るさや他のビデオ特性を制御するために使用される。更に別の例として、オーディオ／ビデオ・コンテンツはムービーであり、ディスプレイ・デバイスはテレビジョンである場合もある。サイド・チャンネルの情報は、テレビジョンで再生されるムービーの明るさや他のビデオ特性や、ムービーの音量や他のオーディオ特性を制御するために使用される。
【００２３】
[0032]  前記の通信技術は、適切な環境において単独でまたは任意の適切な組み合わせで用いることができる。図１は、幾つかの実施形態に従って計算デバイスが通信する環境を示す。
【００２４】
[0033]  図１の例では、計算デバイス１１０は、ラップトップ・コンピュータとして示されている。なお、計算デバイス１１０のフォームファクタは、本発明に限定を加えるものではないことを理解すべきである。タブレットや、スマートフォンや、他の適切な形態のデバイスも、本発明の実施形態に従って構成設定されて動作することができる。
【００２５】
[0034]  図１は、計算デバイス１１０がユーザー１１２により制御されているところを示す。ユーザー１１２は、当該技術分野で知られた技術を用いて計算デバイス１１０と対話して、計算デバイス１１０が他のデバイスとワイヤレスで接続するように制御する。この例では、計算デバイス１１０は、アクセス・ポイント１２０を通じてのネットワーク１２４へのワイヤレス接続を有する。ネットワーク１２４は、ホーム・ネットワーク、エンタープライズ・ネットワーク、インターネット、または他の任意の適切なネットワークである。アクセス・ポイント１２０を通じてのワイヤレス接続１２２は、インフラストラクチャ型の接続の例である。ワイヤレス接続１２２を形成するために任意の適切な技術を使用でき、その技術には、既知のインフラストラクチャ型のプロトコルを用いる技術が含まれる。一例として、ワイヤレス接続１２２は、Ｗｉ−Ｆｉと呼ばれることもあるプロトコルを用いて形成できる。なお、使用されるプロトコルは、本発明の重要事項ではない。
【００２６】
[0035]  ここで示した例では、計算デバイス１１０は、ワイヤレス接続１２２におけるステーションの役割を有する。計算デバイス１１０の役割は、アクセス・ポイント１２０と情報を交換するために計算デバイス１１０により行われるワイヤレス・プロトコルの特定のステップを示す。
【００２７】
[0036]  図１はまた、他のワイヤレス接続を示す。計算デバイス１１０は、カメラ１３０およびプリンター１３４へのそれぞれの接続１３２および接続１３６を有するものとして示されている。この例では、カメラ１３０およびプリンター１３４は、計算デバイス１１０がデーターを交換するために接続するワイヤレス・デバイスの例である。
【００２８】
[0037]  この例では、カメラ１３０、プリンター１３４、および計算デバイス１１０は、ピア・ツー・ピア・プロトコルを用いてワイヤレス接続１３２および１３６を介して通信する。この例では、カメラ１３０、プリンター１３４、および計算デバイス１１０は、ピア・ツー・ピア・プロトコルに従ってグループを形成する。なお、代替例では、計算デバイス１１０は、カメラ１３０と第１グループを形成し、プリンター１３４と第２グループを形成する。
【００２９】
[0038]  ワイヤレス接続１３２および１３６は、任意の適切なピア・ツー・ピア・プロトコルに従って計算できる。この例では、接続１３２および１３６は、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔと呼ばれるＷｉ−Ｆｉプロトコルの拡張版を用いて形成される。
【００３０】
[0039]  図２は、ワイヤレス接続１２２（図１）などのようなインフラストラクチャ・モードのワイヤレス接続と、接続１３２および１３６（図１）などのようなピア・ツー・ピアのワイヤレス接続とを形成するように動作する計算デバイス２１０のアーキテクチャを、高レベルで示す。図１の例では、計算デバイス２１０は、２つの無線装置、無線装置２５０および無線装置２５４を含む。それぞれの無線装置は、ワイヤレス通信で送信および受信を行うように適用される。例えば、無線装置２５０は、ワイヤレス接続１２２を形成するために使用される。例えば、無線装置２５４は、ピア・ツー・ピア接続１３２および１３６を形成するために使用される。
【００３１】
[0040]  この例では、無線装置２５０は、メディア・アクセス・コントロール（ＭＡＣ）アドレス２５２を有する。ＭＡＣアドレスは、無線装置２５０と関連する一意の識別子であり、無線装置２５０を、無線装置２５４や、計算デバイス２１０が通信し得る他のデバイスと区別するために、使用される。従って、ＭＡＣアドレス２５２は、無線装置２５０により送信されるパケットに含められて、そのフレームが無線装置２５０により送信されたことを示す。また、ＭＡＣアドレス２５２は、無線装置２５０へ送信されるパケットに含められて、そのフレームが無線装置２５０に対するものであることを示す。
【００３２】
[0041]  ＭＡＣアドレス２５２は、任意の適切な方法で無線装置２５０へ割り当てることができる。例えば、ＭＡＣアドレス２５２は、無線装置２５０の製造者により割り当てられる。なお、幾つかの実施形態では、ＭＡＣアドレス２５２は、計算デバイス２１０のオペレーティング・システム２３０または他のコンポーネントにより割り当てられるか、または計算デバイス２１０が動作しているシステム内の何れかのコンポーネントにより割り当てられる。
【００３３】
[0042]  無線装置２５０は、図２ではドライバー２４０として表されているソフトウェアを通じて、制御される。ここでは、ドライバー２４０はインターフェース２４２を含み、このインターフェース２４２を通じて、オペレーティング・システム２３０はドライバー２４０へ向けてコマンドを発行し、ドライバー２４０は、オペレーティング・システム２３０へステータスを報告し受信したデーターを通知する。インターフェース２４２は、既知の標準に従った方法を含む任意の適切な方法で実施できる。既知の標準の例には、ＮＤＩＳと呼ばれるものがあるが、そのような標準は本発明の重要事項ではない。
【００３４】
[0043]  インターフェース２４２は、無線装置２５０の構成に依存しないフォーマットの複数のコマンドをサポートする。ドライバー２４０は、インターフェース２４２の標準フォーマットのコマンドを、無線装置２５０へ印加される特定の制御信号へと変換する。更に、ドライバー２４０は、ワイヤレス接続と関連する特定の低レベル機能を行うように、プログラムされる。例えば、パケットを受信すると、ドライバー２４０は、パケットが適正にフォーマットされているかを検査する。パケットが適正にフォーマットされている場合、ドライバー２４０は無線装置２５０を制御してアクノレッジメントを生成させる。逆に、パケットが適正にフォーマットされていない場合、ドライバー２４０は無線装置２５０を制御してネガティブ・アクノレッジメントを送信させる。
【００３５】
[0044]  なお、ドライバー２４０、そして幾つかの場合には無線装置２５０は、ワイヤレス接続の確立および維持と関連する低レベル機能を自動的に行うが、オペレーティング・システム２３０またはアプリケーション２２０の制御の下で高レベル機能を行うこともできる。幾つかの実施形態では、アプリケーション２２０またはオペレーティング・システム２３０はユーザ・インターフェースを提供し、ワイヤレス通信の最終的な制御が計算デバイス２１０のユーザーにより行われるようにする。
【００３６】
[0045]  図２に示す実施形態では、計算デバイス２１０は無線装置２５４も含む。例えば、インフラストラクチャ・ネットワークへの接続のために無線装置２５０が使用されている時、無線装置２５４は、接続１３２および１３６などのような１以上のピア・ツー・ピア接続を形成するために使用される。
【００３７】
[0046]  無線装置２５４は、一般に無線装置２５０と同じアーキテクチャであり、計算デバイス２１０へ組み込まれる。無線装置２５４はドライバー２４４と関連し、ドライバー２４４は、オペレーティング・システム２３０が無線装置２５４を動作させるための機構を提供する。ドライバー２４４はインターフェース２４６を有し、インターフェース２４６を通じて、オペレーティング・システム２３０はドライバー２４４へコマンドを送信し、ドライバー２４４はオペレーティング・システム２３０へステータスを提供する。インターフェース２４６は、インターフェース２４２と同様に標準のインターフェースであり、オペレーティング・システム２３０は、ドライバー２４０の制御に使用される一組のコマンドと同様のコマンドを用いて、ドライバー２４４と通信する。なお、無線装置２５４はピア・ツー・ピア接続を実施するために使用されるので、ドライバー２４４は、インフラストラクチャ・ベースの通信では存在しないピア・ツー・ピア通信と関連する機能を実施するために、ドライバー２４０に対するコマンドとは異なるコマンドや追加のコマンドに応答する。
【００３８】
[0047]  無線装置２５０と無線装置２５４との更なる差異として、無線装置２５４が複数のＭＡＣアドレスを有することが示されている。それに対して、無線装置２５０は１つのＭＡＣアドレス２５２のみを含む。ここでは、ＭＡＣアドレス２５６Ａ、２５６Ｂ、および２５６Ｃが示されている。複数のＭＡＣアドレスは、例えば、無線装置２５４の製造者により割り当てることも、任意の適切な方法で割り当てることもでき、任意の適切な方法には、ＭＡＣアドレス２５２と関連して説明した方法も含まれる。
【００３９】
[0048]  複数のＭＡＣアドレスを有することにより、無線装置２５４は、計算デバイス２１０の外部のデバイスからは、それぞれに個別のＭＡＣアドレスを有する複数のエンティティとして見えるようにされる。一例として、計算デバイス２１０が、第１ピア・ツー・ピア・グループのグループ・オーナーとして、および第２ピア・ツー・ピア・グループのクライアントとして、個別に通信を行っている場合、グループ・オーナーとクライアントとに対して個別にエンティティが確立される。計算デバイス２１０の外部のデバイスは、パケットが第１グループのグループ・オーナーとしての計算デバイス２１０により処理されること意図して、第１ＭＡＣアドレスを用いてパケットをアドレス指定する。第２グループのクライアントとしての計算デバイス２１０に処理されるこが意図されたパケットは、第２ＭＡＣアドレスを用いてアドレス指定される。同様に、計算デバイス２１０は、グループ・オーナーからのパケットへ第１ＭＡＣアドレスを挿入する。クライアントからのパケットには第２ＭＡＣアドレスを含める。
【００４０】
[0049]  オペレーティング・システム２３０が、ドライバー２４４との対話を、計算デバイス２１０内の複数のエンティティのうちの特定のエンティティと関連付けることを可能とするために、それぞれのエンティティはポートとして表される。従って、オペレーティング・システム２３０は、エンティティと関連するポートを通じて、そのエンティティへコマンドを送信し、また、そのエンティティからステータス情報を受信する。
【００４１】
[0050]  それぞれのポートは、ポートにより表されるエンティティのタイプに応じた適切な機能を行うように構成設定される。一例として、ピア・ツー・ピア・グループの一部をなすデバイスは、グループ・オーナーまたはクライアントの役割を担う。ワイヤレス・プロトコルに従うと、グループ・オーナーは、特定のタイプのアクション・フレームを送信するため、および指定された様式で他のタイプのアクション・フレームに応答するために、必要とされる。クライアントとして構成設定されたデバイスは、別のアクション・フレームおよび応答を送信するか、または別の状況において同じアクション・フレームおよび応答を送信する。
【００４２】
[0051]  なお、グループ・オーナーおよびクライアントは、無線装置２５４およびドライバー２４４を構成設定して行わせる役割の単なる２つの例であることを理解すべきである。別の例では、エンティティは、グループ・オーナーやクライアントとして構成設定されない。例えば、エンティティには、コントローラーとしての役割が割り当てられる場合もあり、コントローラーは、グループを形成するためおよびそのグループ内での計算デバイス２１０の役割を決定するために、他のデバイスとの対話を管理する。
【００４３】
[0052]  なお、図２は、同じ周波数チャンネルを用いるインフラストラクチャ接続とピア・ツー・ピア通信とが行われる実施形態における個別の無線装置、無線装置２５０および無線装置２５４、を示しているが、１つの無線装置のみを使用することも可能である。そのような実施形態では、インフラストラクチャ通信と関連する役割を行うエンティティと、ピア・ツー・ピア通信と関連する役割を行うエンティティとは、同じ無線装置で実施される。
【００４４】
[0053]  図３は、計算デバイス３１０が、インフラストラクチャ・ネットワークにおいてそれぞれに役割を有する複数のエンティティと、ピア・ツー・ピア通信に関する役割をそれぞれに有する複数のエンティティとを、１つの無線装置を用いてサポートするように構成設定される実施形態を示す。図３は、無線装置３５４を含む計算デバイス３１０を示す。無線装置３５４は、複数のＭＡＣアドレス、３５６Ａ、３５６Ｂ、３５６Ｃ、３５６Ｄ、および３５６Ｅを持つものとして示されている。なお、ここでは、無線装置３５４および関連するドライバー３４４が同時に５つのポートを提供することを可能にする５つのＭＡＣアドレスを示しているが、サポートされるＭＡＣアドレスの特定の数は、本発明の重要事項ではなく、別の実施形態では５つより多くの数または少ない数のＭＡＣアドレスを使用できることを、理解すべきである。
【００４５】
[0054]  この例では、５つのＭＡＣアドレスを使用して、それぞれが異なる役割を行うように構成設定された５つのポート３８２、３８４、３８６、３８８、および３９０を提供する。ここで示されるシナリオでは、これらのポートのグループ３８０Ａは、インフラストラクチャ・ベースの通信に使用されるエンティティを実施するように構成設定されている。グループ３８０Ｂは、ピア・ツー・ピア通信のために構成設定されたポートを含む。
【００４６】
[0055]  図３に示した例では、グループ３８０Ａは２つのポート、ポート３８２および３８４を含む。グループ３８０Ｂは、３つのポート、ポート３８６、３８８、および３９０を含むものとして示されている。それぞれの使用タイプについて割り当てられるポートの数は、本発明の重要事項ではなく、任意の適切な数のポートを使用できることを理解すべきである。更に、それぞれのグループのポートの数が静的であるようにすることは、必要条件ではない。オペレーティング・システム３２０は、ドライバー３４４へ、必要に応じてポートを動的に生成または終了させるコマンドを発行することができる。
【００４７】
[0056]  ポートを生成するコマンドと関連して、オペレーティング・システム３２０は、そのポートと関連する役割を指定する。ドライバー３４４は、そのコマンドに応答して、指定された役割のために構成設定されるポートを生成する。その役割は、インフラストラクチャ・ベースの通信またはピア・ツー・ピアの通信であり得る。
【００４８】
[0057]  なお、そのような能力を実現するために任意の適切な機構を使用できるが、図３は、オペレーティング・システム３２０とドライバー３４４との間にインターフェース３４６を示している。インターフェース３４６は、標準化された形式のドライバーへのインターフェースとすることができる。一例として、幾つかのドライバーは、ＮＤＩＳインターフェース仕様に従って書かれる。その仕様に従って、ＯＩＤと呼ばれるプログラミング・オブジェクトを用いて、ドライバー３４４とオペレーティング・システム３２０との間でコマンドおよびステータス情報が交換される。ＮＤＩＳ標準は、ドライバーが応答すべきまたは応答し得るＯＩＤの数を定義する。なお、その標準は拡張可能であり、ＯＩＤは、特定の状況下で更なる機能をサポートするように定義され得る。この拡張能力は、ＯＩＤまたは他の適切な表現を用いてコマンドを定義するために使用でき、それにより、オペレーティング・システム３２０は、ドライバー３４４へ、ポートを生成または破壊することや、特定の役割のためにポートを構成設定することを、命令することが可能とされる。
【００４９】
[0058]  無線装置３５４は複数のポートに対するパケットを処理できるが、複数のＭＡＣアドレスをサポートする以外に、無線装置３５４は、幾つかの実施形態では、ポートをサポートするように特別に構成設定する必要はない。無線装置３５４は、当該技術分野で知られた技術を用いて実施できる。この例では、送信機／受信機３５８は、当該技術分野で知られておりワイヤレス通信に使用されるハードウェア・コンポーネントとすることができる。Ｗｉ−Ｆｉインフラストラクチャ・モード・プロトコルおよびピア・ツー・ピア通信のためのＷｉ−Ｆｉ  Ｄｉｒｅｃｔプロトコルに従った通信をサポートするために無線装置３５４が使用されるこの例では、送信機／受信機３５８の部分は、Ｗｉ−Ｆｉ仕様により定義された周波数範囲にわたる複数のサブチャンネルでの通信をサポートする。なお、送信機／受信機３５８の特定の動作特性は、通信のために使用される特定のプロトコルに応じて様々なものとなるが、それは本発明での重要事項ではない。同様に、コントローラー３６０は、ワイヤレス無線装置の設計の技術分野で知られたハードウェア・コンポーネントとすることができる。同じように、構成設定レジスター３７０も、ワイヤレス無線装置の設計の技術分野で知られたハードウェア・コンポーネントとすることができる。また、ＭＡＣアドレス３５６Ａ〜３５６Ｅと示されたコンポーネントも、当該技術分野で知られた技術を用いて実施できる。幾つかの実施形態では、無線装置３５４によりサポートされるＭＡＣアドレスは、無線装置３５４の一部であるリード・オンリ・メモリまたは他のコンポーネントへエンコードされる。なお、ドライバー３４４を介して無線装置３５４へＭＡＣアドレスが割り当てられる実施形態では、ＭＡＣアドレス３５６Ａ〜３５６Ｅを、揮発性または不揮発性の書き換え可能メモリで物理的に実施でき、無線装置３５４により応答可能なＭＡＣアドレスのプールを動的に生成できることを、理解すべきである。
【００５０】
[0059]  無線装置３５４のコンポーネントの実施の様式にかかわらず、無線装置３５４は、ハードウェア・インターフェース３４６を含むことができ、このインターフェース３４６を通じてドライバー３４４は無線装置３５４を制御することができる。幾つかの実施形態では、ドライバー３４４は、計算デバイス３１０内のプロセッサーで実行されるコンピューター実行可能ソフトウェア命令である。従って、ハードウェア・インターフェース３４６は、ドライバー３４４を実行するプロセッサーと無線装置３５４を保持する分離したカードとの間に配されるバス・コネクターや他の適切な相互接続として実施できる。なお、そのようなハードウェア・インターフェースは当該技術分野では知られており、任意の適切なインターフェースを使用することができる。
【００５１】
[0060]  ポートをサポートするように無線装置３５４を構成設定するために、ドライバー３４４は、無線装置３５４がそのポートを通じた通信と関連する特定のＭＡＣアドレスに対するパケットを処理するようにさせる。ドライバー３４４は、制御レジスター３７０へ値を書き込み、ＭＡＣアドレスをアクティブにするべきことを示し、それにより、無線装置３５４は、そのＭＡＣアドレスで識別された受信パケットを処理できるようになる。動作において、コントローラー３６０は送信機／受信機３５８を制御して、構成設定レジスター３７０内の情報によりアクティブと識別されたＭＡＣアドレスにより特定されたパケットへの応答を、行わせる。従って、複数のポートがアクティブである場合、構成設定レジスター３７０は、それぞれのアクティブなＭＡＣアドレスのインジケーションを含む。
【００５２】
[0061]  ポートに対するＭＡＣアドレスへ無線装置３５４が応答するように構成設定することに加えて、ドライバー３４４は、そのＭＡＣアドレスと関連して使用される通信パラメーターを指定する。それらのパラメーターは、例えば、別のＭＡＣアドレスを用いての通信に別の数のサブチャンネルが使用されることを指定する。このように、別のポートと関連する通信特性は、そのポートと関連する役割に基づいて制御される。特定の例として、制御ポートとして構成設定されたポートは、データーを通信するためのポートよりも、必要とされる帯域は低い。従って、無線装置３５４は、制御ポートと関連するＭＡＣアドレスに関して、より少ないサブチャンネルを使用するように、または異なるコード化スキームを使用するように構成設定される。
【００５３】
[0062]  送信される情報に関して、ドライバー３４４および／または無線装置３５４は、その情報を含む送信されたフレームが、その情報の送信が向けられているポートと関連するＭＡＣアドレスにより識別されるように、動作する。任意の適切な機構を用いて、ＭＡＣアドレスと、特定のポートから送信されるまたはそのポートにより受信される特定のフレームとを、関連付けることができる。更に、この処理は、ドライバー３４４内で一部または全てを行うことも、無線装置３５４内で一部または全てを行うこともできる。なぜなら、ポートを機能させることに関して、特定の実施による影響は無いからである。
【００５４】
[0063]  複数のポートを実施するために、ドライバー３４４を構成設定することもできる。この例では、ドライバー３４４は、マルチプレクサー／デマルチプレクサー３９２を実現するコンピューター実行可能命令を含むものとして、示されている。マルチプレクサー／デマルチプレクサー３９２は、ポートと関連する受信パケットを、そのポートの機能を実現するドライバー３４４の一部へルーティングするように、動作する。また、マルチプレクサー／デマルチプレクサー３９２は、何れかのポートから送信のためのパケットを受信し、そのパケットを無線装置３５４へ送る。
【００５５】
[0064]  複数のポートが送信のための情報を同時に有するシナリオでは、マルチプレクサー／デマルチプレクサー３９２は、受信機３５８がポートから情報を受け取る順序を確立するために、調停を行う。この目的のために、マルチプレクサー／デマルチプレクサー３９２は、任意の適切な方針を用いる。例えば、制御フレームを運ぶパケットには、データ・フレームを運ぶパケットよりも高い優先度が与えられる。方針の別の例としては、インフラストラクチャ・モードで動作するポートと関連する送信には、ピア・ツー・ピア・モードで動作するポートのものよりも高い優先度が与えられる。更に別の例としては、ピア・ツー・ピア・グループにおいて、グループ・オーナーの役割を持つように構成設定されたポートには、クライアントの役割を持つように構成設定されたポートよりも高い優先度が与えられる。なお、マルチプレクサー／デマルチプレクサー３９２により適用される特定の方針は、本発明の重要事項ではなく、任意の適切な方針を用いることができる。
【００５６】
[0065]  パケットをルーティングするようにマルチプレクサー／デマルチプレクサー３９２を構成設定することに加えて、ドライバー３４４は、特定の機能モジュールをそれぞれのポートと関連付けすることにより、構成設定される。ポートと関連付けされる特定の機能モジュールは、そのポートへ割り当てられた役割に基づく。例えば、図３は５つの機能モジュールを示す。機能モジュール３９４Ａは、ポートと関連付けされたときに、そのポートを、インフラストラクチャ・ネットワークにおけるステーションの役割で動作するように構成設定する。同様に、機能モジュール３９４Ｂは、ポートと関連付けされたときに、そのポートを、インフラストラクチャ・ネットワークにおけるアクセス・ポイントの役割のために構成設定する。機能モジュール３９４Ｃは、ポートと関連付けされたときに、そのポートを、ピア・ツー・ピア・モードにおけるコントローラーの役割で動作するように構成設定する。機能モジュール３９４Ｄは、ポートと関連付けされたときに、そのポートを、ピア・ツー・ピア・グループにおけるグループ・オーナーの役割のために構成設定する。機能モジュール３９４Ｅは、ポートと関連付けされたときに、そのポートを、ピア・ツー・ピア・グループにおけるクライアントの役割のために構成設定する。図３には示していないが、他の機能モジュールを代替的または追加的に含むこともできる。
【００５７】
[0066]  機能モジュール３９４Ａ〜３９４Ｅは、任意の適切な方法で実施できる。例えば、それぞれの機能モジュールは、その機能モジュールと関連する役割のための機能を行うようにエンコードされたコンピューター実行可能命令の集合体として、実施できる。例えば、機能モジュール３９４Ａに関しては、インフラストラクチャ・ネットワークにおけるステーションとして適切にパケットを送信させるように無線装置３５４を制御するための命令が、エンコードされる。更に、機能モジュール３９４Ａは、インフラストラクチャ・ネットワークにおけるステーションの動作を実施するように、ドライバー３４４がオペレーティング・システム３２０と対話することを可能にする命令を含むことができる。特定的な例として、機能モジュール３９４Ａは、特定の受信フレームに対して応答を自動的に生成するように、コード化される。更に、機能モジュール３９４Ａは、フレームで受信したデーターを、計算デバイス３１０のメモリ内の位置へ転送し、次に、データーを受信したことをオペレーティング・システム３２０へ通知するように、コード化することができる。更に、機能モジュール３９４Ａは、その機能モジュールの役割のために無線装置３５４を構成設定する。その構成設定は、特定の役割で使用されるワイヤレス通信のサブチャンネルの数の設定や、他のパラメーターの設定を含む。機能モジュール３９４により行われる動作は、Ｗｉ−Ｆｉネットワークにおけるステーションとしてのみ構成設定されたワイヤレス・ネットワーク・インターフェース・カードに関して従来のドライバーにより行われる動作と類似であり、機能モジュール３９４は、当該技術分野で知られた技術を用いてコード化することができる。
【００５８】
[0067]  他のそれぞれの機能モジュールは、同様に、オペレーティング・システム３２０および無線装置３５４と対話するようにコード化され、無線装置３５４を構成設定するようにコード化され、それぞれの役割に適するように通信を内部で処理および生成するようにコード化される。機能モジュール３９４Ｂに関しては、例えば、インフラストラクチャ・ネットワークにおけるアクセス・ポイントとして当該技術分野で知られた適切な動作で、受信フレームに対して動作を行うまたは応答するコンピューター実行可能命令により、コード化される。また、機能モジュール３９４Ｂは、当該技術分野で知られた技術を用いてオペレーティング・システム３２０と対話するように、コード化される。
【００５９】
[0068]  機能モジュール３９４Ｃは、ピア・ツー・ピア・グループの確立と関連する機能を行うようにコード化される。同様に、機能モジュール３９４Ｃを実現する命令は、当該技術分野で知られた技術を用いて書かれる。それらの命令は、無線装置３５４が、特定のプロトコルに従って、ピア・ツー・ピア通信のグループの確立において使用されるタイプのアクション・フレームを含むパケットを送信するようにさせ、また、そのタイプのアクション・フレームに応答するようにさせる。オペレーティング・システム３２０内のコンポーネントは、それらのアクション・フレームの送信をトリガする。なお、幾つかのアクション・フレームに関しては、機能モジュール３９４Ｃは、オペレーティング・システム３２０によるｅｘｐｒｅｓｓ（エクスプレス）アクション無しに、アクション・フレームに対する応答を生成するように構成設定される。表１は、オペレーティング・システム３２０により機能モジュール３９４Ｃが送信を命令されるアクション・フレームの例を示す。これらのアクション・フレームは、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔプロトコルに適切なアクション・フレームを表す。このプロトコルで使用される追加のアクション・フレームは、ｅｘｐｒｅｓｓ（エクスプレス）コマンド無しに、受信したアクション・フレームまたは他の適切なトリガに応答して、送信される。なお、別のプロトコルに対して別のまたは追加のアクション・フレームを使用できること、および特定のアクション・フレームにより本発明が限定されないことを、理解すべきである。
【００６０】
【表１】
0005980805.tif 000002
【００６１】
[0069]  オペレーティング・システム３２０が、表１のアクション・フレームのうちの１つのものを送信するために制御ポートに対する要求を提出すると、ドライバー３４４内の機能モジュール３９４Ｃは、下記のような動作を行う。
【００６２】
ａ．  送信のためにダイアログ・トークンを選択する。送信が、要求に対して応答するものである場合、オペレーティング・システムは、使用するダイアログ・トークン（以下で説明）を提供し、ドライバー３４４は、その指定されたダイアログ・トークンを使用する。
【００６３】
ｂ．  要求を完了する。ドライバー３４４は、ダイアログ・トークンを選択すると、そのダイアログ・トークンをオペレーティング・システム３２０へ報告する。
ｃ．  フレームの標的となっているＷｉ−Ｆｉ  Ｄｉｒｅｃｔデバイスと同期をとる。実施の態様に応じてではあるが、送信が、受信した要求に対して応答する送信（例えば、インビテーション要求の受信の際に送信されるインビテーション応答）である場合、このステップは省略することができる。
【００６４】
ｄ．  フレームを送信し、ＡＣＫ（アクノレッジ）を待つ。
ｅ．  フレームに対するＡＣＫが受信されるか、またはリトライを試みてもＡＣＫを得られなかった場合、ＮＤＩＳ＿ＳＴＡＴＵＳインジケーションをオペレーティング・システム３２０へ送信して、アクション・フレームの送信ステータスについて通知する。このインジケーションは、アクション・フレームを含むパケットからの情報エレメントを含む。
【００６５】
[0070]  送信が、ピア・デバイスから応答を受信したであろうフレームに対するものであり、送信が成功した場合、ポートは、ピア・デバイスが応答アクション・フレームをミニポートへ送信するように、使用可能なステータスで維持される。タイムアウトと、使用可能にしておく機構とは、Ｗｉ−Ｆｉ  Ｐｅｅｒ−Ｔｏ−Ｐｅｅｒ  Ｔｅｃｈｎｉｃａｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ワイファイ・ピア・ツー・ピア技術仕様）に従うべきである。
【００６６】
[0071]  機能モジュール３９４Ｃがポートと関連する場合において、機能モジュール３９４Ｃをトリガしてアクション・フレームを送信させるオペレーティング・システム３２０内の特定のコンポーネントは、本発明の重要事項ではない。しかし、図３は、オペレーティング・システム３２０内にデバイス・マネージャ３３０を示している。デバイス・マネージャ３３０は、例えば、当該技術分野で知られたデバイス・マネージャであり、ユーザーにプログラムのインターフェースを提示し、それを通じて、ユーザーまたは他の実行コンポーネントは、ピア・ツー・ピア通信を用いてデバイスとの通信セッションを確立することを要求する。
【００６７】
[0072]  ポート３８６などのようなポートが、機能モジュール３９４Ｃと関連付けられることにより、ピア・ツー・ピア通信のコントローラーとして動作するように構成設定された場合、デバイス・マネージャ３３０は、ポート３８６と対話して、１以上のデバイスとのピア・ツー・ピア通信の確立の際の様々な特性を制御する。例えば、デバイス・マネージャ３３０は、プリンター１３４（図１）などのようなデバイスへ計算デバイス３１０がワイヤレスで接続されることを要求するユーザー入力を、受信する。その入力に応答して、デバイス・マネージャ３３０は、スタック３２２を通じてポート３８６と対話して、機能モジュール３９４Ｃに無線装置３５４を制御させて、無線装置３５４がアクション・フレームを送信するようにさせる。
【００６８】
[0073]  送信されたアクション・フレームは、デバイス発見またはサービス発見と関連するアクション・フレームであり得る。デバイス・マネージャ３３０はそれらの要求の特性を特定する。例えば、機能モジュール３９４Ｃは、計算デバイス３１０の近くにある何れかのデバイスを発見するために探索を行うべきか、またはプリンタ・サービスなどのような指定されたサービスを提供するデバイスのみを探索するかなどを、特定する。なお、デバイス・マネージャ３３０は、グループ内の１以上のデバイスとの通信を確立するためにポート３８６を通じて別のフォーマットのコマンドを送信するように、構成設定できる。
【００６９】
[0074]  一例として、図３は、オペレーティング・システム３２０が永続的デバイス記憶装置３２８を保持していることを示している。永続的デバイス記憶装置３２８は、計算デバイス３１０により以前にワイヤレス通信を確立したデバイスを識別する情報を含む。ユーザー入力または他の適切なトリガに応答して、デバイス・マネージャ３３０は、永続的デバイス記憶装置３２８内の情報へアクセスして特定のデバイスを識別し、機能モジュール３９４Ｃに対するポート３８６を通じてコマンドを送信し、永続的デバイス記憶装置３２８において識別されたデバイスとのワイヤレス通信を確立するためにアクション・フレームを自動的に生成する。
【００７０】
[0075]  デバイス・マネージャ３３０が、外部デバイスとの通信を確立するために、パスワードや識別子などのような情報を必要とするシナリオでは、デバイス・マネージャ３３０は、代替的または追加的に、ユーザー・インターフェース（図３には示さず）を通じてユーザーと対話して、その情報をユーザーまたは他のソースから入手する。その入手した情報を送信する必要がある場合、デバイス・マネージャ３３０は、コントローラーとして構成設定されたポートと対話して、その情報が送信されるようにする。
【００７１】
[0076]  デバイスのグループを識別するためにポート３８６などのような制御ポートとして構成設定されたポートをトリガする機構にかかわらず、制御ポートは、計算デバイス３１０を含むグループを形成する１以上のデバイスを識別するためにアクション・フレームの送信および受信を行う。ポート３８６を通じて開始される動作は、グループを識別することに加えて、そのグループ内の計算デバイス３１０の役割に関するネゴシエーションを行う。ここで示したＷｉ−Ｆｉ  Ｄｉｒｅｃｔピア・ツー・ピア・プロトコルの例では、デバイスは、グループ内で、グループ・オーナーとしての役割またはクライアントとしての役割を有する。識別されたグループ内の別のデバイス（１以上）との通信は、別のポートを通じて行うことができる。そのポートは、計算デバイス３１０に対して特定された役割での行動をサポートするように構成設定される。
【００７２】
[0077]  図３に示した例には、更なるポート３８８および３９０が示されている。これらのポートのそれぞれは、異なる役割と関連付けされている。例えば、ポート３８８は、グループ・オーナーの役割と関連付けされている。ポート３９０は、クライアントの役割と関連付けされている。別の役割のためのポートの構成設定は、ポートと、そのポートと関連する機能を行う機能モジュールとを関連付けることにより、行われる。例えば、グループ・オーナーとして動作するデバイスと関連する機能を行う機能モジュール３９４Ｄは、ポート３８８と関連付けされる。同様に、クライアントとして動作するデバイスと関連する機能を行う機能モジュール３９４Ｅは、ポート３９０と関連付けされる。
【００７３】
[0078]  動作において、ポート３８８および３９０と関連するＭＡＣアドレスを有する無線装置３５４を通じてパケットが受信されると、マルチプレクサー／デマルチプレクサー３９２は、それらのパケットを、関連するポート内で処理するために送る。ポート３８８へ送られたパケットは、機能モジュール３９４Ｄにより処理される。機能モジュール３９４Ｄは、グループ・オーナーの役割と関連するアクションを行う。データ・フレームを含むパケットは、そのデーターをメモリへ記憶して、データーが受信されたことをスタック３２２へ通知するように、処理される。このようなオペレーティング・システム３２０との対話では、当該技術分野で知られたスタック・シグナリング技術を用いる。なお、各ポートとオペレーティング・システム３２０との間での通信を行うための特定の機構は、本発明の重要事項ではない。
【００７４】
[0079]  計算デバイス３１０がグループ・オーナーであるグループで確立されたセッションの一部として管理フレーム（management frame）が送られた場合、それらの管理フレームは、同様に、マルチプレクサー／デマルチプレクサー３９２によりポート３８８へ送られる。機能モジュール３９４Ｃは、管理フレームへ応答するように構成設定されるか、またはオペレーティング・システム３２０へ管理フレームを報告するように構成設定されるかであるが、これは、機能モジュール３９４Ｃが管理フレームへ応答するようにプログラムされるか否かに応じてのことである。
【００７５】
[0080]  同様に、計算デバイス３１０が、グループ内のクライアントの役割を行うために構成設定される場合、そのグループ内のデバイスとの通信と関連するパケットはＭＡＣアドレスにより識別され、それにより、マルチプレクサー／デマルチプレクサー３９２は、それらのパケットを、ポート３９０などのようなクライアントとして構成設定されたポートへ送る。ポート３９０は機能モジュール３９４Ｅと関連し、ピア・ツー・ピア・プロトコルに従ったクライアントの機能を実施する。機能モジュール３９４は、当該技術分野で知られた技術を用いて、パケット内のデータ・フレームからのデーターをメモリへ転送し、そのデーターをオペレーティング・システム３２０へ通知するように構成設定される。機能モジュール３９４Ｅは、管理フレームを含むパケットに応答するか、またはそれらの管理フレームをオペレーティング・システム３２０へ通知する。
【００７６】
[0081]  図３は、通信機能の特定の階層を示す。外部デバイスとの通信と関連する特定の機能は、無線装置３５４内で行われる。他の機能は、ドライバー３４４内で行われる。更に別の機能は、オペレーティング・システム３２０内で行われる。特別には示していないが、更に別の機能は、アプリケーション２２０や、ユーザーまたは計算デバイス３１０の外部のソースからの入力により、行われる。そのようなアーキテクチャでは、ピア・ツー・ピア・グループの一部として何れのデバイスを接続するかを決定することなどのような高レベル機能は、アーキテクチャの高レベル部分で行われる。逆に、受信したパケットに対するアクノレッジメントの生成などのような低レベル機能は、アーキテクチャの低レベル部分で行われる。例えば、ドライバー３４４は、そのようなアクノレッジメントを生成するように構成設定される。
【００７７】
[0082]  なお、異なる様式で機能を区分して、通信の様々な構成部分が様々なコンポーネントにより制御されるようにする他のアーキテクチャも可能であるが、ここで示した例では、無線装置３５４およびドライバー３４４は、コマンドや受信パケットなどのようなイベントへステートレス（stateless）に応答するように構成設定される。ステート情報が通信セッションに含まれるという点に関して、ステート情報は、オペレーティング・システム３２０内で維持することができる。例えば、スタック３２２は、ポート３８２、３８４、３８６、３８８、および３９０の何れかを通じて行われる通信セッションに関するステート情報を、維持することができる。維持される特定のステート情報は、それぞれのポートでサポートされるプロトコル内のステートの数およびタイプにより決まる。
【００７８】
[0083]  図３の例では、セッション・ステート情報３２４Ａがポート３８８と関連するものとてして示されている。明確には示していないが、セッション・ステート情報は、他のポートに関しても維持することができる。ポート３８８により実施されるプロトコルに応じて、そのセッション・ステート情報は、セッションのパラメーター、例えば、計算デバイス３１０がグループ・オーナーであるグループに参加しているデバイスの数などを示す。また、それらのデバイスが低電力モードへ入るまでの時間などのような他のステート情報も、セッション・ステート情報３２４の一部として記憶することができる。
【００７９】
[0084]  図３は、ポート３８８と関連するセッション・ステート情報３２４Ｂおよび３２４Ｃを更に示す。ステート情報３２４Ｂおよび３２４Ｃは、別のセッションを記述するものであり得る。そのようなセッションは、計算デバイス３１０が３つのグループに参加しており、それらのグループのグループ・オーナーである場合に、発生する。複数のそのようなセッションをサポートするために、送信または受信される特定のフレームを、対応するセッションと関連付ける機構が提供される。任意の適切な識別子を用いることができる。例えば、デバイスのグループとの通信をセッションと見なすことができ、セッションの一部としての関連する通信を、グループの識別子を用いてグループ化することができる。スタック３２２はデバイス・マネージャ３３０または他のコンポーネントへのインターフェースを提供し、各セッションを、そのセッションにおけるエンド・ポイントである適切なコンポーネントと関連付けする。このようなインターフェース処理は、当該技術分野で知られた技術を用いて行われる。
【００８０】
[0085]  別個のセッションからの通信が適切に提示されることを可能とするステート情報を維持することに加えて、スタック３２２は、機能を行うための通信の交換の一部である通信をスタック３２２が関連付けすることを可能とする情報を、各セッションについて維持しているステート情報の一部として維持する。例えば、要求を表すフレームが送信された場合において、続いて受信されるフレームがその要求に対する応答であることを認識することにより、要求および応答の処理を楽にすることができる。交換の一部である通信を関連付ける機構を提供することは、特に、同じポートで複数のセッションがサポートされる場合などに、処理を楽なものとする。交換の一部である通信の認識を可能とするために、「ダイアログ・トークン」を使用することができる。交換を開始する通信には、そのようなダイアログ・トークンによりタグ付けが行われる。そのような通信に応答すると、要求からのダイアログ・トークンが、その応答へコピーされる。従って、要求を送信するデバイスは、応答、または同じ交換の一部である他の通信を、その要求と関連付けすることができる。従って、ステート情報３２４Ａは、セッションの一部として通信を行っているデバイスの関与する進行中の通信と関連するダイアログ・トークンを、含むことができる。
【００８１】
[0086]  ダイアログ・トークンは、任意の適切な方法で生成することができる。ダイアログ・トークンは、例えば、オペレーティング・システム３２０内で生成することができる。代替例として、ダイアログを開始するパケットがポートで開始された場合、ポートまたはドライバー３４４内の他のコンポーネントトークンを生成する。同様に、パケットへの応答がポート内、例えば、ポート３８６、３８８、または３９０内で生成された場合、トークンは、そのポートにより応答へ挿入される。逆に、パケットへの応答が、オペレーティング・システム３２０内で生成されたコマンドに応答して開始された場合、スタック３２２などのようなオペレーティング・システム３２０内のコンポーネントが、応答へ含めるトークンを指定する。表１は、列挙したアクション・フレームに関して、アクション・フレームと関連するダイアログ・トークンが、オペレーティング・システムで生成されるか、または、そうでない場合にはドライバーで生成されるかを示す。なお、表１は、フレームに対するダイアログ・トークンの生成の機能を区分する単なる一例を示すものであり、そのような機能の区分は任意に適切に行えることを、理解すべきである。
【００８２】
[0087]  類似のセッション・ステート情報３２６Ａ、３２６Ｂ、および３２６Ｃが、ポート３９０と関連して示されている。セッション・ステート情報３２６Ａ、３２６Ｂ、および３２６Ｃは、３つのセッションのそれぞれに対して維持されるステートを表し、それぞれのセッションは、計算デバイス３１０がクライアントの役割を持つメンバーであるグループと、関連付けされている。セッション・ステート情報３２４Ａ、３２４Ｂ、および３２４Ｃと同様に、一意のダイアログ・トークンがそれぞれのセッションと関連付けられ、それぞれのセッションと関連した受信パケットをスタック３２２が分離することを可能にする。同様に、計算デバイス３１０は、計算デバイス３１０から送信されるパケットとダイアログ・トークンを関連させる。ダイアログ・トークンは、スタック３２２、または計算デバイス３１０からパケットを受信するリモート・デバイス上の同様の処理コンポーネントが、情報のマルチパケット交換の一部であるパケットを関連付けすることを可能にするために、使用される。例えば、第１パケットに応答して送信された第２パケットは、第１パケットからのトークンを含む。その結果、第１パケットの送信者が第２パケットを受信するとき、送信者は、第１パケットと第２パケットとを同じダイアログで関連付けすることができる。
【００８３】
[0088]  図３に示すアーキテクチャでは、それぞれの接続を考慮したステート情報は、オペレーティング・システム３２０内で維持される。その結果として、ポート３８６、３８８、および３９０は、ステート情報を維持する必要がなくなくる。幾つかの実施形態では、ポートの機能を実現する機能モジュール３９４Ｃ、３９４Ｄ、および３９４Ｅなどのような機能モジュールは、ステート情報を維持しない。それぞれの機能モジュールは、オペレーティング・システム３２０からのコマンドや、無線装置３５４を通じて受信したパケットなどのようなイベントに対して応答するように、コード化される。なお、この機能がどのように区分されるかにかかわらず、計算デバイス３１０は、各エンティティの機能を行うポートを確立および構成設定することにより、複数のエンティティと関連する機能を供給するように制御される。その結果として、ドライバー３４４および無線装置３５４は複数のポートをサポートするように構成設定されるので、計算デバイス３１０は、様々なエンティティとして同時に動作する。それらのエンティティは、インフラストラクチャ・モードの通信と関連するエンティティと、ピア・ツー・ピアの通信と関連するエンティティとを含むことができる。
【００８４】
[0089]  図４は、ピア・ツー・ピア・プロトコルに従った通信を確立するように計算デバイス３１０を動作させるプロセスを示す。図４のプロセスは、ブロック４１０から開始し、入力は、ピア・ツー・ピア通信が行われることを示す。ブロック４１０は、アプリケーション・プログラムがオペレーティング・システム３２０へピア・ツー・ピア通信を確立することを要求する処理を含む。この例での要求は、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ標準を用いてのピア・ツー・ピア通信のためのものである。そのような要求は、例えば、デバイス・マネージャ３３０（図３）によりプリンターを特定することを要求するワード・プロセッサーなどのようなアプリケーション・コンポーネントにより、作られる。なお、ピア・ツー・ピア通信を開始する理由にかかわらず、ブロック４１０での処理は、オペレーティング・システム３２０へコールを行うアプリケーションを含む。
【００８５】
[0090]  そのようなコールは、オペレーティング・システム３２０をトリガして、ピア・ツー・ピア通信のためにドライバー３４４を構成設定させる。なお、ドライバー３４４の構成設定を試みる前に、オペレーティング・システム３２０は、計算デバイス３１０へインストールされたドライバーをＷｉ−Ｆｉ  Ｄｉｒｅｃｔ標準に従ってピア・ツー・ピア通信のために構成設定可能かを、判定する。ブロック４１２での処理は、インターフェース３４６を通じてコマンドを送る処理を含む。一例として、そのコマンドはＯＩＤの形式であり、ＤＯＴ１１＿ＶＷＩＦＩ＿ＡＴＴＲＩＢＵＴＥＳと呼ばれるものである。なお、コマンドの特定の形式が本発明の重要事項ではないことを、理解すべきである。
【００８６】
[0091]  コマンドの形式にかかわらず、ドライバー３４４は、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔプロトコルに従った通信をサポートする能力を示すインジケーションにより、応答する。ドライバー３４４が複数のポートをサポートできる図３に示す例では、それらのポートの幾つかがＷｉ−Ｆｉ  Ｄｉｒｅｃｔ通信のために構成設定され得るので、ブロック４１２で受信される応答は、ドライバー３４４のそのような能力を示す。従って、図４のプロセスは先へ進む。ドライバー３４４にＷｉ−Ｆｉ  Ｄｉｒｅｃｔ通信をサポートする能力が無い例では、ブロック４１２での処理は、代替の通信機構を選択する処理または他の適切な応答を行う処理を含む。
【００８７】
[0092]  ドライバーが、要求されたプロトコルに従った通信をサポートしない上記のシナリオでは、プロセスはブロック４１４へ進む。ブロック４１４において、オペレーティング・システムは、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ通信に使用されるポートをドライバーが確立することを、要求する。オペレーティング・システム３２０からドライバー３４４へ送信される他のコマンドと同様に、そのような要求は、インターフェース３４６を通じてコマンドの形式で送信される。この例では、コマンドはＯＩＤあり、ＯＩＤ＿ＤＯＴ１１＿ＣＲＥＡＴＥ＿ＭＡＣの形であり得る。なお、コマンドの特定の形式は本発明の重要事項ではない。
【００８８】
[0093]  そのようなコマンドに応答して、ドライバー３４４は無線装置３５４を構成設定して、追加のＭＡＣアドレスがピア・ツー・ピア通信のために要求されたポートと関連付けされるものと認識するようにする。ＭＡＣアドレスは、任意の適切な方法で得ることができる。ＭＡＣアドレスは、例えば、ブロック４１４で送信されるコマンドと関連して、無線装置３５４において有線で得ることや、ドライバー３４４により生成することや、オペレーティング・システム３２０により提供することができる。
【００８９】
[0094]  ＭＡＣアドレスが生成される様式にかかわらず、ＭＡＣアドレスが確立されると、ドライバー３４４は、そのＭＡＣアドレスを用いて確立されたポート上の情報を用いてオペレーティング・システム３２０へ応答する。応答は、インターフェース３４６を通じて送信されるステータス・メッセージの形態とすることがてきる。一例として、ステータス・メッセージはＯＩＤの形式であり、ＤＯＴ１１＿ＭＡＣ＿ＩＮＦＯと呼ばれるものである。ステータス・メッセージと関連して、ドライバー３４４は、インターフェース・アドレスを特定する。インターフェース・アドレスは、ドライバー３４４の生成したポートへアクセスするために必要な情報を、オペレーティング・システム３２０のために、特定する。このシナリオでのインターフェース・アドレスは、無線装置３５４により使用されるＭＡＣアドレスと関連している必要はない。なぜなら、マルチプレクサー／デマルチプレクサー３９２（図３）が、ポートと関連するＭＡＣアドレスと、オペレーティング・システム３２０がポートへアクセスする際に使用するインターフェース・アドレスとの間のマッピングを完成させるからである。
【００９０】
[0095]  図３と関連して説明した、ポートが特定の機能を実施する実施形態において、ポートが生成されると、ポートは、そのポートと特定の機能の組とを関連付けすることにより構成設定される。ピア・ツー・ピア通信を確立するために、最終的には、グループ・オーナーまたはクライアントとして構成設定されたポートが使用される。しかし、１つのデバイスがグループ内の他のデバイスとデーターを通信しているときに、その１つのデバイスのための特定の役割のポートが決定される前に、複数のアクション・フレームが、計算デバイス３１０の近くの他のデバイスと交換されて、そのグループが形成され、そのグループ内の計算デバイス３１０に対する特定の役割についてネゴシエーションされる。図３に示す実施形態では、それらの制御フレームは、ポート３８６などのような制御ポートを通じて交換される。このポートは、機能モジュール３９４Ｃと関連付けられて制御機能を行う。従って、ブロック４１８で、プロセスは、オペレーティング・システム３２０がコマンドをドライバー３４４へ送信して、ブロック４１６で定義されたポートを制御ポートとして構成設定することを含む。そのようなコマンドは、インターフェース３４６を通じて送信することができる。一例として、コマンドはＯＩＤの形式であり、ＤＯＴ１１＿ＯＰＥＲＡＴＩＯＮ＿ＭＯＤＥ＿ＷＦＤ＿ＤＥＶＩＣＥと呼ばれるものである。
【００９１】
[0096]  制御ポートが確立されると、プロセスは図５に示すプロセスへ進む。図５は、計算デバイス３１０を含むデバイスのグループを確立するために、その制御ポートを通じて行われる動作を示す。図５のプロセスはブロック５１０で開始し、オペレーティング・システム３２０はコマンドをドライバー３４４へ送信して、デバイスまたはサービスをスキャンさせる。このコマンドは、ブロック４１６（図４）で制御ポートのために確立されたインターフェース・アドレスを通じて送信することができる。
【００９２】
[0097]  そのようなコマンドに応答して、ブロック５１２において、ドライバー３４４は、無線装置３５４を制御して、アクション・フレームを含む１以上のパケットを送信させ、デバイスに対して、そのパケットを受信して応答することを要求する。送信されたパケットは、ダイアログ・トークンと、制御ポートとして動作するポート３８６と関連するＭＡＣアドレスとにより、タグ付けされている。従って、無線装置３５４により検出された応答は、マルチプレクサー／デマルチプレクサー３９２を通じてポート３８６へ渡される。ポート３８６から、その応答はオペレーティング・システム３２０へ渡され、更に、ダイアログ・トークンによりタグ付けされ、その応答をスキャンに関する応答として識別できるようにする。
【００９３】
[0098]  オペレーティング・システム３２０へ渡された応答は、計算デバイス３１０の近くにありピア・ツー・ピア・グループの一部としてワイヤレス通信に使用可能なデバイスを識別する情報を含む。ブロック５１４において、オペレーティング・システム３２０は、応答の中にある情報を使用して、応答してきたデバイスの何れかとワイヤレス接続を確立すべきか否かについてのユーザー入力を要求する。そのような要求は、任意の適切な様式で行うことができ、その様式は、計算デバイス３１０を接続できるデバイスについての１以上のオプションをユーザ・インターフェースを通じて提示することを含む。ブロック５１６において、ユーザーは、１または複数のデバイスを選択する入力を提供する。なお、接続を形成するためのデバイスを識別するために使用される特定の処理は、本発明の重要事項ではない。
【００９４】
[0099]  接続を形成する対象となるデバイスを識別する様式にかかわらず、プロセスはブロック５１８へ進み、オペレーティング・システムは、ドライバー３４４に対してコマンドを発行して、識別されたデバイスと関連するグループについてのネゴシエーションを開始させる。Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔプロトコルでのグループを形成する処理の一部は、グループ・オーナー・ネゴシエーションである。従って、ブロック５１８において、オペレーティング・システム３２０は、ドライバー３４４に命令して、グループ・オーナー・ネゴシエーションを開始させる。そのようなコマンドは、制御ポートに対して割り当てられたインターフェース・アドレスを通じて送信できる。
【００９５】
[00100]  ブロック５２０において、ドライバー３４４は、無線装置３５４を制御して、アクション・フレームを含むパケットを送信させる。これらはグループ・オーナー・ネゴシエーションの一部である。これらのパケットは、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔプロトコルに従ってフォーマットされる。なお、他のプロトコルが使用される場合も、同様に動作が行われる。
【００９６】
[00101]  ブロック５２０において送信されたアクション・フレームに応答して、計算デバイス３１０の外部にあり且つ近くの位置にあるデバイスから１以上のアクション・フレームが受信される。それらの応答はポート３８６内で処理されて、この例では、制御ポートとして構成設定される。ドライバーがステート情報を保持しない実施形態では、処理は、単に応答をオペレーティング・システム３２０へ渡すことを含む。なお、別の実施形態では、ポート３８６内での処理は、代替的または追加的に、応答を判定し、無線装置３５４を制御して応答を送信させることを含む。
【００９７】
[00102]  例示の実施形態では、応答に基づいて、オペレーティング・システムは、ドライバー３４４に命令して、グループ・オーナー・ネゴシエーションと関連する更なるアクション・フレームを送信させる。従って、ブロック５２０および５２２での処理は、反復して行うことができ、オペレーティング・システム３２０は、ドライバー３４４をトリガして、アクション・フレームを含むパケットを送信させることを、理解すべきである。ドライバー３４４は、それらの応答をオペレーティング・システム３２０へ渡す。なお、ドライバー３４４が、以前のアクション・フレームに対する応答を受信したときに、オペレーティング・システム３２０からのｅｘｐｒｅｓｓ（エクスプレス）コマンド無しに、更なるアクション・フレームを識別して送信する、という別の実施形態も可能である。
【００９８】
[00103]  アクション・フレームを含むパケットを送信し、応答を受信し、応答に基づいて更なるアクションを行う処理は、グループ・オーナー・ネゴシエーションが終了するまで継続される。個々のグループ・オーナー・ネゴシエーションの終了は、実施されるワイヤレス通信のためのプロトコルにより異なる。なお、図５に示す実施形態では、グループ・オーナー・ネゴシエーションは、計算デバイス３１０がグループ内の他のデバイスへグループ・オーナー・コンファメーション・アクション・フレームを送信することで、終了する。そのアクションはブロック５２４で行われる。このようなアクションは、オペレーティング・システム３２０がポート３８６を通じてドライバー３４４へ、そのようなアクション・フレームを送信することを命令することにより、トリガされる。
【００９９】
[00104]  ここで示された各ポートが特定の機能を行う実施形態では、グループを確立するため、およびグループ・オーナーのネゴシエーションを行うために使用されるポートは、計算デバイス３１０がピア・ツー・ピア・グループのグループ・オーナーまたはクライアントとして動作しているときには、通信の処理を行わない。ここで示した実施形態では、その目的のために少なくとも１つの別のポートが使用される。従って、グループのネゴシエーションおよびそのグループ内での計算デバイス３１０の役割のネゴシエーションが終了すると、プロセスはブロック６１０（図６）へ進み、形成されたグループ内のデバイスとの接続をサポートするための第２のポートが確立される。
【０１００】
[00105]  ブロック６１０において、そのようなポートを確立するプロセスが開始され、オペレーティング・システム３２０は、ドライバー３４４により第２のポートを確立することを、要求する。ブロック６１０での処理は、ブロック４１４での処理と同じものとすることができる。ブロック６１２でのドライバーによる応答もまた、ブロック４１６での応答と同じものとすることができ、例えば、そのポートのためにインターフェース・アドレスを提供する。
【０１０１】
[00106]  計算デバイス３１０の役割がクライアントであるグループ内での通信に、第２のポートが使用される場合、処理はブロック６２４へと分岐する。ブロック６２４において、オペレーティング・システム３２０はドライバー３４４に命令して、第２のポートがクライアントと関連する機能を行うように第２のポートを構成設定させる。ブロック６２２でのコマンドと同様に、ブロック６２４でのコマンドは、インターフェース３４６を通じて渡される。そのようなコマンドに応答して、ドライバー３４４は、クライアントの機能を含む機能モジュール３９４Ｅを、ブロック６１２で生成された第２のポートと関連付ける。
【０１０２】
[00107]  第２のポートを構成設定する際の特定の役割にかかわらず、構成設定が完了すると、処理はサブプロセス６３０へ進む。サブプロセス６３０内で、オペレーティング・システム３２０は、ポートを、特定の役割のために構成設定された無線装置に対するインターフェースとして扱う。そのようなインターフェースは、そのポートに対する指定されたインターフェース・アドレスを用いるネットワーク・アダプターとしてアプリケーション・コンポーネントへ提示される。生成されたそれぞれのポートは、個別のネットワーク・アダプターとして提示される。インターフェースをネットワーク・アダプターへとフォーマットすることは当該技術では知られており、オペレーティング・システム３２０は、そのような既知のフォーマット技術を用いて各ポートをネットワーク・アダプターとして提示することができる。なお、ブロック６３２でオペレーティング・システムによりポートを提示する際の特定のフォーマットは、本発明の重要事項ではないことを理解すべきである。
【０１０３】
[00108]  ポートを提示する際のフォーマットにかかわらず、次に、アプリケーションは、ポートを使用してワイヤレスで情報を交換する。ブロック６３４において、アプリケーションは、当該技術分野で知られた技術を用いて、ワイヤレス通信のためにネットワーク・アダプターと対話する。ブロック６３４でのそのような交換は、アプリケーションがそれを終了させるまで、またはそのポートを通じて通信する必要がなくなるまで、継続される。ポートが存在している間は、コンポーネント上の他のアプリケーションもまた、そのポートを通じて情報を交換する。
【０１０４】
[00109]  従って、ブロック６３６において、オペレーティング・システムは、ポートを通じてのアクティブな通信セッションが無いことを検出すると、ポートを終了させるコマンドを送信する。一例として、表１は、特定のアクション・フレームが送信された後に制御ポートをアクティブに維持するか否かを示す。他のポートに対しても類似の動作パターンを定義することができ、そのような情報は、ポートを破壊するためにコマンドが送信されるか否かを決定するために使用できる。
【０１０５】
[00110]  ポートが破壊される場合、コマンドは、インターフェース３４６を通じて送信される。それに応答して、ドライバー３４４は、ポートを形成したときに生成されたデーター構造を削除し、無線装置３５４に命令してその構成設定を変更させ、以降はそのポートと関連するＭＡＣアドレスへ無線装置３５４が応答しないようにする。ブロック６３６においてポートを破壊することにより、ＭＡＣアドレスを別のポートに対して再使用できるようになる。そのような能力は、例えば、無線装置３５４がサポートするＭＡＣアドレスよりも多くのタイプのポートに対してドライバー３４４を構成設定できる実施形態において、有用である。このようにして、ＭＡＣアドレスを、時間の経過とともに様々なタイプのポートで共有することができる。
【０１０６】
[00111]  なお、ポートを破壊する代わりに、ポートを別の機能のために使用することもできる。幾つかの実施形態では、制御ポートは、何れかのピア・ツー・ピア・ワイヤレス・セッションがアクティブであるかぎり維持される。そのシナリオでは、１つのセッションが、制御ポートと通信ポートとの２つのポートを有し、グループ・オーナーまたはクライアントとして通信するように構成設定される。幾つかのシナリオでは、制御ポートは、主に、ピア・ツー・ピア通信のためのグループを確立する際に使用されるので、データーが関連する通信ポートを通じて通信されるセッション中に、他の機能をサポートすることができる。特定的な例として、ワイヤレス・デバイスのグループが確立された後に、制御ポートを「サイド・チャンネル」として使用することができる。サイド・チャンネルは、ワイヤレス通信のプロトコルと関連しない制御情報を送信するために使用できる。
【０１０７】
[00112]  図７は、サブプロセス６３０に代えて行うことができるサブプロセス７３０を示す。ここで示されるように、サブプロセス７３０は、サブプロセス６３０と同様に開始される。ブロック７３２において、オペレーティング・システム３２０は、ネットワーク・アダプターを通じてアプリケーションに通信ポートを提示する。この通信ポートは、ピア・ツー・ピア・グループにおける特定の役割のために構成設定されている。ブロック７３４において、アプリケーションは、通信のためにネットワーク・アダプターを使用する。特に、通信は、計算デバイス３１０がメンバーであるグループの一部をなす外部デバイスとのデーターの交換を含む。
【０１０８】
[00113]  ブロック７３６において、データーの送信と同時に、例えば、グループの確立の際に使用された制御ポートは、サイド・チャンネル通信のために使用される。図３の実施形態では、そのような能力は、制御ポートの機能を実現するコード化を機能モジュール３９４Ｃに関して行い、サイド・チャンネル情報を送信するコマンドに応答するように構成することにより実現できる。なお、このコマンド、および場合によっては送信するデーターは、制御ポートを通じて提供されるが、そのコマンドやデーターは、ワイヤレス・グループの確立に使用されるアクション・フレームとは別の方法で送信することができる。ブロック７３６での処理もまた、それらのコマンドを提供するために制御ポートへアクセスするアプリケーション・コンポーネントに応答して行われる。サイド・チャンネル通信をトリガするコマンド（１または複数）の特定のフォーマット、および送信される情報の特性は、本発明の重要事項ではない。しかし、図８には、制御ポートをサイド・チャンネル通信に使用できる例示的環境８１０を示す。
【０１０９】
[00114]  図８はワイヤレス計算デバイス８２０を示し、この計算デバイスは、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔプロトコルなどのようなピア・ツー・ピア・プロトコルに従ってワイヤレス通信のために計算デバイス３１０（図３）と同様に構成設定できる。この環境において、計算デバイス８２０は、テレビジョン８３０などのようなディスプレイ・デバイスを含むグループのグループ・オーナーの役割のために、構成設定される。このシナリオでは、テレビジョン８３０は、ワイヤレス接続８３２を介してテレビジョン８３０へ向けて送信されたオーディオ／ビデオ・コンテンツを受信して表示するように構成設定される。ワイヤレス接続８３２に関して、計算デバイス８２０はグループ・オーナーとして構成設定され、テレビジョン８３０はワイヤレス・クライアントとして構成設定される。
【０１１０】
[00115]  計算デバイス８２０は、計算デバイス８２０と関連するユーザ・インターフェースを通じてユーザー８２２が計算デバイス８３０で表示するオーディオ／ビデオ・コンテンツを選択することを可能にするアプリケーションにより構成設定される。そのようなアプリケーションは、計算デバイス８２０を制御して制御ポートを確立し、その制御ポートを通じて、計算デバイス８２０およびテレビジョン８３０を含むグループ・オーナーが形成される。その制御ポートを通じて、計算デバイス８２０およびテレビジョン８３０は、それぞれの役割についてネゴシエーションを行い、例えば、計算デバイス８２０がグループ・オーナーとして構成設定され、テレビジョン８３０がクライアントとして構成設定される。計算デバイス８２０をグループ・オーナーとして構成設定する際に、その役割のために更に通信ポートが確立される。
【０１１１】
[00116]  しかし、グループのネゴシエーションに使用された制御ポートは、アクティブのステータスを維持する。このシナリオでは、そのポートは、時々、テレビジョン８３０の表示機能を制御するコマンドを送信するために使用される。例えば、オーディオ／ビデオ・コンテンツはワイヤレス接続８３２を介してストリームで送られるが、ユーザー８２２は、その情報の提示を制御する追加の情報をテレビジョン８３０へ送信することを望む場合がある。その情報は、例えば、テレビジョン８３０が情報の視覚部分を提示するときに伴う音の量を調節するコマンドを表すものである。別の例として、サイド・チャンネル通信のために制御ポートを用いて送信される情報は、情報の視覚部分の提示における明るさや他の特性を調節するためのテレビジョン８３０へのコマンドを表す。このように、コマンドの通信をサポートするための更なるポートを確立する必要無しに、計算デバイス８２０はテレビジョン８３０へコマンドを通信する。
【０１１２】
[00117]  図８に示した例では、制御ポートをサイド・チャンネル通信に再使用することにより、計算デバイス８２０は、更なるワイヤレス接続を確立することを可能とされる。例えば、ＭＡＣアドレスは、インフラストラクチャ・モードでのワイヤレス通信のためのポートを確立するために計算デバイス８２０内で使用可能である。特定の例として、環境８１０はアクセス・ポイント８４０を含み、このアクセス・ポイントを通じて、計算デバイス８２０はネットワーク８４２へアクセスすることができる。図３に示すアーキテクチャでは、計算デバイス８２０内で更なるポートが使用可能である場合、そのポートは、計算デバイス８２０とアクセス・ポイント８４０との間のワイヤレス通信を確立するために使用でき、それにより、計算デバイス８２０は、インフラストラクチャ・モードおよびピア・ツー・ピア・モードで通信できるようにされる。計算デバイス８２０のサポートできるポートの数に制限があるシナリオでは、オーディオ／ビデオ制御情報をテレビジョン８３０へ運ぶために更なるポートが必要とされた場合において、アクセス・ポイント８４０へのワイヤレス接続のために１つのポートを使用できない場合がある。従って、制御ポートを、オーディオ／ビデオ制御情報をサイド・チャンネル情報として運ぶためにも使用することにより、計算デバイス８２０のワイヤレス通信の能力が拡張される。
【０１１３】
[00118]  任意の適切な計算デバイスを、ここで説明した技術を用いてワイヤレス通信のために構成設定することができる。図９は、本発明を実施できる例示的な適切な計算システム環境９００を示す。計算システム環境９００は、適切な計算環境の単なる一例であり、ユーザーや本発明の機能の範囲の制限を提案することを意図したものではない。計算環境９００は、例示の計算環境９００に示した何れかのコンポーネントやコンポーネントの組み合わせと関連する依存性や必要性を有するものと解釈されるべきではない。
【０１１４】
[00119]  本発明は、他の様々な汎用または特定用途向けの計算システムの環境や構成設定で動作可能である。本発明を用いるのに適した良く知られている計算システム、環境、および／または構成設定の例には、パーソナル・コンピュータ、サーバー・コンピュータ、手持型またはラップトップ型のデバイス、マルチプロセッサー・システム、マイクロプロセッサ・ベースのシステム、セットトップ・ボックス、プログラマブルの大衆消費電子製品、ネットワークＰＣ、ミニコンピューター、メインフレーム・コンピュータ、上記のシステムやデバイスの何れかを含む分散型計算環境などが含まれるが、これらに限定はされない。
【０１１５】
[00120]  計算環境は、プログラム・モジュールなどのようなコンピューター実行可能命令を実行する。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データー構造などを含み、それらは、特定のタスクを行うか、または特定の抽象データー型を実現する。本発明はまた、通信ネットワークを通じてリンクされたリモート処理デバイスによりタスクが行われる分散型計算環境でも実施することができる。分散型計算環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモートのコンピュータ・ストレージ媒体に配される。
【０１１６】
[00121]  図９を参照すると、本発明を実施するための例示的なシステムは、コンピューター９１０の形態の汎用計算デバイスを含む。コンピューター９１０のコンポーネントは、処理ユニット９２０、システム・メモリー９３０、およびシステム・メモリーを含む様々なシステム・コンポーネントを処理ユニット９１０へ結合するシステム・バス９２１含むが、これらに限定はされない。システム・バス９２１は、幾つかのタイプのバス構造のうちの任意のものであり、バス構造は、メモリ・バスおよびメモリ・コントローラ、周辺バス、および様々なバス・アーキテクチャのうちの何れかを用いるローカル・バスを含む。そのようなアーキテクチャの例としては、Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、Ｍｅｚｚａｎｉｎｅバスとしても知られるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスなどがあるが、これらに限定はされない。
【０１１７】
[00122]  コンピューター９１０は、典型的には、様々なコンピューター読取可能媒体を含む。コンピューター読取可能媒体は、コンピューター９１０によりアクセスできる任意の使用可能な媒体とすることができ、揮発性および不揮発性の媒体や、リムーバブルおよび非リムーバブルな媒体を含む。例えば、コンピューター読取可能媒体は、コンピュータ・ストレージ媒体および通信媒体を含むが、これらに限定はされない。コンピュータ・ストレージ媒体は、コンピューター読取可能命令、データー構造、プログラム・モジュール、および他のデーターなどのような情報を記録するための任意の方法や技術により実現される揮発性および不揮発性、リムーバブルおよび非リムーバブルの媒体を含む。コンピュータ・ストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリや他のメモリ技術、ＣＤ−ＲＯＭ、デジタル・バーサタイル・ディスク（ＤＶＤ）や他の光学ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージや他の磁気ストレージ・デバイス、望まれる情報を記憶するために使用でき且つコンピューター９１０によりアクセスできる任意の他の媒体などを含むが、これらに限定はされない。通信媒体は、典型的には、搬送波のような変調されたデーター信号や他のトランスポート機構などの中にあるコンピューター読取可能命令やデーター構造やプログラム・モジュールや他のデーターを実現するものであり、通信媒体には、任意の情報搬送媒体が含まれる。「変調されたデーター信号」という用語は、情報を信号内にエンコードするような様式で設定または変更されて１以上の特性を有する信号、を意味する。例えば、通信媒体は、有線ネットワークや直接有線接続などのような有線媒体と、音響、ＲＦ、赤外線、および他のワイヤレスの媒体などのようなワイヤレス媒体とを含むが、これらに限定はされない。上記の媒体のうちの任意のものの組み合わせも、コンピューター読取可能媒体の範囲に含まれる。
【０１１８】
[00123]    システム・メモリー９３０は、リード・オンリ・メモリ（ＲＯＭ）９３１やランダム・アクセス・メモリ（ＲＯＭ）９３２などのような揮発性および／または不揮発性のメモリの形態のコンピュータ・ストレージ媒体を含む。スタートアップのときなどにコンピューター９１０内のエレメント間での情報の転送を支援する基礎的ルーチンを含むベーシック・インプット／アウトプット・システム９３３（ＢＩＯＳ）は、典型的には、ＲＯＭ９３１に記憶される。ＲＡＭ９３２は、典型的には、処理ユニット９２０により即座にアクセス可能な、および／または現在処理されているデーターおよび／またはプログラム・モジュールを含む。例として、図９は、オペレーティング・システム９３４、アプリケーション・プログラム９３５、他のプログラム・モジュール９３６、およびプログラム・データー９３７を示しているが、これらに限定はされない。
【０１１９】
[00124]    コンピューター９１０はまた、他のリムーバブルおよび／または非リムーバブルの揮発性および／または不揮発性の記録媒体を含むことができる。単なる例であるが、図９は、非リムーバブルで不揮発性の磁気媒体に対しての読み出しおよび書き込みを行うハードディスク９４０、リムーバブルで不揮発性の磁気ディスク９５２に対しての読み出しおよび書き込みを行う磁気ディスク・ドライブ９５１、およびＣＤ  ＲＯＭや他の光学媒体などのようなリムーバブルで不揮発性の光ディスク９５６に対しての読み出しおよび書き込みを行う光ディスク・ドライブ９５５を示している。例示した動作環境で使用できる他のリムーバブル／非リムーバブルで揮発性／不揮発性のコンピュータ・ストレージ媒体としては、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル・バーサタイル・ディスク、デジタル・ビデオ・テープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがあるが、これらに限定はされない。ハード・ディスク・ドライブ９４１は、典型的には、インターフェース９４０などのような非リムーバブル・メモリ・インターフェースを通じてシステム・バス９２１と接続され、磁気ディスク・ドライブ９５１および光ディスク・ドライブ９５５は、典型的には、インターフェース９５０などのようなリムーバブル・メモリ・インターフェースによりシステム・バス９２１と接続される。
【０１２０】
[00125]  上記で説明したドライブおよびそれらと関連するコンピュータ・ストレージ媒体や図９に示されたものは、コンピューター９１０に関するコンピューター読取可能命令、データー構造、プログラム・モジュール、および他のデーターのストレージを提供する。例えば、図９では、ハード・ディスク・ドライブ９４１は、オペレーティング・システム９４４、アプリケーション・プログラム９４５、他のプログラム・モジュール９４６、およびプログラム・データー９４７を記憶するものとして示している。なお、これらのコンポーネントは、オペレーティング・システム９３４、アプリケーション・プログラム９３５、他のプログラム・モジュール９３６、およびプログラム・データー９３７と同じものである場合も異なるものである場合もある。ここでは、オペレーティング・システム９４４、アプリケーション・プログラム９４５、他のプログラム・モジュール９４６、およびプログラム・データー９４７に対して、このように別の参照番号が付されているが、これは、少なくとも、それらが別のコピーであることを示すためである。ユーザーは、キーボード９６２や、マウス、トラック・ボール、タッチ・パッドなどと呼ばれるポインティング・デバイス９６１などのような入力デバイスを通じて、コマンドおよび情報をコンピューター９１０へ入力する。他の入力デバイス（図に示さず）としては、マイクロフォン、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナなどがある。これらおよび他の入力デバイスは、システム・バスへ結合されたユーザー入力インターフェース９６０を通じて処理ユニット９２０へ接続されることが多いが、パラレル・ポートやゲーム・ポートやユニバーサル・シリアル・バス（ＵＳＢ）などのような他のインターフェースやバス構造により接続することもできる。モニター９９１や他のタイプの表示デバイスも、ビデオ・インターフェース９９０などのようなインターフェースを介してシステム・バス９２１へ接続される。モニターに加えて、コンピューターはまた、スピーカー９９７やプリンター９９６などのような他の周辺出力デバイスを含むこともでき、それらの周辺出力デバイスは、出力周辺機器インターフェース９９５を通じて接続される。
【０１２１】
[00126]  コンピューター９１０は、リモート・コンピューター９８０などのような１以上のリモート・コンピューターへの論理接続（logical connection）を用いるネットワークの環境で、動作することができる。リモート・コンピューター９８０は、パーソナル・コンピュータ、サーバー、ルーター、ネットワークＰＣ、ピア・デバイス、または他のコモン・ネットワーク・ノード（common network node）であり、典型的には、コンピューター９１０に関して説明したエレメントのうちの多くのものまたは全てを含むが、図９では、メモリ・ストレージ・デバイス９８１のみを示している。図９に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）９７１およびワイド・エリア・ネットワーク（ＷＡＮ）９７３を含むが、他のネットワークを含むこともできる。このようなネットワークの環境は、オフィス、エンタープライズ−ワイド・コンピュータ・ネットワーク、イントラネット、およびインターネットにおいて一般的なものである。
【０１２２】
[00127]  ＬＡＮのネットワーク環境で使用する場合、コンピューター９１０は、ネットワーク・インターフェースまたはアダプタ９７０を通じてＬＡＮ９７１へ接続される。ＷＡＮのネットワーク環境で使用する場合、コンピューター９１０は、典型的には、インターネットなどのようなＷＡＮ９７３を介しての通信を確立するために、モデム９７２または他の手段を含む。内蔵または外付けであるモデム９７２は、ユーザー入力インターフェース９６０または他の適切な機構を介して、システム・バス９２１へ接続される。ネットワークの環境では、コンピューター９１０と関連して示されたプログラム・モジュールまたはその一部は、リモート・メモリ・ストレージ・デバイスに記憶される。例として、図９では、リモート・アプリケーション・プログラム９８５がメモリ・デバイス９８１に駐在することを示しているが、これに限定はされない。ここに示されたネットワーク接続が例示であり、コンピューター間で通信リンクを確立するために他の手段を使用できることは、理解されるであろう。
【０１２３】
[00128]  従って、本発明の少なくとも１つの実施形態の幾つかの特徴を説明したが、様々な代替例、変更例、および改善例を構成することが当業者には容易であることを、理解すべきである。
【０１２４】
[00129]  一例として、１つの計算デバイスの観点から通信を説明した。計算デバイスが外部デバイスと通信し、外部デバイスのうちの幾つかが計算デバイスであり得、計算デバイスである外部デバイスがワイヤレス通信のために同様に動作し得ることを、理解すべきである。そのような外部デバイスは、上記のアーキテクチャと同様のアーキテクチャを使用し得る。
【０１２５】
[00130]  別の例として、図３は、複数のインフラストラクチャ・モード・セッションおよびピア・ツー・ピア・モード・セッションでの全ての通信の送信および受信のためにドライバーが１つの無線装置と対話する実施形態を示す。別の実施形態では、複数の無線装置を使用することができる。複数の無線装置を使用する場合でも、１つのドライバーを用いてこれらのドライバーを制御することができる。そのようなドライバーは、１つの無線装置に対してのドライバーと同様に、通信のルーティングおよび順序決めを行う。なお、１つのドライバーとすることが本発明の必要条件ではない。
【０１２６】
[00131]  更に別の例として、図４〜６は、計算デバイスがピア・ツー・ピア・グループの形成を開始するプロセスを示す。他のシナリオも可能であり、ステップの特定のシーケンスや、行われる特定のステップを、異なるものとすることもできる。例えば、計算デバイスは、グループの形成を開始するのではなく、グループへ参加する要求を受信することや、デバイス発見要求やサービス発見要求に応答することもできる。しかし、上記のポート構造は、代替的または追加的に、それらの代替的通信シーケンスをサポートできる。
【０１２７】
[00132]  このような代替例、変更例、および改善例は、ここでの開示の一部であることが意図され、かつ本発明の精神および範囲の中にあることが意図される。従って、上記の説明および図面は、単なる例である。
【０１２８】
[00133]  本発明の上記の実施形態は、様々な方法で実施できる。例えば、実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせにより実施できる。ソフトウェアで実施する場合、ソフトウェア・コードは、１つのコンピューターで提供されるか複数のコンピューター間で分散されて提供されるかにかかわらず、任意の適切なプロセッサーまたはプロセッサーの集合体で実行される。そのようなプロセッサーは、集積回路として実施され、集積回路コンポーネントには１以上のプロセッサーが含まれ得る。なお、プロセッサーは、任意の適切な形式の回路を用いて実施することができる。
【０１２９】
[00134]  更に、コンピューターは、ラック取り付け型コンピューター、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータなどのような多数の形態のうちの任意の形態で実現できることを、理解すべきである。更に、適切な処理能力を有するが通常はコンピューターと見なされないデバイスへ、コンピューターを埋め込むことも可能であり、そのようなデバイスの例としては、パーソナル・デジタル・アシスタント（ＰＤＡ）や、スマートフォンや、他の適切なポータブルまたは固定の電子デバイスなどがある。
【０１３０】
[00135]  また、コンピューターは、１以上の入力および出力デバイスを有する。それらのデバイスは、特に、ユーザ・インターフェースを提示するために使用できる。ユーザ・インターフェースを提供するために使用できる出力デバイスの例としては、出力を視覚的に提示するためのプリンターやディスプレイ、および出力を可聴的に提示するためのスピーカーや他の音生成デバイスがある。ユーザ・インターフェースとして使用できる入力デバイスの例としては、キーボードや、マウス、タッチ・パッド、デジタイジング・タブレットなどのようなポインティング・デバイスがある。別の例として、コンピューターは、音声認識を通じてや他の可聴形態で、入力情報を受信する。
【０１３１】
[00136]  そのようなコンピューターは、例えば、エンタープライズ・ネットワークやインターネットなどのような、ローカル・エリア・ネットワークやワイド・エリア・ネットワークを含む任意の適切な形態の１以上のネットワークにより、相互接続される。そのようなネットワークは、任意の適切な技術に基づくものであり、任意の適切なプロトコルに従って動作するものであり、ワイヤレス・ネットワーク、有線ネットワーク、光ファイバ・ネットワークなどを含む。
【０１３２】
[00137]  また、ここで概説した様々な方法およびプロセスは、様々なオペレーティング・システムやプラットフォームの何れかを用いる１以上のプロセッサーで実行可能なソフトウェアとして、コード化できる。更に、そのようなソフトウェアは、多数の適切なプログラミング言語および／またはプログラム用またはスクリプト用のツールのうちの任意のものを用いて、書くことができる。また、ソフトウェアは、実行可能な機械語コードや、フレームワークや仮想マシンで実行される中間コードとして、コンパイルすることができる。
【０１３３】
[00138]  この点に関して、本発明は、１以上のプログラムによりエンコードされたコンピューター読取可能記録媒体（または複数のコンピュータ読取可能媒体）として実現することができ、そのプログラムは、１以上のコンピューターまたは他のプロセッサーにより実行されたときに、上記の本発明の様々な実施形態を実施する方法を行わせるものである。コンピューター読取可能記録媒体の例としては、コンピュータ・メモリ、１以上のフロッピー（登録商標）・ディスク、コンパクト・ディスク（ＣＤ）、光ディスク、デジタル・ビデオ・ディスク（ＤＶＤ）、磁気テープ、フラッシュ・メモリ、フィールド・プログラマブル・ゲート・アレイや他の半導体デバイスにおける回路構成、他の非一時的で実体的なコンピューター記録媒体などがある。コンピューター読取可能記録媒体（１または複数）は移動可能であり、コンピューター読取可能記録媒体に記憶されたプログラム（１または複数）は、上記の本発明の様々な機能を実施するために、１以上の別のコンピューターや他のプロセッサーへロードすることができる。ここで使用する「非一時的なコンピューター読取可能記録媒体」という用語は、製造品（即ち、製造の物品）または機械として考慮されるコンピューター読取可能媒体のみを含む。代替的または追加的に、本発明は、伝搬信号などのようなコンピューター読取可能記録媒体以外のコンピューター読取可能媒体として実現することができる。
【０１３４】
[00139]  ここでは、「プログラム」や「ソフトウェア」という用語は、一般に、上記の本発明の様々な機能を実施するためにコンピューターや他のプロセッサーをプログラムするために使用できる任意のタイプのコンピュータ・コードやコンピューター実行可能命令の組を示すものとして、使用している。更に、本発明の１つの特徴によると、実行されたときに本発明の方法を行わせる１以上のコンピュータ・プログラムは、必ずしも１つのコンピューターまたはプロセッサーに存在しなくてもよく、本発明の様々な機能を実施するために、モジュールの様式で複数の別のコンピューターまたはプロセッサーへ分散させることもできる、ということを理解すべきである。
【０１３５】
[00140]  コンピューター実行可能命令は様々な形態とすることができ、例えば、１以上のコンピューターまたは他のデバイスにより実行されるプログラム・モジュールの形態とすることができる。一般に、プログラム・モジュールは、特定のタスクを行うためや特定の抽象データー型を実施するためのルーチン、プログラム、オブジェクト、コンポーネント、データー構造などを含む。典型的に、プログラム・モジュールの機能は、様々な実施形態において望まれるように、組み合わせることや分散させることができる。
【０１３６】
[00141]  また、データー構造は、任意の適切な形態でコンピューター読取可能媒体へ記憶することができる。例示を容易にするために、データー構造は、そのデーター構造における位置を通じて関連させられるフィールドを有するものとして、示すことができる。そのような関連は、フィールドのストレージに、コンピューター読取可能媒体における位置を割り当て、フィールド間の関係を運ぶようにすることにより、達成される。しかし、任意の適切な機構を使用して、データー構造のフィールド内の情報の関係を確立することもでき、関係を確立することに関しては、データ・エレメント間の関係を確立するポインタ、タグ、他の機構などを使用することも含む。
【０１３７】
[00142]  本発明の様々な機能は、単独でも、組み合わせでも、上記の実施形態で特定的に説明していない様々な構成でも、使用することができ、従って、本発明の応用は、上記で説明し図面に示したコンポーネントの詳細や構成に制限されるものではない。例えば、１つの実施形態で説明された特徴は、他の実施形態で説明された特徴と、任意の様式で組み合わせることができる。
【０１３８】
[00143]  また、本発明は方法として実現でき、その例は提供している。その方法の一部として行われる動作は、任意の適切な順に行うことができる。従って、実施形態は、例示した順と異なる順で動作を行うように構成することもできる。また、例示した実施形態は動作が順に行われるものとして示しているが、異なる順で動作を行うということには、幾つかの動作を同時に行うことも含まれる。
【０１３９】
[00144]  「第１」、「第２」、「第３」などのような順を表す用語を特許請求の範囲における構成要素を修飾する際に使用している場合、その使用は、或る構成要素の他の構成要素に対しての優先順位、優先度、順位や、方法の動作が行われる時間的順序を意味するものではなく、単に、構成要素を区別するため、即ち、或る名前の或る構成要素を、それと同じ名前の別の構成要素と区別するためのラベルとして使用している（ただし、順を表す用語として使用する場合は除く）。
【０１４０】
[00145]  また、ここで用いられた文体や用語は説明を目的としたものであり、限定と見なすべきではない。「含む」、「備える」、「有する」、「内包する」、「伴う」およびこれらの用語が変化した形の用語は、それらの前に記載した項目やその項目の等価物や追加の項目を含むことを意味する。
【図１】
0005980805.tif 000003
【図２】
0005980805.tif 000004
【図３】
0005980805.tif 000005
【図４】
0005980805.tif 000006
【図５】
0005980805.tif 000007
【図６】
0005980805.tif 000008
【図７】
0005980805.tif 000009
【図８】
0005980805.tif 000010
【図９】
0005980805.tif 000011