(57)【要約】【課題】ノードのＬ２ＣＡＰチャネルの生成／構成を簡略化するための技法を提供すること。【解決手段】ノードがＬ２ＣＡＰチャネル接続の生成および管理プロセスに、ノードがどのように関わるかを判別できるようにする。ノードが指定できる関与の３つのレベルは、無関係、最低の関係および完全な関係である。無関係の場合、リモートノードがパラメータを指定されたすべてのノードを受け入れない場合に、チャネルはドロップされる。最低の関係の場合、リモートノードがパラメータを指定されたすべてのノードを受け入れない場合に、チャネルはドロップされ、リモート切断またはＨＣＩリンク損失によって接続が切断されるとノードに通知する。完全な関係の場合、ノードはチャネルの作成／構成に全面的に関わる。パラメータが受入れ不能の場合、接続は切断される。【選択図】　　　　図４ｃ
2004048743.tif 000002
【特許請求の範囲】
【請求項１】
ノードの論理リンク制御および適応プロトコル（Ｌ２ＣＡＰ）チャネルを実装する方法であって、
ノードがＬ２ＣＡＰチャネルを実装するために無関係、最低の関係、および完全な関係のいずれか１つを指定したかを判別するステップと、
無関係、最低の関係または完全な関係のいずれか１つに従ってＬ２ＣＡＰチャネルを実装するステップと
を備えたことを特徴とする方法。
【請求項２】
前記Ｌ２ＣＡＰチャネルを実装するステップは、インバウンド要求およびアウトバウンド要求のパラメータを前記ノードから受信することを含み、前記パラメータは、最小伝送ユニットサイズ、最大伝送ユニットサイズ、最小フラッシュタイムアウト、最大フラッシュタイムアウト、サービス品質設定、およびリンクタイムアウトの少なくとも１つを含み、前記方法は、
前記パラメータを有する構成要求をリモートノードに送信するステップと、
前記リモートノードからリモート構成要求を受信するステップと、
無関係、最低の関係または完全な関係のいずれか１つに従って前記リモート構成要求に応答するステップと、
前記リモートノードが前記パラメータを受け入れた場合に、前記Ｌ２ＣＡＰチャネルを開くステップを含むステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記リモート構成要求に応答するステップは、前記ノードが無関係を指定し、前記リモートノードが前記構成応答において前記構成要求を変更した場合に、前記Ｌ２ＣＡＰチャネルをドロップすることを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記リモートノードが前記Ｌ２ＣＡＰチャネルを再構成するためにリモート構成要求を送信する場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップをさらに備えたことを特徴とする請求項３に記載の方法。
【請求項５】
前記リモート構成要求が少なくとも１つのカスタムパラメータを含む場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップをさらに備えたことを特徴とする請求項３に記載の方法。
【請求項６】
前記ノードが最低の関係を指定した場合に、関数ポインタを受信するステップと、
前記Ｌ２ＣＡＰ接続の１つが切断され、ホスト・コントローラ・インタフェース（ＨＣＩ）リンクが失われた場合に、前記関数ポインタを呼び出すステップと
をさらに備えたことを特徴とする請求項２に記載の方法。
【請求項７】
前記構成応答に応答する前記ステップは、前記ノードが最低の関係を指定し、前記リモートノードが前記構成要求の少なくとも１つの設定を受け入れなかった場合に、前記Ｌ２ＣＡＰチャネルをドロップすることをさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記リモートノードの１つが、リモート構成要求を送信して前記Ｌ２ＣＡＰチャネルを再構成し、構成応答が少なくとも１つのカスタムパラメータを含む場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップをさらに備えたことを特徴とする請求項６に記載の方法。
【請求項９】
前記Ｌ２ＣＡＰチャネルを実装するステップは、インバウンド要求およびアウトバウンド要求のパラメータを前記ノードから受信するステップを含み、前記パラメータは、最小伝送ユニットサイズ、最大伝送ユニットサイズ、最小フラッシュタイムアウト、最大フラッシュタイムアウト、サービス品質設定、およびリンクタイムアウトの少なくとも１つを含み、前記方法は、
前記パラメータを有する構成要求をリモートノードに送信するステップと、
前記リモートノードから構成応答を受信するステップと、
前記リモートノードからリモート構成要求を受信するステップと、
前記ノードが完全な関係を指定した場合に、
前記ノードから関数ポインタを受信するステップと、
前記リモートノードが前記パラメータの少なくとも１つを変更した場合に、前記パラメータの少なくとも１つへの前記変更が、前記ノードによって受け入れられるか拒否されるかを判別するために前記関数ポインタを呼び出すステップと、
前記ノードが前記パラメータの少なくとも１つへの前記変更を受け入れた場合に、前記Ｌ２ＣＡＰチャネルを開くステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１０】
インバウンド要求およびアウトバウンド要求のパラメータを前記ノードから受信するステップは、好ましい伝送ユニットサイズおよび好ましいフラッシュタイムアウトの少なくとも１つを受信することを含み、前記パラメータを有する構成要求をリモートノードに送信するステップは、前記好ましい伝送ユニットサイズおよび前記好ましいフラッシュタイムアウトの少なくとも１つを送信することを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記関数ポインタを呼び出す前記ステップは、前記パラメータの少なくとも１つが前記ノードによって受け入れられるか拒否されるかを前記ノードに通知するための指示を提供することを含むことを特徴とする請求項９に記載の方法。
【請求項１２】
未知のオプションおよびカスタムオプションのいずれか１つが前記リモートノードから受信された場合に、リモート構成要求指示を備えた前記関数ポインタを呼び出すステップをさらに備えたことを特徴とする請求項９に記載の方法。
【請求項１３】
通常でない前記リモートノードから応答が受信された場合に、リモート構成応答指示とともに前記関数ポインタを呼び出すステップをさらに備えたことを特徴とする請求項９に記載の方法。
【請求項１４】
前記ノードが前記パラメータの少なくとも１つへの変更を拒否した場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップをさらに備えたことを特徴とする請求項９に記載の方法。
【請求項１５】
ノードの論理リンク制御および適応プロトコル（Ｌ２ＣＡＰ）チャネルを実装するためのコンピュータ実行可能命令を有するコンピュータ読取り可能媒体であって、前記コンピュータ実行可能命令は、
ノードがＬ２ＣＡＰチャネルを実装するために無関係、最低の関係、および完全な関係のいずれか１つを指定したかを判別するステップと、
インバウンド要求およびアウトバウンド要求のパラメータを前記ノードから受信するステップであって、前記パラメータは、最小伝送ユニットサイズ、最大伝送ユニットサイズ、最小フラッシュタイムアウト、最大フラッシュタイムアウト、サービス品質設定、およびリンクタイムアウトの少なくとも１つを含むステップと、
前記パラメータを有する構成要求をリモートノードに送信するステップと、
前記リモートノードから構成応答を受信するステップと、
前記リモートノードからリモート構成要求を受信するステップと、
無関係、最低の関係または完全な関係のいずれか１つに従って前記リモート構成要求に応答するステップと、
前記リモートノードが前記パラメータを受け入れた場合に、前記Ｌ２ＣＡＰチャネルを開くステップと
を実行することを特徴とするコンピュータ読取り可能媒体。
【請求項１６】
インバウンド要求およびアウトバウンド要求のパラメータを前記ノードから受信するステップは、好ましい伝送ユニットサイズおよび好ましいフラッシュタイムアウトの少なくとも１つを受信することを含み、前記パラメータを有する構成要求をリモートノードに送信するステップは、前記好ましい伝送ユニットサイズおよび前記好ましいフラッシュタイムアウトの少なくとも１つを送信することを含むことを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【請求項１７】
前記ノードが無関係を指定した場合に、
前記リモートノードが前記構成応答において前記構成要求を変更した場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップと、
前記リモートノードがリモート構成要求を送信して前記Ｌ２ＣＡＰチャネルを再構成する場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップと、
前記リモート構成要求が少なくとも１つのカスタムパラメータを含む場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップと
をさらに備えたステップを実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【請求項１８】
前記ノードが最低の関係を指定した場合に、
関数ポインタを受信するステップと、
前記Ｌ２ＣＡＰ接続が切断された場合に、リモート切断指示とともに前記関数ポインタを呼び出すステップと
を備えたステップを実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【請求項１９】
前記ノードが最低の関係を指定した場合に、
前記リモートノードが前記構成要求の少なくとも１つの設定を受け入れなかった場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップと、
前記リモートノードがリモート構成要求を送信して前記Ｌ２ＣＡＰチャネルを再構成する場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップと、
前記リモート構成要求が少なくとも１つのカスタムパラメータを含む場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップと
を備えたステップを実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項１８に記載のコンピュータ読取り可能媒体。
【請求項２０】
前記ノードが完全な関係を指定した場合に、
関数ポインタを受信するステップと、
前記リモートノードが前記パラメータの少なくとも１つを変更した場合に、
前記パラメータの少なくとも１つへの前記変更が前記ノードによって受け入れられるか拒否されるかを判別するために前記関数ポインタを呼び出すステップと、
前記ノードが前記パラメータの少なくとも１つへの前記変更を受け入れた場合に、前記Ｌ２ＣＡＰチャネルを開くステップと
を備えたステップを実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【請求項２１】
前記ノードが完全な関係を指定した場合に、
関数ポインタを受信するステップと、
前記Ｌ２ＣＡＰチャネルが開かれた後に、前記リモートノードが新しいリモート構成要求を送信した場合に、
前記Ｌ２ＣＡＰチャネルにおいてデータの読取りおよびデータの書込みの少なくとも１つを停止するステップと、
前記新しいリモート構成要求が着信したことを前記ノードに通知するため、および前記パラメータの少なくとも１つが前記ノードによって拒否されるか否かを判別するために、前記関数ポインタを呼び出すステップと、
前記パラメータの少なくとも１つが前記ノードによって拒否される場合に、前記パラメータの少なくとも１つの各々について改訂されたパラメータとともにリモート構成応答を前記リモートノードに送信するステップと、
前記リモートノードが前記改訂されたパラメータを受け入れる場合に、前記改訂されたパラメータとともに、前記Ｌ２ＣＡＰチャネルにおいてデータの読取りおよびデータの書込みの少なくとも１つを実行するステップと
を備えたステップを実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【請求項２２】
前記パラメータの１つが前記ノードに受入れ可能でない場合に、前記Ｌ２ＣＡＰチャネルを切断することを含むステップを実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項２１に記載のコンピュータ読取り可能媒体。
【請求項２３】
前記ノードが完全な関係を指定した場合に、
関数ポインタを受信するステップと、
前記Ｌ２ＣＡＰ接続の１つが切断された場合に、およびＨＣＩリンクが失われた場合に、リモート切断指示とともに前記関数ポインタを呼び出すステップとを備えたステップを実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【請求項２４】
前記ノードが完全な関係を指定した場合に、
関数ポインタを受信するステップと、
カスタムパラメータが受信された場合に、
リモート構成要求指示とともに前記関数ポインタを呼び出すステップと、
前記カスタムパラメータが受け入れられるか、取り決められるか、または拒否されるかを示す応答を前記リモートノードから受信するステップと、
前記カスタムパラメータが拒絶された場合に、前記Ｌ２ＣＡＰチャネルをドロップするステップと、
前記カスタムパラメータが取り決められる場合に、前記カスタムパラメータを取り決めるステップと
を備えたステップを実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【請求項２５】
クライアントドライバとＬ２ＣＡＰオブジェクトとの間で通信する方法であって、イベントの外部ドライバに通知するための少なくとも１つの指示を有する関数ポインタを呼び出すステップを備えたことを特徴とする方法。
【請求項２６】
前記少なくとも１つの指示は、
前記クライアントドライバが、構成要求において受信された未知のオプションを取り決めることができるようにするためのリモート構成要求指示と、
前記クライアントドライバが、未知の応答パラメータが何を意味するのかを判別できるようにするためのリモート構成応答指示と
を含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記少なくとも１つの指示は、
リモートノードが、Ｌ２ＣＡＰ接続を確立しようとしていることを前記クライアントドライバに通知するためのリモート接続指示と、
前記リモートノードが、前記Ｌ２ＣＡＰ接続の切断を要求したことを前記クライアントドライバに通知するためのリモート切断指示と
をさらに含むことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記少なくとも１つの指示は、特別オプションのリソースを解放することを前記クライアントドライバに通知するための特別オプション解放指示をさらに含むことを特徴とする請求項２７に記載の方法。
【請求項２９】
ノードの論理リンク制御および適応プロトコル（Ｌ２ＣＡＰ）チャネルを実装するためのコンピュータ実行可能命令を有するコンピュータ読取り可能媒体であって、前記コンピュータ実行可能命令は、
前記ノードから受入れ可能な接続パラメータの範囲を受信するステップと、
前記受入れ可能な接続パラメータの範囲に従って前記Ｌ２ＣＡＰチャネルを実装するステップと
を実行することを特徴とするコンピュータ読取り可能媒体。
【請求項３０】
前記受入れ可能な接続パラメータの範囲からのパラメータセットを有する構成要求をリモートノードに送信するステップと、
前記リモートノードから構成応答を受信するステップと、
前記受入れ可能なパラメータの範囲に従って、前記リモート構成要求に応答するステップと、
前記リモートノードが前記パラメータセットを受け入れた場合に、前記Ｌ２ＣＡＰチャネルを開くステップと
を備えたステップを実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項２９に記載のコンピュータ読取り可能媒体。
【請求項３１】
前記ノードから関数ポインタを受信するステップと、
前記Ｌ２ＣＡＰチャネルの１つが切断され、ＨＣＩリンクが失われた場合に、前記関数ポインタを呼び出すステップと
を備えたステップを実行するコンピュータ実行可能命令をさらに含むことを特徴とする請求項２９に記載のコンピュータ読取り可能媒体。
【請求項３２】
前記受入れ可能なパラメータの範囲は、前記ノードからのインバウンド要求およびアウトバウンド要求のパラメータを含み、前記パラメータは、最小伝送ユニットサイズ、最大伝送ユニットサイズ、最小フラッシュタイムアウト、最大フラッシュタイムアウト、サービス品質設定、およびリンクタイムアウトの少なくとも１つを含み、
前記パラメータを有する構成要求をリモートノードに送信するステップと、
前記リモートノードから構成応答を受信するステップと、
前記リモートノードからリモート構成要求を受信するステップと、
前記ノードが完全な関係を指定した場合に、
前記ノードから関数ポインタを受信するステップと、
前記リモートノードが前記パラメータの少なくとも１つを変更した場合に、
前記パラメータの少なくとも１つへの前記変更が、前記ノードによって受け入れられるか拒絶されるかを判別するために前記関数ポインタを呼び出すステップと、
前記ノードが前記パラメータの少なくとも１つへの変更を受け入れた場合に、前記Ｌ２ＣＡＰチャネルを開くステップと
を備えたステップを実行するコンピュータ実行可能命令をさらに含むことを特徴とする請求項２９に記載のコンピュータ読取り可能媒体。
【請求項３３】
前記インバウンド要求およびアウトバウンド要求のパラメータは、好ましい伝送ユニットサイズおよび好ましいフラッシュタイムアウトの少なくとも１つを含むことを特徴とする請求項３２に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的には、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ（登録商標））デバイス間の通信に関し、より詳細には、論理リンク制御および適応プロトコル（ｌｏｇｉｃａｌ　ｌｉｎｋ　ｃｏｎｔｒｏｌ　ａｎｄ　ａｄａｐｔａｔｉｏｎ　ｐｒｏｔｏｃｏｌ）チャネルの構成に関する。
【０００２】
【従来の技術】
今日の市場には、かなりの数の無線技術がある。近距離無線技術の標準の１つにブルートゥースと呼ばれるものがある。ブルートゥースは、近距離、１対多の音声およびデータ転送の無線周波（ＲＦ）仕様である。ブルートゥースは、固体の非金属物体を通じての伝送が可能である。公称の接続範囲は、１０ｃｍから１０ｍであるが、伝送パワーを上げることにより、この範囲を１００ｍまで拡張することができる。低コスト、近距離無線リンクに基づいて、固定および移動通信環境のアドホック接続を容易にする。
【０００３】
ユーザは、ブルートゥース無線技術を使用して、移動電話などの通信デバイスと、デスクトップおよびノート型コンピュータとの間を接続することができる。移動コンピューティングデバイスの急増に見られるような無線技術のたゆまぬ成長により、また、無線技術とコンピュータ技術の併合により、これら環境においてサービスを見つけて通信することがますます重要になりつつある。これらサービスは、印刷、ファックス送信、ページングなどの基本サービス、ビデオ会議および電話会議などのより複雑なサービス、ならびにサービスプロバイダが提供可能な任意の他の種類のサービスを含むことができる。
【０００４】
Ｂｌｕｅｔｏｏｔｈ　ＳＩＧ（Ｓｐｅｃｉａｌ　Ｉｎｔｅｒｅｓｔ　Ｇｒｏｕｐ）は、様々なデバイス間の相互運用性を保証するプロトコルを規定する。これらのプロトコルの１つに、論理リンク制御および適応プロトコル（以下、Ｌ２ＣＡＰという）である。Ｌ２ＣＡＰは、複数のプロトコルおよびアプリケーションが単一のブルートゥースＲＦ接続を介して共存できるようにする。Ｌ２ＣＡＰは、高位プロトコルへのコネクション型およびコネクションレス型のデータサービスと、プロトコル多重化機能と、パケットのセグメンテーションおよびリアセンブリ・オペレーションと、サービス品質情報の搬送とを提供する。
【０００５】
Ｌ２ＣＡＰチャネルの構成は、非常に扱いにくくエラーを起こしやすい、２つのピアＬ２ＣＡＰエンティティ間の反復ネゴシエーション・プロセスを含む。ネゴシエーション・プロセスは、一方のピアが他方のピアに構成要求を送信すると開始する。構成要求は、接続パラメータに関する要求側ピアの所望の設定を含む。受信側ピアは、構成応答で構成要求に応答する。応答は、どの設定が受け入れられて、どの設定が拒否されたかを、要求側ピアに通知する。設定が拒否された場合に、受信側ピアが受け入れようとする設定が応答に含められる。要求側ピアは、受信側ピアがどの設定を受け入れて、どの設定を拒否したかを判別する。要求側ピアは、受け入れられなかった設定について、それ自体のパラメータの選択肢とともに他の構成要求を送信する。この構成プロセスは、すべての設定が取り決められるか、またはピアの１つがチャネルをドロップするまで続けられる。
【０００６】
【発明が解決しようとする課題】
チャネルがいったん確立されると、いずれかのピアは、チャネルを再構成することができる。そのためには、ピアは、データの送信を停止し（すなわち読取りおよび書込みを停止し）、チャネルの構成で使用された同じプロセスを使用してチャネルの設定を再度取り決める必要がある。構成および再構成プロセスのためには、ピアがチャネルの状態を維持し、エラーを処理し、反復ネゴシエーションを処理する必要がある。結果として、コードの増加により、Ｌ２ＣＡＰチャネルを使用する各ノード（例えば、アプリケーション、オブジェクト、モジュールなど）の複雑さは増加し、ノードの信頼性は低下する。
【０００７】
本発明の目的は、ノードが、リモートデバイスとのＬ２ＣＡＰチャネル接続の生成および管理プロセスにおいて、ノードがどのように関わるかを判別できるようにして、Ｌ２ＣＡＰチャネル構成プロセスを簡略化することにある。
【０００８】
【課題を解決するための手段】
ノードが指定できる関与には３つのレベルがある。３つのレベルは、全てに無関係（ｎｏ　ｉｎｖｏｌｖｅｍｅｎｔ）、最低の関係（ｍｉｎｉｍａｌ　ｉｎｖｏｌｖｅｍｅｎｔ）、および完全な関係（ｔｏｔａｌ　ｉｎｖｏｌｖｅｍｅｎｔ）である。Ｌ２ＣＡＰチャネルは、選択された関与のレベルに従って実装される。
【０００９】
ノードは、それぞれのレベルで、対応するノードの予想に応じて、結果として接続されるかまたはされないことになる特定のパラメータを設定することができる。無関係レベルにおいて、ノードは、受入れ可能な最小および最大の伝送ユニットと、最小および最大のフラッシュタイムアウトと、ＱｏＳ（Ｑｕａｌｉｔｙ　ｏｆ　Ｓｅｒｖｉｃｅ）と、リンクタイムアウトとを指定することができる。リモートノードが任意の他の構成パラメータのＬ２ＣＡＰ接続を拒絶するか、または構成要求においてＱｏＳを指定すると、Ｌ２ＣＡＰ接続は終了する。リモートノードがＬ２ＣＡＰチャネルを再構成しようとした場合も、Ｌ２ＣＡＰチャネルは終了する。
【００１０】
最低の関係レベルにおいて、ノードは、無関係レベルの場合と同じパラメータを指定する。Ｌ２ＣＡＰチャネルは、無関係レベルの場合と同じ理由で終了する。ノードは、リモートの段階的切断（ｇｒａｃｅｆｕｌ　ｄｉｓｃｏｎｎｅｃｔ）またはＨＣＩリンクの突然の損失のいずれかによる切断時に呼び出される関数ポインタを提供する。Ｌ２ＣＡＰチャネルは、Ｌ２ＣＡＰチャネルが開かれた後に、リモートノードからの構成要求が受信されると終了する。
【００１１】
完全な関係レベルでは、ノードは、無関係レベルの場合と同じパラメータおよびノードが必要とする任意の追加パラメータを指定する。ノードは、構成段階に呼び出される関数ポインタを提供し、様々な段階で構成パラメータを確認または拒否する。リモートノードからの再構成要求が受け入れられ、ノードは関数ポインタを介して再構成プロセスに関わる。構成応答またはリモート構成応答のいずれかが、ＱｏＳパラメータおよび／またはカスタムパラメータを含む場合に、ノードの関数ポインタが呼び出される。いつでも構成パラメータが受入れ不可能であれば、ノードは障害コードを戻し、接続は終了する。
【００１２】
本発明の追加の特徴および利点は、添付の図面を参照しながら進めていく例示的実施形態の以下の詳細な説明から明らかになろう。
【００１３】
【発明の実施の形態】
特許請求の範囲は、本発明の特徴を具体的に述べるものであるが、本発明ならびにその目的および利点は、添付の図面と共に説明する以下の詳細な記述から最も良く理解することができる。
【００１４】
上述のように、Ｌ２ＣＡＰチャネルの接続および構成は、非常に扱いにくくエラーを起こしやすい、２つのＬ２ＣＡＰエンティティ間の反復ネゴシエーション・プロセスを含む。本発明は、非常に複雑なネゴシエーションが最小限になるかまたは解消されるように、ドライバ／デバイスが所望の接続のみを要求して入手できるようにすることにより、Ｌ２ＣＡＰ接続および構成プロセスを簡略化する。これによって、開発者が、ブルートゥース機能をドライバ／デバイスに組み込むために必要なコードが簡略化され、エラーが発生する可能性が減少する。
【００１５】
図面を見ると、同じ参照番号は同じ要素を表しており、好適なコンピューティング環境での本発明の実施が示されている。必須ではないが、本発明について、プログラムモジュールなどのコンピュータ実行可能命令が、パーソナルコンピュータによって実行される、一般的な文脈で説明する。一般的に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実行する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。さらに当分野の技術者であれば、本発明が、ハンドヘルドデバイス、ワイヤレスデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成でも実施可能であることを理解されよう。さらに本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境でも実施可能である。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートのどちらのメモリ記憶デバイスにも配置することができる。
【００１６】
図１は、本発明が実施可能な好適なコンピューティングシステム環境１００の一例を示す図である。コンピューティングシステム環境１００は、好適なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に関して、どのような制限も提案することを意図するものではない。さらに、コンピューティング環境１００は、例示的オペレーティング環境１００に示されたいずれか１つの構成要素またはいずれかの構成要素の組合せに関して、どんな依存関係または要件をも有するものと解釈されるべきでない。
【００１７】
本発明は、多数の他の汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明と共に使用するのに好適なよく知られたコンピューティングシステム、環境、および／または構成の例には、これらに限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、ワイヤレスデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能家庭電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、任意の上記システムまたはデバイスを含む分散コンピューティング環境などが含まれる。
【００１８】
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般的に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実行する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。さらに本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境でも実施可能である。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶デバイスを含むローカルおよびリモートのどちらのコンピュータ記憶媒体にも配置することができる。
【００１９】
図１を参照すると、本発明を実施するための例示的システムは、コンピュータ１１０の形式の汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素は、これらに限定されないが、処理ユニット１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステム構成要素を処理ユニット１２０に結合するシステムバス１２１を含む。システムバス１２１は、メモリバスまたはメモリ制御装置、周辺バス、および多様なバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかの種類のバス構造のいずれであってもよい。例を挙げると、こうしたアーキテクチャは、これらに限定されないが、ＩＳＡ（Ｉｎｄｕｓｔｒｙ　Ｓｔａｎｄａｒｄ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ　Ｃｈａｎｎｅｌ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ　ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｓｔａｎｄａｒｄｓ　Ａｓｓｏｃｉａｔｅ）ローカルバス、およびメザニンバスとしても知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを含む。
【００２０】
コンピュータ１１０は、典型的には、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ１１０がアクセス可能な任意の使用可能媒体であってよく、揮発性および不揮発性、取外し可能および取外し不能の、両方の媒体を含む。例を挙げると、これらに限定されないが、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実施された、揮発性および不揮発性、取外し可能および取外し不能の両方の媒体を含む。コンピュータ記憶媒体は、これらに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ　ｖｅｒｓａｔｉｌｅ　ｄｉｓｋ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは、所望の情報を格納するのに使用可能でありコンピュータ１１０がアクセス可能な任意の他の媒体を含む。通信媒体は、典型的には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送メカニズムなどの変調データ信号で具体化するものであり、任意の情報送達媒体を含む。「変調データ信号」という用語は、その特性の１または複数が、信号内の情報を符号化する方法で設定または変更された信号を意味する。例を挙げると、通信媒体は、これらに限定されないが、ワイヤードネットワークまたはダイレクトワイヤード接続などのワイヤード媒体、音声、ＲＦ、赤外線、および他のワイヤレス媒体などのワイヤレス媒体を含む。上記のいずれかの組合せも、コンピュータ読取り可能媒体の範囲内に含まれるものとする。
【００２１】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの、揮発性および／または不揮発性メモリ形式のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間での情報転送を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）は、典型的にはＲＯＭ１３１に格納される。ＲＡＭ１３２は、典型的には、処理ユニット１２０によって即時アクセス可能であり、および／または現在動作中の、データおよび／またはプログラムモジュールを含む。例を挙げると、これらに限定されないが、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２２】
コンピュータ１１０は、他の取外し可能／取外し不能、揮発性／不揮発性のコンピュータ記憶媒体を含むこともできる。例を挙げると、図１には、取外し不能の不揮発性磁気媒体からの読取りまたはこれへの書込みを行うハードディスクドライブ１４１と、取外し可能な不揮発性磁気ディスク１５２からの読取りまたはこれへの書込みを行う磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭまたは他の光媒体などの取外し可能な不揮発性光ディスク１５６からの読取りまたはこれへの書込みを行う光ディスクドライブ１５５とが示されている。例示的なオペレーティング環境で使用可能な他の取外し可能／取外し不能、揮発性／不揮発性のコンピュータ記憶媒体は、これらに限定されないが、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどを含む。ハードディスクドライブ１４１は、典型的には、インターフェース１４０などの取外し不能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、典型的にはインターフェース１５０などの取外し可能メモリインターフェースによってシステムバス１２１に接続される。
【００２３】
上述および図１に示されたドライブおよびそれらに関連付けられたコンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、およびコンピュータ１１０に関する他のデータの記憶装置を提供する。例えば図１では、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納しているように図示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであっても異なってもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、最小の範囲で異なるコピーであることを示すために異なる番号が与えられている。ユーザは、キーボード１６２および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１などの入力デバイスを介して、コンピュータ１１０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用アンテナ、スキャナなどが含まれる。これらおよび他の入力デバイスは、システムバスに結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されるが、パラレルポート、ゲームポート、またはＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）などの、他のインターフェースおよびバス構造によって接続することもできる。モニタ１９１または他のタイプのディスプレイデバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。コンピュータは、モニタに加えて、スピーカ１９７およびプリンタ１９６などの他の周辺出力デバイスを含むことが可能であって、これらは出力周辺インターフェース１９５を介して接続可能である。
【００２４】
コンピュータ１１０は、リモートコンピュータ１８０などの１または複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作可能である。リモートコンピュータ１８０は、他のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードであってよく、図１にはメモリ記憶デバイス１８１のみが示されているが、典型的には、パーソナルコンピュータ１１０に関して上述した要素の多くまたはすべてを含む。図１に示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。こうしたネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットで普及している。
【００２５】
ＬＡＮネットワーク環境で使用される場合には、パーソナルコンピュータ１１０はネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用される場合には、コンピュータ１１０は、典型的にはモデム１７２、またはインターネットなどのＷＡＮ１７３を介した通信を確立するための他の手段を含む。モデム１７２は、内蔵型でも外付けでもよく、ユーザ入力インターフェース１６０または他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク環境では、パーソナルコンピュータ１１０に関して示されたプログラムモジュールまたはその一部を、リモートメモリ記憶デバイスに格納することができる。例を挙げると、これに限定されないが、図１は、リモートアプリケーションプログラム１８５がメモリデバイス１８１に常駐しているように示している。図示されたネットワーク接続は、例示的なものであり、コンピュータ間の通信リンクを確立する他の手段が使用可能であることを理解されよう。
【００２６】
以下の説明では、特に指示がない限り、本発明について１または複数のコンピュータによって実行される動作およびオペレーションの記号表現を参照しながら説明する。したがって、こうした動作およびオペレーションは、コンピュータの実行に従って時間の経過と共に説明され、構造化形式でデータを表す電気信号のコンピュータの処理ユニットによる操作を含む。この操作は、データを変換するか、またはコンピュータのメモリシステム内の位置に維持し、これが当分野の技術者によく理解された方法でコンピュータのオペレーションを再構成するか、またはそうでなければ変更する。データが維持されるデータ構造は、データのフォーマットによって定義された特定のプロパティを有するメモリの物理位置である。ただし、本発明は、上述の文脈で説明しているが、これは限定的なものではなく、当分野の技術者であれば理解されるように、以下で説明する様々な動作およびオペレーションはハードウェア内でも実施可能である。
【００２７】
図２は、ブルートゥースプロトコルスタックを構成するいくつかの構成要素および本発明の構成要素の相互関係を示す図である。プロトコルスタックは、Ｌ２ＣＡＰレイヤ２０２、ホスト・コントローラ・インタフェース（以下、ＨＣＩ：Ｈｏｓｔ　Ｃｏｎｔｒｏｌｌｅｒ　Ｉｎｔｅｒｆａｃｅという）レイヤ２０４、ベースバンド２０６、リンクマネージャ２０８、無線レイヤ２１０、ＳＤＰレイヤ２１２、およびＲＦＣＯＭＭレイヤ２１４を含む。プロトコルスタックは、Ｌ２ＣＡＰ上で動作可能な他のノードも含む。例えば、ノードは、ヒューマンインターフェースデバイス２１６、パーソナルエリアネットワーク２１８、プリンタオブジェクトなどを含むことができる。アプリケーション２２０は、ブルートゥースプロトコルスタックを介して他のアプリケーションと通信する。
【００２８】
Ｌ２ＣＡＰ２０２は、高位プロトコルへのコネクション型およびコネクションレス型のデータサービスと、プロトコル多重化機能と、パケットのセグメンテーションおよびリアセンブリ・オペレーションと、サービス品質情報の搬送とを提供する。ＨＣＩレイヤ２０４は、無線モジュールとホストとの間で使用される共通インターフェースである。ＨＣＩレイヤ２０４は、ブルートゥース仕様によって規定されるものではなく、無線モジュール（すなわち無線２１０、ベースバンド２０６およびＬＭＰ２０８）とホスト（すなわちＬ２ＣＡＰ２０２、ＳＤＰ２１２およびＲＦＣＯＭＭ２１４）とが、別々に実施される場合にのみ使用される。
【００２９】
ベースバンド２０６は、ＨＣＩレイヤ２０４と無線レイヤ２１０との間でデータおよび制御メッセージを渡す。リンクマネージャ２０８は、ベースバンド２０６を制御する。無線レイヤ２１０は、ベースバンドレイヤから受け取るパターンおよび周波数命令に従って、ビットを送信および受信する。ＳＤＰ２１２は、サービスの告示および開示プロトコルである。ＲＦＣＯＭＭ２１４は、レガシー・アプリケーションをサポートする際に、ポイントツーポイントＲＳ−２３２シリアルエミュレーションを提供する。
【００３０】
次に図３に進むと、Ｌ２ＣＡＰチャネルを接続および構成するためのステップが示されている。ノードの接続を確立するために、接続要求が送信される（ステップ３００）。本明細書で使用されるノードとは、Ｌ２ＣＡＰ２０２上で動作し、接続要求を開始する、任意のプロトコル、オブジェクト、モジュールなどを意味する。接続応答が受信される（ステップ３０２）。接続応答は、接続が成功したか否か（ステップ３０４）、保留中であるか否か（ステップ３０６）、または拒絶されたか否か（ステップ３０８）を判別するための情報を提供する。接続が保留中の場合には、クライアントは接続が成功するまで待機する。リモートノード（例えば、接続要求の受入れ側であるノード）上で接続を確立するために、リモートノードは、接続要求を待ち、接続が成功、保留または拒絶されたか否かを通知するために接続応答を返信する。
【００３１】
接続が成功すると、受入れ可能なパラメータ値の範囲が、ノードから受信される（ステップ３１０）。パラメータ値は、接続要求が送信される前に受信できることに留意されたい。パラメータ値は、受入れ可能な最小および最大の伝送ユニットと、最小および最大のフラッシュタイムアウトと、ＱｏＳと、リンクタイムアウトとを含むことができる。パラメータは、インバウンドデータおよびアウトバウンドデータについて指定される。伝送ユニットは、ノードが送信または受信できるペイロードサイズを指定する。フラッシュタイムアウトは、ノードが、パケットをフラッシングする前にＬ２ＣＡＰパケットを首尾よく伝送しようと試みる時間を、リモートノードに通知する。ノードは、最小および最大のパラメータ値に加えて、受入れ可能なパラメータ値の範囲内で好ましい値を指定することもできる。例えば、ノードは、最小伝送ユニット値を１００、好ましい伝送ユニット値を６７２、最大伝送ユニット値を１０００に指定することができる。Ｌ２ＣＡＰレイヤは、可能であればいつでも好ましい値を取り決めるよう試みる。
【００３２】
Ｌ２ＣＡＰチャネルのネゴシエーションは、Ｌ２ＣＡＰレイヤ２０２がリモートＬ２ＣＡＰレイヤに構成要求を送信すると開始する（ステップ３１２）。構成要求は、ノードが受け入れることになる要求パスについての非デフォルトパラメータをリモートノードに通知する。パラメータは、ノードが受け入れることになる、ノードの着信伝送ユニット、発信フラッシュタイムアウト、および発信ＱｏＳを含む。Ｌ２ＣＡＰレイヤ２０２は、リモートＬ２ＣＡＰレイヤから構成応答を受信する（ステップ３１４）。構成応答は、リモートノードがどのパラメータ値を受け入れたか、または受け入れていないかをノードに通知する。典型的なネゴシエーション・プロセスでは、Ｌ２ＣＡＰレイヤがすべての値に一致するまでステップ３１２および３１４が繰り返される。リモートＬ２ＣＡＰレイヤからリモート構成要求が受信される（ステップ３１６）。リモート構成要求は、リモートノードが受け入れることになる応答パスの非デフォルトパラメータをノードに通知する。パラメータは、リモートノードが受け入れることになる、リモートノードの着信伝送ユニット、発信フラッシュタイムアウト、および発信ＱｏＳを含む。Ｌ２ＣＡＰレイヤは、リモートＬ２ＣＡＰレイヤにリモート構成応答を送信する（ステップ３１８）。リモート構成応答は、ノードがどのパラメータ値を受け入れたか、または受け入れていないかをリモートノードに通知する。典型的には、Ｌ２ＣＡＰレイヤがすべての値に一致するまでステップ３１６および３１８が繰り返される。リモート構成要求は、構成要求が送信される前に受信可能であることに留意されたい。
【００３３】
Ｌ２ＣＡＰチャネルが構成されると、Ｌ２ＣＡＰチャネルが開く（ステップ３２０）。データの読取りおよび書込みが行われる。ＨＣＩリンクの損失が生じたとき、リモートノードがＬ２ＣＡＰチャネルを切断したとき、またはノードがＬ２ＣＡＰチャネルを切断したときに、Ｌ２ＣＡＰチャネルが切断される（ステップ３２２）。
【００３４】
本発明は、ノードがＬ２ＣＡＰチャネルの構成および管理において、ノードがどのように関わるかを判別できるようにする。ノードは、Ｌ２ＣＡＰレイヤ２０２に、ノードが望む関係のレベルを通知する。ノードが指定できる関与には３つのレベルがある。３つのレベルとは、全てに無関係、最低の関係、および完全な関係である。
【００３５】
次に図４ａ〜ｃに進むと、Ｌ２ＣＡＰレイヤは、ノードが選択した関係レベルを判別する（ステップ４００）。ノードが完全な関係（ステップ４０２）または最低の関係（ステップ４０４）を選択していなければ、無関係レベルが選択されている。
【００３６】
ノードが無関係レベルを選択した場合に、以下のアクションが発生する。リモートノードが構成パラメータを拒絶した場合に（ステップ４０６）、Ｌ２ＣＡＰチャネルはドロップされる（ステップ４０８）。リモートノードがＱｏＳを指定した場合に（ステップ４１０）、Ｌ２ＣＡＰチャネルはドロップされる（ステップ４１２）。Ｌ２ＣＡＰチャネルが開いた後にリモートノードが構成要求を送信すると（ステップ４１４）（例えば再構成要求）、チャネルはドロップされる（ステップ４１６）。リモートノードがすべてのパラメータを受け入れると、Ｌ２ＣＡＰチャネルが開く。
【００３７】
ノードが最低の関係を選択した場合に（ステップ４０４）、ノードはＬ２ＣＡＰレイヤ２０２に関数ポインタを供給する（ステップ４１８）。関数ポインタは、リモート切断またはＨＣＩリンクの損失のいずれかによって接続が切断されたことをノードに通知する際に使用される。Ｌ２ＣＡＰチャネルは、無関係レベルの場合と同じ理由でドロップされ、これは最低の関係のパスにおけるステップ４０６〜４１６の重複によって示されている。Ｌ２ＣＡＰチャネルがリモートノードによって切断されている（ステップ４２０）か、またはＨＣＫリンクの損失の結果として切断されている（ステップ４２２）場合に、関数ポインタが呼び出される（ステップ４２４）。
【００３８】
ノードが完全な関係を選択した場合に（ステップ４０２）、ノードはＬ２ＣＡＰレイヤ２０２に関数ポインタを供給する（ステップ４２６）。関数ポインタは、接続または接続を確立するための試行に関する非同期イベントについて、ノードに通知するためのコールバックメカニズムとして使用される。関数ポインタには、イベントを指定するために指示が供給される。指示は、参照追加指示、参照解放指示、リモート接続指示、リモート切断指示、リモート構成要求指示、リモート構成応答指示、特別オプション解放指示、およびパケット受信指示を含む。
【００３９】
Ｌ２ＣＡＰ接続が確立されたことをノードに通知するために追加参照指示が送信され、その結果、ノードは、接続を表す接続オブジェクトに参照を追加することができる。Ｌ２ＣＡＰレイヤ２０２が接続に対するそのすべての参照を解放したことをノードに通知するために、参照解放指示が送信され、その結果、ノードは、他のノードからの他の参照がオブジェクト上に残っていなければ、その接続オブジェクトを解放することができる。リモートノードがＬ２ＣＡＰ接続を確立しようとすると、リモート接続指示が送信される。リモートノードが切断を要求すると、リモート切断指示が送信される。Ｌ２ＣＡＰレイヤ２０２が未知のオプションに遭遇すると、リモート構成要求指示が送信され、その結果、ノードは、未知のオプションへの応答方法をＬ２ＣＡＰレイヤに指示する。Ｌ２ＣＡＰレイヤ２０２が応答内にどのパラメータがあるのかわからないという応答を受信すると、リモート構成応答指示が送信され、その結果、ノードは、Ｌ２ＣＡＰレイヤ２０２に応答方法を指示する。ノードがもはや必要のない特別オプション（例えば、カスタムパラメータ）を使用しており、Ｌ２ＣＡＰレイヤ２０２が特別オプションのリソースを解放する方法を知らない場合、特別オプションのリソースを解放するようにノードに要求するために、特別オプション解放指示が送信される。読取りが保留されていないＬ２ＣＡＰチャネル上でデータが受信された場合に、パケット受信指示が送信される。
【００４０】
ノードは、無関係レベルの場合と同じパラメータおよびノードの望む任意の追加パラメータを指定する。リモートノードがパラメータを拒絶すると（ステップ４２８）、リモートノードのパラメータへの変更を確認するか、またはパラメータへの変更を拒否するために、関数ポインタが呼び出される（ステップ４３０）。ノードがパラメータへの変更を拒否すると、Ｌ２ＣＡＰチャネルはドロップされる（ステップ４３４）。リモートノードがＱｏＳを指定すると（ステップ４３６）、ＱｏＳを確認または拒否するために関数ポインタが呼び出される（ステップ４３８）。ノードがＱｏＳを拒否すると（ステップ４４０）、Ｌ２ＣＡＰチャネルはドロップされる（ステップ４４２）。未知のオプション（例えば、カスタムパラメータ）に遭遇すると（ステップ４４４）、未知のオプションへの応答方法に関する指示をノードから取得するために、関数ポインタが呼び出される（ステップ４４６）。ノードが未知のオプションを拒否すると（ステップ４４８）、Ｌ２ＣＡＰチャネルはドロップされる（ステップ４５０）。
【００４１】
リモートノードが再構成要求を送信すると（ステップ４５２）、再構成要求が受け入れられ、図３および４のプロセスが繰り返される。Ｌ２ＣＡＰチャネルがリモートノードによって切断されていた（ステップ４５４）か、またはＨＣＩリンクの損失の結果として切断されていた（ステップ４５６）場合に、関数ポインタが呼び出される（ステップ４５８）。構成パラメータがノードに受け入れられない場合はいつでも、ノードは障害コードを戻し、接続は切断される。
【００４２】
以上、ノードのＬ２ＣＡＰチャネル構成プロセスを簡略化する技法について説明してきた。この方法は、ノードがＬ２ＣＡＰチャネル接続の生成および管理プロセスに、ノードがどのように関わるかを判別できるようにするものである。ノードが構成プロセスにおける無関係を選択すると、ノードの複雑さは簡略化される。これにより開発者は、より簡単にブルートゥースの互換性をデバイスに組み込むことができる。本発明の原理が適用できる多くの可能な実施形態に鑑みて、図面に関して本明細書に記載された実施形態は例示的なものにすぎず、本発明の範囲を制限するものと解釈すべきでないことを理解されたい。例えば、当分野の技術者であれば、ソフトウェア内に示された例示的な実施形態の要素が、ハードウェアでも実施可能であること、およびその逆も可能であること、あるいは、例示された実施形態は、本発明の精神を逸脱することなくその配置構成および詳細を変更できることを理解されよう。したがって、本明細書に記載された本発明は、特許請求の範囲およびその等価物の範囲内で可能なものと同じすべての実施形態を企図するものである。
【図面の簡単な説明】
【図１】本発明が存在する例示的コンピュータシステムを一般的に示す構成図である。
【図２】本発明が動作するブルートゥースプロトコルスタックを示す構成図である。
【図３】Ｌ２ＣＡＰチャネルの接続および生成プロセスを示す流れ図である。
【図４ａ】ドライバが、選択された関与レベルでＬ２ＣＡＰチャネルの生成および管理に関与できるようにするためのプロセスの方法を示す流れ図の第１の部分を示す図である。
【図４ｂ】ドライバが、選択された関与レベルでＬ２ＣＡＰチャネルの生成および管理に関与できるようにするためのプロセスを示す流れ図の第２の部分を示す図である。
【図４ｃ】ドライバが、選択された関与レベルでＬ２ＣＡＰチャネルの生成および管理に関与できるようにするためのプロセスを示す流れ図の残りの部分を示す図である。
【符号の説明】
１２０　処理ユニット
１２１　システムバス
１３０　システムメモリ
１３１　ＲＯＭ
１３２　ＲＡＭ
１３３　ＢＩＯＳ
１３４　オペレーティングシステム
１３５　アプリケーションプログラム
１３６　他のプログラムモジュール
１３７　プログラムデータ
１４０　取外し不能不揮発性メモリインターフェース
１４４　オペレーティングシステム
１４５　アプリケーションプログラム
１４６　他のプログラムモジュール
１４７　プログラムデータ
【図１】
2004048743.tif 000003
【図２】
2004048743.tif 000004
【図３】
2004048743.tif 000005
【図４ａ】
2004048743.tif 000006
【図４ｂ】
2004048743.tif 000007
【図４ｃ】
2004048743.tif 000008