JP4856700B2 - Establishing a wireless universal serial bus (WUSB) connection via a trusted medium - Google Patents

Establishing a wireless universal serial bus (WUSB) connection via a trusted medium Download PDF

Info

Publication number
JP4856700B2
JP4856700B2 JP2008516029A JP2008516029A JP4856700B2 JP 4856700 B2 JP4856700 B2 JP 4856700B2 JP 2008516029 A JP2008516029 A JP 2008516029A JP 2008516029 A JP2008516029 A JP 2008516029A JP 4856700 B2 JP4856700 B2 JP 4856700B2
Authority
JP
Japan
Prior art keywords
connection
association
attribute
request
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008516029A
Other languages
Japanese (ja)
Other versions
JP2008547250A (en
JP2008547250A5 (en
Inventor
ベサニア,ファードッシュ
スリック,グレン・トーマス
オール,ランダル・エドワード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/246,510 external-priority patent/US20060149858A1/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008547250A publication Critical patent/JP2008547250A/en
Publication of JP2008547250A5 publication Critical patent/JP2008547250A5/ja
Application granted granted Critical
Publication of JP4856700B2 publication Critical patent/JP4856700B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)

Description

本発明のいくつかの態様の基本的な理解を提供するために、以下に、本発明の簡単化した概要を提示する。この概要は、本発明を広範にわたって概観するものではない。この概要は、本発明の重要/決定的な要素を識別することを意図したものでもなければ、本発明の範囲を画定することを意図したものでもない。この概要の唯一の目的は、後に提示するより詳細な説明の前置きとして、本発明のいくつかの概念を簡単化した形で提示することである。   The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. This summary is not intended to identify key / critical elements of the invention, nor is it intended to delimit the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented later.

以下では、トラステッド媒体(trusted media)を介した非トラステッド媒体(untrusted media)(たとえば、無線)デバイス構成の拡張可能アーキテクチャが説明される。このアーキテクチャは、非トラステッド媒体(たとえば、無線接続)を利用するデバイスを関連付けるのに用いることができる。関連付けは、たとえば有線接続といったトラステッド媒体を使用して達成される。   In the following, an extensible architecture of untrusted media (eg, wireless) device configuration via trusted media is described. This architecture can be used to associate devices that utilize untrusted media (eg, wireless connections). The association is accomplished using a trusted medium such as a wired connection.

このアーキテクチャは、有線接続等のトラステッド媒体を使用して接続デバイスとホストデバイスとの間の無線ユニバーサルシリアルバス(WUSB)接続を確立するためのシステム及び方法を含む。一実施態様では、接続デバイスは、トラステッド媒体を通じてホストデバイスへアソシエーション要求を送信する。このアソシエーション要求は、接続デバイスのWUSMコンポーネントに関連付けられたデバイス属性を含む。これに応答して、ホストデバイスは、アソシエーション要求を解析してその有効性を確認し、WUSBを使用して接続するための接続属性を決定する。ホストデバイスは、トラステッド媒体を通じて接続デバイスへ、接続属性を有する応答を送信する。接続デバイスは、接続属性を使用して、WUSBコンポーネントを構成し、ホストデバイスとのWUSB接続を確立する。   This architecture includes systems and methods for establishing a wireless universal serial bus (WUSB) connection between a connected device and a host device using a trusted medium, such as a wired connection. In one embodiment, the connecting device sends an association request to the host device through the trusted medium. The association request includes device attributes associated with the connected device's WESM component. In response to this, the host device analyzes the association request to confirm its validity, and determines a connection attribute for connection using WUSB. The host device sends a response having a connection attribute to the connection device through the trusted medium. The connection device uses the connection attribute to configure the WUSB component and establish a WUSB connection with the host device.

次に、図面を参照して本発明を説明する。図面では、同じ参照符号は、図面全体を通じて同じ要素を指すのに使用されている。以下の説明では、説明の目的上、本発明の徹底した理解を提供するために、多数の具体的な詳細が述べられている。しかしながら、本発明は、これらの具体的な詳細がなくても実施できることが明らかな場合がある。それ以外の場合には、既知の構造及びデバイスは、本発明の説明を円滑にするためにブロック図の形で示されている。   Next, the present invention will be described with reference to the drawings. In the drawings, the same reference numerals are used throughout the drawings to refer to the same elements. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it may be apparent that the invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the present invention.

この出願で使用されるように、「コンポーネント」、「ハンドラ」、「モデル」、「システム」等の用語は、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すことを意図している。たとえば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、及び/又はコンピュータとすることができるが、これらに限定されるものではない。例示として、サーバ上で実行されるアプリケーション及びそのサーバは、共に、コンポーネントとすることができる。1つ又は2つ以上のコンポーネントが、1つのプロセス及び/又は実行スレッド内に存在することができ、1つのコンポーネントが、1つのコンピュータに局在化することができ、且つ/又は、2つ若しくは3つ以上のコンピュータ間に分散することができる。また、これらのコンポーネントは、さまざまなデータ構造体が記憶されているさまざまなコンピュータ可読媒体から実行することもできる。コンポーネントは、1つ又は2つ以上のデータパケット(たとえば、ローカルシステム、分散システムにおいて別のコンポーネントと相互作用する或るコンポーネントからのデータ、及び/又は、インターネット等のネットワークにわたり信号を介して他のシステムと相互作用する或るコンポーネントからのデータ)を有する信号等に従い、ローカルプロセス及び/又はリモートプロセスを介して通信することができる。コンピュータコンポーネントは、たとえば、本発明によるコンピュータ可読媒体に記憶することができる。このコンピュータ可読媒体には、ASIC(特定用途向け集積回路)、CD(コンパクトディスク)、DVD(デジタルビデオディスク)、ROM(読み出し専用メモリ)、フロッピー(登録商標)ディスク、ハードディスク、EEPROM(電気的消去可能プログラマブル読み出し専用メモリ)、及びメモリスティックが含まれるが、これらに限定されるものではない。   As used in this application, the terms “component”, “handler”, “model”, “system”, etc. refer to either hardware, a combination of hardware and software, software, or running software. Intended to refer to computer-related entities. For example, a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and / or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can exist in one process and / or thread of execution, one component can be localized on one computer, and / or two or It can be distributed among more than two computers. These components can also execute from various computer readable media having various data structures stored thereon. A component may include one or more data packets (eg, data from one component that interacts with another component in a local system, distributed system, and / or other via signals across a network such as the Internet. Can communicate via a local process and / or a remote process according to a signal or the like having data from a component interacting with the system. The computer component can be stored, for example, on a computer readable medium according to the present invention. This computer-readable medium includes ASIC (Application Specific Integrated Circuit), CD (Compact Disc), DVD (Digital Video Disc), ROM (Read Only Memory), Floppy (Registered Trademark) Disc, Hard Disk, EEPROM (Electrical Erase) Possible programmable read-only memory), and memory sticks.

さらに、「トラステッド媒体」は、非トラステッド媒体を関連付けるために関連情報を転送できる、トラステッド接続を指す。トラステッド媒体の例には、シリアル接続、パラレル接続、及び/又はユニバーサルシリアルバス(USB)接続が含まれるが、これらに限定されるものではない。「非トラステッド媒体」は、信頼を確立するために関連付けられている媒体を指す。Bluetooth及び/又はIEEE802.11等の無線接続(複数可)は、非トラステッド媒体の例である。   Further, “trusted media” refers to trusted connections that can transfer related information to associate untrusted media. Examples of trusted media include, but are not limited to, serial connections, parallel connections, and / or universal serial bus (USB) connections. “Untrusted media” refers to media that are associated to establish trust. Wireless connection (s) such as Bluetooth and / or IEEE 802.11 are examples of untrusted media.

図1を参照して、本発明の一態様によるアソシエーションアーキテクチャ100が示されている。このアーキテクチャ100は、非トラステッド媒体(たとえば、無線接続)を利用するデバイス110を関連付けるのに用いることができる。関連付けは、たとえば有線接続といったトラステッド媒体を使用して達成される。   With reference to FIG. 1, an association architecture 100 in accordance with an aspect of the present invention is illustrated. The architecture 100 can be used to associate a device 110 that utilizes an untrusted medium (eg, a wireless connection). The association is accomplished using a trusted medium such as a wired connection.

「アソシエーション要求」は、関連付けを開始するためにデバイス110からドライバ120へ送信されるデータブロックを指す。アソシエーション要求は、その後、アソシエーションマネージャ130へ転送することができる。アソシエーションマネージャ130は、アソシエーション要求を適切なハンドラ140へ転送する。「アソシエーション応答」は、(たとえば、成功した及び/又は不成功の)関連付けを完了するためにドライバ120からデバイス110へ送信されるデータブロックを指す。   An “association request” refers to a data block sent from the device 110 to the driver 120 to initiate the association. The association request can then be forwarded to the association manager 130. The association manager 130 forwards the association request to the appropriate handler 140. An “association response” refers to a data block sent from the driver 120 to the device 110 to complete the association (eg, successful and / or unsuccessful).

アーキテクチャ100は、非トラステッド媒体(たとえば、無線接続)を介して(たとえば、安全に)通信するようにデバイス110の構成を容易にすることができる。デバイス110の構成は、トラステッド媒体(たとえば、有線接続)を介して交換される情報に少なくとも部分的に基づくことができる。一例では、デバイス110は、アソシエーション要求をドライバ120へ送信し、ドライバ120からアソシエーション応答を受信する。関連付けが成功した場合、アソシエーション応答は、たとえば、デバイス110が非トラステッド媒体を介して(たとえば、安全に)通信することを可能にする構成情報(たとえば、暗号化鍵)を含むことができる。関連付けが不成功である場合、アソシエーション応答は、たとえば、エラー情報を含むことができる。   The architecture 100 can facilitate the configuration of the device 110 to communicate (eg, securely) via an untrusted medium (eg, a wireless connection). The configuration of device 110 may be based at least in part on information exchanged via a trusted medium (eg, a wired connection). In one example, the device 110 sends an association request to the driver 120 and receives an association response from the driver 120. If the association is successful, the association response can include, for example, configuration information (eg, an encryption key) that allows the device 110 to communicate (eg, securely) over the untrusted medium. If the association is unsuccessful, the association response can include error information, for example.

一例では、デバイス110は、USB接続も含む無線使用可能デジタルカメラである。USB接続(トラステッド媒体)は、デジタルカメラの無線接続(非トラステッド媒体)を構成するのに用いることができる。たとえば、「found new hardware」(新しいハードウェアの検出)ウィザードを用いて、アーキテクチャ100を介してデジタルカメラへ転送する無線プロファイルを選択し且つ/又は作成することができる。このプロファイル情報が、USB接続を介してデジタルカメラへ転送されると、USB接続を接続解除することができ、デジタルカメラは、無線接続を介して通信することができる。   In one example, device 110 is a wireless enabled digital camera that also includes a USB connection. USB connections (trusted media) can be used to configure wireless connections (untrusted media) for digital cameras. For example, a “found new hardware” wizard may be used to select and / or create a wireless profile for transfer to the digital camera via architecture 100. When this profile information is transferred to the digital camera via the USB connection, the USB connection can be disconnected and the digital camera can communicate via the wireless connection.

たとえば、ドライバ120は、トラステッド媒体を介して受信されたアソシエーション要求をアソシエーションマネージャ130へチャネル送信することができる。ドライバ120は、さらに、アソシエーションマネージャ130から受信したアソシエーション応答をトラステッド媒体を介してデバイス110へ提供することができる。別の例では、ドライバ120は、アソシエーション要求を生成して、これをアソシエーションマネージャ130に提供する。オプションとして、ドライバ120は、さらに、アソシエーション要求を発行するための適切な時刻を決定することもできる。   For example, the driver 120 can channel an association request received via the trusted medium to the association manager 130. Driver 120 can further provide the association response received from association manager 130 to device 110 via the trusted medium. In another example, driver 120 generates an association request and provides it to association manager 130. Optionally, the driver 120 can also determine an appropriate time for issuing the association request.

さらに別の例では、特定のドライバ120を用いて、複数の非トラステッド媒体を構成することができる。たとえば、ドライバ120を用いて、複数の非トラステッド媒体を介して通信する複数のデバイス110へUSB接続を介して通信することができる。   In yet another example, a particular driver 120 can be used to configure multiple untrusted media. For example, the driver 120 can be used to communicate via a USB connection to a plurality of devices 110 that communicate via a plurality of untrusted media.

アソシエーションマネージャ130は、アソシエーションデータを適切なコンピュータに提供する。アソシエーションマネージャ130は、ドライバ120からアソシエーション要求を受信することができる。アソシエーション要求のルーティング情報に少なくとも部分的に基づいて、アソシエーションマネージャ130は、アソシエーション要求に関連付けられた情報を、処理のために特定のハンドラ140に提供することができる。この特定のハンドラ140がアソシエーション要求の処理を完了すると、このハンドラ140は、アソシエーションマネージャ130にアソシエーション応答を提供することができる。アソシエーション応答のルーティング情報に少なくとも部分的に基づいて、アソシエーションマネージャ130は、要求側ドライバ120にアソシエーション応答を提供することができる。   Association manager 130 provides association data to the appropriate computer. The association manager 130 can receive an association request from the driver 120. Based at least in part on the routing information of the association request, association manager 130 may provide information associated with the association request to a particular handler 140 for processing. Once this particular handler 140 has completed processing the association request, this handler 140 can provide an association response to the association manager 130. Based at least in part on the routing information in the association response, the association manager 130 can provide the association response to the requesting driver 120.

ハンドラ140は、デバイスインストールを実施するサービス(図示せず)とインターフェースしている。一例では、ハンドラ140は、アソシエーション要求の明示的な知識を有するアーキテクチャ100の唯一のコンポーネントである。ハンドラ140は、以下でより詳細に説明するように、アソシエーション要求の内容に少なくとも部分的に基づいて動作を行う。たとえば、この動作(複数可)は、アソシエーション要求によって確立されようとする接続タイプに依存することができる。特定のハンドラ140がアソシエーション要求の処理を完了すると、このハンドラ140は、アソシエーションマネージャ130にアソシエーション応答を提供することができる。   The handler 140 interfaces with a service (not shown) that performs device installation. In one example, handler 140 is the only component of architecture 100 that has explicit knowledge of association requests. The handler 140 operates based at least in part on the contents of the association request, as will be described in more detail below. For example, this operation (s) may depend on the connection type that is to be established by the association request. When a particular handler 140 completes processing the association request, this handler 140 can provide an association response to the association manager 130.

アーキテクチャ100は、1つ又は2つ以上のハンドラ140に関連付けられた識別情報を記憶するハンドラレジストリ150を含むことができる。アソシエーションマネージャ130は、ハンドラレジストリ150に記憶された識別情報を用いて、複数のハンドラ140のいずれに特定のアソシエーション要求を提供するのかを決定することができる。   The architecture 100 can include a handler registry 150 that stores identification information associated with one or more handlers 140. The association manager 130 can use the identification information stored in the handler registry 150 to determine to which of the plurality of handlers 140 a particular association request is to be provided.

さらに、アーキテクチャ100は、オプションとして、1つ又は2つ以上のドライバ120に関連付けられた識別情報を記憶するドライバレジストリ160を含むことができる。アソシエーションマネージャ130は、(以下で解説するように)ドライバレジストリ160に記憶された識別情報を用いて、たとえば初期化中に、1つ又は2つ以上のドライバ120のうちのいずれのインスタンスを作成するのかを決定することができる。   Further, the architecture 100 can optionally include a driver registry 160 that stores identification information associated with one or more drivers 120. The association manager 130 uses the identification information stored in the driver registry 160 (as described below) to create any instance of one or more drivers 120, for example during initialization. Can be determined.

デバイス110は、単一のエンティティとして示されているが、アソシエーション要求を送信及び/又は受信するオブジェクト、及び、最終的にはホストに関連付けられるオブジェクト(たとえば、ターゲットデバイス)を含むことができる。   Although device 110 is shown as a single entity, it can include objects that send and / or receive association requests and ultimately objects associated with the host (eg, target device).

一例では、アーキテクチャ100は、1つのアソシエーション要求及び1つの関連付けられたアソシエーション応答しかサポートしない。この例では、関連付けを容易にするためにデバイス110から必要とされる情報が、アソシエーション要求に埋め込まれている。同様に、関連付けを容易にするためにデバイス110にとって必要とされる情報も、アソシエーション応答に埋め込まれている。   In one example, the architecture 100 supports only one association request and one associated association response. In this example, the information required from device 110 to facilitate association is embedded in the association request. Similarly, information needed for device 110 to facilitate association is also embedded in the association response.

図2を参照すると、本発明の一態様によるアソシエーション要求200が示されている。アソシエーション要求200は、アソシエーション要求ヘッダ210並びに1つ又は2つ以上のアソシエーション要求属性(複数可)220(たとえば、属性タイプ、長さ、及びデータ)を含む。属性は、アソシエーション要求内且つ/又はアソシエーション応答内の単一のアイテムである。たとえば、アソシエーション要求ヘッダ210は、アソシエーション要求属性(複数可)220について以下で説明する属性と同様のフォーマットの一組のグローバルに定義された要求属性(複数可)を含むことができる。   With reference to FIG. 2, an association request 200 in accordance with an aspect of the present invention is illustrated. Association request 200 includes an association request header 210 and one or more association request attribute (s) 220 (eg, attribute type, length, and data). An attribute is a single item in an association request and / or in an association response. For example, association request header 210 may include a set of globally defined request attribute (s) in a format similar to the attributes described below for association request attribute (s) 220.

一例では、アソシエーション要求(複数可)及び/又はアソシエーション応答(複数可)は、解析可能なストリームで編成される。このストリームは、一連の属性(複数可)を備え、各属性は、定義されたタイプ及び関連付けられたデータを有する。これによって、アーキテクチャの柔軟性及び拡張性が促進される。1つの例示的な属性構造を表1に明記する。   In one example, association request (s) and / or association response (s) are organized in a parsable stream. This stream comprises a series of attribute (s), each attribute having a defined type and associated data. This promotes architectural flexibility and extensibility. One exemplary attribute structure is specified in Table 1.

Figure 0004856700
この例示的な属性構造は、たとえば、以下のように定義することができる。
Figure 0004856700
This exemplary attribute structure can be defined, for example, as follows.

Figure 0004856700
一例では、システムそれ自体によって使用されることが意図され(たとえば、多くのアソシエーションタイプに共通である)、且つ、どの特定のアソシエーションタイプにも特有ではない、いくつかの予め定義された属性タイプがある。
Figure 0004856700
In one example, there are several predefined attribute types that are intended to be used by the system itself (eg, common to many association types) and are not specific to any particular association type. is there.

Figure 0004856700
例示的なアソシエーションステータス値は以下の通りである。
Figure 0004856700
Exemplary association status values are as follows:

Figure 0004856700
アソシエーション要求
この例では、アソシエーション要求は、一連の属性である。第1の属性は、AssociationType(アソシエーションタイプ)である。これは、どのハンドラに要求を送信するのかを識別するのに使用される。この例では、この値は、ハンドラ(又はハンドラに関連付けられた或る仕様)によって定義されたGUIDである。たとえば、Bluetoothデバイスを関連付けるために、Bluetooth特有のGUID、及び、その特定のGUIDをハンドリングすることを指定したハンドラが存在し得る。
Figure 0004856700
Association Request In this example, an association request is a set of attributes. The first attribute is AssociationType (association type). This is used to identify which handler to send the request to. In this example, this value is a GUID defined by the handler (or some specification associated with the handler). For example, to associate a Bluetooth device, there may be a Bluetooth specific GUID and a handler that specifies to handle that particular GUID.

アソシエーション要求の第2の属性はlength(長さ)である。これは、AssociationTypeフィールド及びLengthフィールド自体を含むこの要求の属性のすべての全長である。これは、解析の支援に使用され、その結果、或るコンポーネントが或る特定のAssociationTypeに関係がない場合、そのコンポーネントは、要求内の各属性を解析しなければならないのとは対照的に、要求全体をスキップすることができる。   The second attribute of the association request is length. This is the total length of all the attributes of this request, including the AssociationType field and the Length field itself. This is used to aid in parsing, so that if a component is not related to a particular AssociationType, that component must parse each attribute in the request, as opposed to The entire request can be skipped.

この例では、最小限の処理で基本的な関連付けを実施できる単純なデバイス(たとえば、ファームウェアを有しないシリコンのみのソリューションを有するデバイス(複数可))を容易にするために、lengthの直後に続く属性(複数可)が慎重に定義される。これを達成するために、所望のデータを抽出するために構造内で予め定義されたオフセットへ単純にジャンプできることが助けになる可能性がある。したがって、この例では、Lengthの直後に続く属性は、基本的な関連付けを実行するのに必要とされる最小限のデータ量を含む。さらに、属性は、予め定義された順序に並べることができ、常に存在することができる。一例では、この必要なデータのほぼすべてが、単一の属性内に含まれる。この例では、どの可変長フィールドも、アソシエーション要求内のオフセットに影響を与えないように、これらの基本的な属性の最後に配置される。   In this example, immediately following length to facilitate a simple device that can perform basic association with minimal processing (eg, device (s) with a silicon-only solution without firmware) The attribute (s) are carefully defined. To achieve this, it can be helpful to be able to simply jump to a predefined offset in the structure to extract the desired data. Thus, in this example, the attribute immediately following Length contains the minimum amount of data needed to perform a basic association. Furthermore, the attributes can be arranged in a predefined order and can always be present. In one example, almost all of this required data is contained within a single attribute. In this example, any variable length field is placed at the end of these basic attributes so as not to affect the offset in the association request.

別の例では、それぞれが少量のデータを含むいくつかの属性が使用される。したがって、たとえば拡張された機能を提供するための属性が後に続く場合には、任意の個数の属性を後に続けられることが理解されるべきである。
アソシエーション応答
図3を参照すると、本発明の一態様によるアソシエーション応答300が示されている。アソシエーション応答300は、アソシエーション応答ヘッダ310、及び、0個、1つ又は2つ以上のアソシエーション応答属性(複数可)320を含む。たとえば、アソシエーション応答ヘッダ310は、アソシエーション応答属性(複数可)320について以下で説明する属性と同様のフォーマットの一組のグローバルに定義された要求属性(複数可)を含むことができる。
In another example, several attributes are used, each containing a small amount of data. Thus, it should be understood that any number of attributes can be followed, for example, when attributes to provide extended functionality follow.
Association Response Referring to FIG. 3, an association response 300 in accordance with an aspect of the present invention is illustrated. The association response 300 includes an association response header 310 and zero, one, or more association response attribute (s) 320. For example, association response header 310 may include a set of globally defined request attribute (s) in a format similar to the attributes described below for association response attribute (s) 320.

アソシエーション応答属性320は、属性タイプ、長さ、及びデータを含む1つのデータである。上述したアソシエーション要求と同様に、一例では、アソシエーション応答は一連の属性である。この例では、第1の属性はAssocitaionTypeである。これは、この応答をもたらしたアソシエーション要求のAssociationTypeをエコーするのに使用される。   The association response attribute 320 is a piece of data including an attribute type, length, and data. Similar to the association request described above, in one example, the association response is a series of attributes. In this example, the first attribute is AssocitaionType. This is used to echo the AssociationType of the association request that resulted in this response.

アソシエーション応答の第2の属性はlengthである。これは、AssociationTypeフィールド及びlengthフィールド自体を含むこの要求の属性のすべての全長である。これは、解析の支援に使用され、その結果、或るコンポーネントが或る特定のAssociationTypeに関係がない場合、そのコンポーネントは、要求内の各属性を解析しなければならないのとは対照的に、要求をスキップすることができる。   The second attribute of the association response is length. This is the total length of all attributes of this request, including the AssociationType field and the length field itself. This is used to aid in parsing, so that if a component is not related to a particular AssociationType, that component must parse each attribute in the request, as opposed to The request can be skipped.

アソシエーション応答の第3の属性は、AssociationStatus(アソシエーションステータス)である。これは、アソシエーション要求の結果についてデバイスに通知するためのものである。この例では、アソシエーションプロセスが成功した場合、この値は、0x0000となり、デバイスがアソシエーション応答の属性を引き続き読み出すことができることを意味する。値が0xc0001の場合、ホストは、指定されたAssociationTypeをハンドリングできるハンドラを見つけることができなかった。この場合、デバイスは、アソシエーション応答のさらなる属性について何らの仮定もすべきではない。   The third attribute of the association response is AssociationStatus (association status). This is to notify the device about the result of the association request. In this example, if the association process is successful, this value will be 0x0000, meaning that the device can continue to read the association response attributes. If the value is 0xc0001, the host could not find a handler that can handle the specified AssociationType. In this case, the device should not make any assumptions about further attributes of the association response.

単純なデバイスが最小限の処理で基本的な関連付けを実施できることを可能にするために、上述したように、AssociationStatusの直後に続く属性(複数可)を慎重に定義することができる。この例では、これを達成するために、所望のデータを抽出するために構造内で予め定義されたオフセットへ単純にジャンプできることが必要である。そのため、これらの属性は、基本的な関連付けを実行するのに必要な最小限の量のデータを含む。また、これらの属性は、この例では、予め定義された順序に並べられ、常に存在する。どの可変長フィールドも、アソシエーション要求内のオフセットに影響を与えないように、これらの基本的な属性の最後に配置される。拡張された機能を提供するための属性が後に続く場合には、任意の個数の属性を後に続けることができる。   In order to allow simple devices to perform basic associations with minimal processing, the attribute (s) immediately following AssociationStatus can be carefully defined as described above. In this example, to achieve this, it is necessary to be able to simply jump to a predefined offset in the structure to extract the desired data. As such, these attributes contain the minimum amount of data necessary to perform a basic association. In addition, in this example, these attributes are arranged in a predefined order and always exist. Any variable length field is placed at the end of these basic attributes so as not to affect the offset in the association request. Any number of attributes can follow, followed by attributes to provide extended functionality.

図4を参照すると、本発明の一態様によるアソシエーション管理システム400が示されている。アソシエーション管理システム400は、マネージャ通信コンポーネント420及びハンドラ識別コンポーネント430を有するアソシエーションマネージャ410を含む。システム400は、ハンドラレジストリ150及びオプションとしてドライバレジストリ160をさらに含む。   With reference to FIG. 4, illustrated is an association management system 400 in accordance with an aspect of the present invention. Association management system 400 includes an association manager 410 having a manager communication component 420 and a handler identification component 430. The system 400 further includes a handler registry 150 and optionally a driver registry 160.

アソシエーションマネージャ410は、アソシエーションデータ(たとえば、アソシエーション要求(複数可)及び/又はアソシエーション応答(複数可))を適切なコンポーネント(たとえば、ハンドラ及び/又はドライバ)に提供することを担当する。マネージャ通信コンポーネント420は、ドライバ(複数可)(図示せず)からアソシエーション要求(複数可)を受信することができる。マネージャ通信コンポーネント420は、アソシエーション要求の少なくとも一部(たとえば、アソシエーション要求ヘッダ)をハンドラ識別コンポーネント430に提供することができる。   Association manager 410 is responsible for providing association data (eg, association request (s) and / or association response (s)) to the appropriate components (eg, handlers and / or drivers). Manager communication component 420 can receive association request (s) from driver (s) (not shown). The manager communication component 420 can provide at least a portion of an association request (eg, an association request header) to the handler identification component 430.

マネージャ通信コンポーネント420によって提供される情報及びハンドラレジストリ150に記憶された識別情報に基づいて、ハンドラ識別コンポーネント430は、アソシエーション要求が提供される特定のハンドラ(図示せず)を識別する。一例では、アソシエーションマネージャ410は、ハンドラ識別コンポーネント430によって識別されたハンドラをロードする。別の例では、ハンドラ(複数可)は、(以下でさらに詳細に解説するように)初期化時にロードされる。その後、マネージャ通信コンポーネント420は、アソシエーション要求に関連付けられた情報を、ハンドラ識別コンポーネント430によって識別されたハンドラに提供する。   Based on the information provided by the manager communication component 420 and the identification information stored in the handler registry 150, the handler identification component 430 identifies a particular handler (not shown) for which an association request is provided. In one example, association manager 410 loads the handler identified by handler identification component 430. In another example, the handler (s) are loaded at initialization (as described in more detail below). Thereafter, the manager communication component 420 provides information associated with the association request to the handler identified by the handler identification component 430.

ハンドラは、アソシエーション要求を処理すると、マネージャ通信コンポーネント420にアソシエーション応答を提供する。次に、マネージャ通信コンポーネント420は、このアソシエーション応答を要求ドライバに提供する。   When the handler processes the association request, it provides an association response to the manager communication component 420. The manager communication component 420 then provides this association response to the request driver.

一例では、アソシエーションマネージャ410は、アソシエーション要求の有効性を確認する。たとえば、アソシエーションマネージャ410は、整合形式(well-formed)であるか否かを判断することができる。要求が整合形式でない場合、アソシエーションマネージャ410は、このアソシエーション要求が非整合形式(malformed)であることを示すアソシエーション応答(たとえば、ERROR_MALFORMED_ASSOCIATION_REQUEST(非整合形式であるアソシエーション要求エラー)に設定されたステータス属性)を生成し、このアソシエーション応答を要求側ドライバに提供することができる。この例では、アソシエーションマネージャ410は、以下の判定基準を利用して、アソシエーション要求が整合形式であるか否かを判断する。   In one example, the association manager 410 verifies the validity of the association request. For example, the association manager 410 can determine whether it is well-formed. If the request is not in conformance, the association manager 410 indicates an association response indicating that this association request is malformed (for example, a status attribute set in the ERROR_MALFORMED_ASSOCIATION_REQUEST (association request error in inconsistent form)) And this association response can be provided to the requesting driver. In this example, the association manager 410 uses the following criteria to determine whether the association request is in a consistent format.

a.要求の長さが、少なくともAssociationType属性及びLength属性を保持するのに十分な大きさ(たとえば、36バイト)である。   a. The request length is large enough (eg, 36 bytes) to hold at least the AssociationType and Length attributes.

b.第1の属性がAssociationTypeであり、その長さが(たとえば、特定のハンドラに関連付けられたグローバル一意識別子(GUID)に基づく)適切なサイズを有する。   b. The first attribute is AssociationType and its length has an appropriate size (eg, based on a globally unique identifier (GUID) associated with a particular handler).

c.第2の属性がLengthであり、適切なサイズ(たとえば、ULONG)を有する。   c. The second attribute is Length and has an appropriate size (eg, ULONG).

d.Length属性の値が、AssociationType属性及びLength属性(たとえば、36バイト)よりも大きく、その要求の長さ以下である。   d. The value of the Length attribute is greater than the AssociationType attribute and the Length attribute (eg, 36 bytes) and is less than or equal to the length of the request.

e.後に続く各属性が、その属性が要求における当該属性の現在の位置に加えられたときに、Length属性の値よりも大きな値とならない長さを有する。   e. Each subsequent attribute has a length that is not greater than the value of the Length attribute when that attribute is added to the current position of the attribute in the request.

f.正確に1つのAssociationType属性及び正確に1つのLength属性が、要求に存在する。   f. There is exactly one AssociationType attribute and exactly one Length attribute in the request.

次に、アソシエーションマネージャ410は、アソシエーション要求に含まれる指定されたアソシエーションタイプ(たとえば、ハンドラレジストリ150に記憶されたGUID)について登録されたハンドラがあるか否かを判断する。ハンドラが見つからない場合、アソシエーションマネージャ410は、要求されたアソシエーションタイプがサポートされていないことを示すアソシエーション応答を生成し、このアソシエーション応答を要求側ドライバに提供することができる。   Next, association manager 410 determines whether there is a registered handler for a specified association type (eg, GUID stored in handler registry 150) included in the association request. If the handler is not found, the association manager 410 can generate an association response indicating that the requested association type is not supported and provide this association response to the requesting driver.

ハンドラが見つかった場合、この例では、アソシエーションマネージャ410は、アソシエーション要求を解析し、属性(複数可)のリストを抽出することができる。次に、アソシエーションマネージャ410は、抽出された属性(複数可)のリストをその特定のハンドラに提供することができる。   If a handler is found, in this example, association manager 410 can parse the association request and extract a list of attribute (s). The association manager 410 can then provide the list of extracted attribute (s) to that particular handler.

アソシエーションマネージャ410が、抽出された属性(複数可)のリストを特定のハンドラに提供することに失敗した場合、アソシエーションマネージャ410は、その特定のハンドラが応答しなかったことを示すアソシエーション応答を生成し、このアソシエーション応答を要求側ドライバに提供することができる。   If association manager 410 fails to provide a list of extracted attribute (s) to a particular handler, association manager 410 generates an association response indicating that the particular handler did not respond. This association response can be provided to the requesting driver.

アソシエーションマネージャ410が、抽出された属性(複数可)のリストを特定のハンドラに提供することに成功した場合、ハンドラによる処理が完了時に、この例では、アソシエーションマネージャ410は、アソシエーション応答属性リストをハンドラから受信する。アソシエーションマネージャ410は、アソシエーション応答属性リストが整合形式であるか否かを判断することができる。たとえば、
a.正確に1つのステータス属性がある。
If the association manager 410 successfully provides a list of extracted attribute (s) to a particular handler, upon completion of processing by the handler, the association manager 410, in this example, associates the association response attribute list with the handler. Receive from. The association manager 410 can determine whether the association response attribute list is in a consistent format. For example,
a. There is exactly one status attribute.

b.(たとえば、アソシエーションマネージャ410によって追加される)Length属性及びAssociationType属性が存在しない。   b. There are no Length and AssociationType attributes (eg, added by association manager 410).

c.アソシエーション要求がMaximumResponseLength属性を含んでいた場合には、これらの属性の全体サイズがその値よりも小さくなければならない。   c. If the association request includes a MaximumResponseLength attribute, the overall size of these attributes must be less than that value.

応答が整合形式である場合、アソシエーションマネージャ410は、アソシエーション応答属性リストに少なくとも部分的に基づいて、アソシエーション応答(たとえば、バイトアレイ)を生成する。たとえば、アソシエーションマネージャ410は、以下のことを行うことができる。   If the response is in a consistent format, association manager 410 generates an association response (eg, a byte array) based at least in part on the association response attribute list. For example, the association manager 410 can do the following:

a.応答属性リストのすべての属性の全体サイズを合計する。   a. Sum the overall size of all attributes in the response attribute list.

b.AssociationType属性及びLength属性に必要なサイズを追加する。   b. Add necessary size to AssociationType attribute and Length attribute.

c.その応答を保持するのに十分な大きさのバッファを割り当てる。   c. Allocate a buffer large enough to hold the response.

d.そのバッファの第1の属性を、そのアソシエーション要求からのAssociationTypeに設定する。   d. Set the buffer's first attribute to the AssociationType from the association request.

e.計算された応答の長さを使用してLength属性をバッファに追加する。   e. Add a Length attribute to the buffer using the calculated response length.

f.AssociationStatus属性を追加する。   f. Add AssociationStatus attribute.

g.各追加属性を、それらの属性が属性リストに存在したときの順番で追加する。   g. Each additional attribute is added in the order in which they were in the attribute list.

次に、アソシエーションマネージャ410は、アソシエーション応答を要求側ドライバに提供することができる。   The association manager 410 can then provide an association response to the requesting driver.

一例では、アソシエーションマネージャは、以下のインターフェースを実施する。   In one example, the association manager implements the following interface:

Figure 0004856700
SendAssociationRequest()(アソシエーション要求送信)は、アソシエーションプロセスを開始するためにドライバ(複数可)によってコールされる。アソシエーション応答は、デバイスに容易に返信できるバイトアレイとして返される。一例では、AssociationResponse(アソシエーション応答)を解放することがドライバの責務である。
Figure 0004856700
SendAssociationRequest () (association request transmission) is called by the driver (s) to initiate the association process. The association response is returned as a byte array that can be easily returned to the device. In one example, it is the driver's responsibility to release the AssociationResponse.

図5を参照すると、本発明の一態様によるアソシエーション管理システム500が示されている。システム500は、アソシエーションマネージャ510、ハンドラレジストリ150、ドライバレジストリ160、及び初期化コンポーネント520を含む。   With reference to FIG. 5, an association management system 500 in accordance with an aspect of the present invention is illustrated. The system 500 includes an association manager 510, a handler registry 150, a driver registry 160, and an initialization component 520.

前述したように、アソシエーションマネージャ510は、アソシエーションデータ(たとえば、アソシエーション要求(複数可)及び/又はアソシエーション応答(複数可))を適切なコンポーネント(たとえば、ハンドラ及び/又はドライバ)に提供することを担当する。一方、この例では、初期化コンポーネント520は、ドライバレジストリ160に記憶された情報を使用して、たとえばシステム500の初期化中に、1つ又は2つ以上のドライバ(図示せず)のうちのいずれのドライバのインスタンスを生成するのかを決定する。たとえば、ドライバ(複数可)を、コンピュータシステム(図示せず)の構成中に(たとえば、手動で且つ/又は自動的に)登録することができる。   As described above, association manager 510 is responsible for providing association data (eg, association request (s) and / or association response (s)) to the appropriate component (eg, handler and / or driver). To do. On the other hand, in this example, initialization component 520 uses information stored in driver registry 160 to identify one or more drivers (not shown) during system 500 initialization, for example. Decide which driver instance to create. For example, the driver (s) can be registered (eg, manually and / or automatically) during configuration of the computer system (not shown).

一例では、システム初期化時に、初期化コンポーネント520は、ドライバレジストリ160及びハンドラレジストリ150にそれぞれ記憶された情報に少なくとも部分的に基づいて、ドライバ(複数可)及びハンドラ(複数可)を識別する。その後、初期化コンポーネント520は、識別されたハンドラ(複数可)及び識別されたドライバ(複数可)のインスタンスを生成する。   In one example, during system initialization, initialization component 520 identifies driver (s) and handler (s) based at least in part on information stored in driver registry 160 and handler registry 150, respectively. The initialization component 520 then creates an instance of the identified handler (s) and identified driver (s).

この例では、ハンドラのそれぞれについて、アソシエーションマネージャ510は、アソシエーションタイプカウントを取り出し、関連付けられた記憶バッファ(たとえば、アソシエーションタイプカウント×sizeof(GUID))を割り当てることができる。このバッファは、ハンドラからアソシエーションタイプを取り出すのに使用することができる。別の例では、ハンドラが、記憶空間を割り当て、その記憶空間をアソシエーションマネージャに提供する。   In this example, for each handler, association manager 510 may retrieve the association type count and allocate an associated storage buffer (eg, association type count × sizeof (GUID)). This buffer can be used to retrieve the association type from the handler. In another example, the handler allocates storage space and provides the storage space to the association manager.

アソシエーションタイプは、ハンドラがサポートする特定のアソシエーションタイプを表すGUIDのアレイとすることができる。取り出されたGUIDのそれぞれについて、ハンドラレジストリに記憶されたGUIDからハンドラへのマッピング(Handler mappings)にエントリーを追加することができる。たとえば、   The association type can be an array of GUIDs that represent the specific association types that the handler supports. For each retrieved GUID, an entry can be added to the GUID-to-handler mapping (Handler mappings) stored in the handler registry. For example,

Figure 0004856700
次に、このマッピングリストは、アソシエーションマネージャ510が、適切なハンドラへのアソシエーション要求のルーティングを決定するのに用いることができる。
Figure 0004856700
This mapping list can then be used by the association manager 510 to determine the routing of the association request to the appropriate handler.

この例では、ハンドラが生成され、且つ、それらのアソシエーションタイプが発見されると、初期化コンポーネント520は、ドライバをアクティブ化する。ハンドラが発見されてロードされるまで、アソシエーション要求(複数可)が受信されないことを確実にするために、アクティブ化は、ハンドラがロードされて初期化された後に行われる。たとえば、ドライバをアクティブ化するために、「Start()」メソッドを起動することができる。   In this example, the initialization component 520 activates the driver once the handlers are created and their association types are discovered. Activation is performed after the handler is loaded and initialized to ensure that the association request (s) are not received until the handler is discovered and loaded. For example, a “Start ()” method can be invoked to activate a driver.

次に図6を参照すると、本発明の一態様によるアソシエーションハンドラシステム600が示されている。このシステム600は、要求コンポーネント620、応答コンポーネント630、及びアソシエーションプロセッサを備えたハンドラ610を含む。   With reference now to FIG. 6, an association handler system 600 in accordance with an aspect of the present invention is illustrated. The system 600 includes a handler 610 that includes a request component 620, a response component 630, and an association processor.

ハンドラ610は、(おそらく他のコンポーネント(複数可)(図示せず)と共に)アソシエーション要求を消費し、アソシエーション応答に関連付けられた情報を生成する。   The handler 610 consumes the association request (possibly along with other component (s) (not shown)) and generates information associated with the association response.

たとえば、要求コンポーネント620は、アソシエーション要求に関連付けられた情報(たとえば、アソシエーション要求及び/又は解析された属性リスト)をアソシエーションマネージャ(図示せず)から受信することができる。要求コンポーネント620は、アソシエーション要求に関連付けられた情報の内容を解析して、どのような動作(複数可)を行うのかを決定することができる。アソシエーションプロセッサ640は、サービス650を介して動作(複数可)を容易にする。この動作(複数可)は、たとえば、確立しようとする接続タイプに依存することができる。動作(複数可)が完了すると、アソシエーションプロセッサ640は、この関連付けに関する情報を応答コンポーネント630に提供することができる。次に、応答コンポーネント630は、アソシエーション応答に関連付けられた情報(たとえば、アソシエーション応答及び/又は属性リスト)を生成することができる。この情報は、アソシエーションマネージャに提供することができる。   For example, the request component 620 can receive information (eg, an association request and / or a parsed attribute list) associated with the association request from an association manager (not shown). The request component 620 can analyze the content of the information associated with the association request to determine what action (s) to perform. Association processor 640 facilitates operation (s) via service 650. This action (s) can depend, for example, on the connection type to be established. Upon completion of the operation (s), the association processor 640 can provide information regarding this association to the response component 630. The response component 630 can then generate information (eg, association response and / or attribute list) associated with the association response. This information can be provided to the association manager.

一例では、複数のハンドラ610が、以下のCOMインターフェースを実施する。   In one example, multiple handlers 610 implement the following COM interface.

Figure 0004856700
この例では、「manager」(マネージャ)は、アソシエーションマネージャへのインターフェースポインタである。さらに、「AssociationTypes」は、PONGハンドラがハンドリングできるAssociationType GUIDのアレイを返す。同様に、「AssociationTypeCount」(アソシエーションタイプカウント)は、PONGハンドラがハンドリングできるAssociationTypeの個数である。「HandleAssociationRequest()」は、ハンドラ610がサポートしたことを報告したアソシエーション要求をアソシエーションマネージャが受信した時に、そのアソシエーションマネージャによってコールされる。「RequestAttributes」は、属性構造のリストである。ハンドラ610は、デバイス(図示せず)に返される属性である属性構造体のリストであるResponseAttributesを返すのに必要なメモリを割り当てることが期待されている。
Figure 0004856700
In this example, “manager” is an interface pointer to the association manager. Furthermore, “AssociationTypes” returns an array of AssociationType GUIDs that can be handled by the PONG handler. Similarly, “AssociationTypeCount” (association type count) is the number of AssociationTypes that can be handled by the PONG handler. “HandleAssociationRequest ()” is called by the association manager when the association manager receives an association request reporting that the handler 610 has supported it. “RequestAttributes” is a list of attribute structures. The handler 610 is expected to allocate memory required to return ResponseAttributes, which is a list of attribute structures that are attributes returned to the device (not shown).

別の例では、ハンドラ610は、デバイスがターゲット媒体上で発見されると、デバイスについての情報を、今後のインストールのためにたとえばデータベースに記憶する。たとえば、特定のハンドラ610をWi−Fiターゲット媒体に関係付けることができる。この例では、Wi−Fiターゲット媒体を用いることを所望するデバイス(複数可)が、アソシエーション要求(複数可)を送信し、属性リストの形でアソシエーション応答(複数可)を受信する。属性リストは、ハンドラ610がアソシエーションマネージャに提供することができ、アソシエーションマネージャは、次に、アソシエーション応答を形成することができる。   In another example, the handler 610 stores information about the device, for example in a database, for future installation when the device is discovered on the target media. For example, a particular handler 610 can be associated with a Wi-Fi target medium. In this example, the device (s) desiring to use the Wi-Fi target medium send an association request (s) and receive an association response (s) in the form of an attribute list. The attribute list can be provided by the handler 610 to the association manager, which can then form an association response.

以下の表9、表10、及び表11について、「属性」は、属性要素に関連付けられた親しみやすい名称を指す。「属性ID」は、属性リストの属性要素を識別するのに使用される識別子(たとえば、番号)である。「長さ」は、属性要素のデータの長さを指す。属性の長さは、可変長且つ/又は固定長とすることができ、この例では、バイトで表される。長さの値は、最大長を指定することもできる。アソシエーション応答では、一例において、この値に対するオフセットが必ず存在するように固定長を使用することができ、それによって、デバイスが応答を解析する能力が支援される。属性の実際の値は、そのデータに割り当てられた長さ全体を使い切らない場合がある。これらの場合には、追加フィールドが、属性データの実際の長さを指定することができる。「許容値」は、デバイスによってサポートされる値を記述する許容値フィールドを指す。許容値が必要とされる場合、このことは、その値が属性リストに含まれるときに、デバイスがその値をサポートしなければならないことを意味する。表9、表10、及び/又は表11に明記されていない限り、値は必要であるとみなすべきである。許容値がオプションである場合、デバイスは、その値をサポートする必要はないが、その値が属性リストに含まれることに対応できるように準備されているべきである。オプションの値は、この仕様の今後のバージョンで必要とされる可能性がある。
無線プロトコル
IEEE802.11標準規格セットは、暗号化ネットワーク(たとえば、WEPネットワーク)及び非暗号化ネットワークの2つのネットワークタイプを定義している。WEPプロトコルの既知の弱点のために、無線業界は、WEPプロトコルの主要な不備に対処するためのメカニズムとしてIEEE802.1x標準規格に対するサポートを実施した。これらの主要な不備は、ユーザ認証、暗号化鍵管理、及び暗号化鍵配布である。WEP暗号化ネットワークでは、ユーザが暗号化鍵を提供する必要があり、802.1x使用可能ネットワークでは、ユーザが有効な信用証明書(たとえば、デジタル証明書又はユーザ名及びパスワード等)を有する場合には、暗号化鍵は自動的に提供される。暗号化された802.11ネットワークでは、このことは、ユーザビリティの問題を提示する。その理由は、ユーザがWEP鍵を入力する必要があるのか、それとも、ネットワークが802.1xをサポートしていて、その場合に、ユーザがWEP鍵を入力する必要がないのかをアプリオリに判断することが、現在のところ可能ではないからである。
In the following Table 9, Table 10, and Table 11, “attribute” refers to a friendly name associated with the attribute element. “Attribute ID” is an identifier (for example, a number) used to identify an attribute element of the attribute list. “Length” indicates the length of data of the attribute element. The length of the attribute can be variable and / or fixed length, in this example expressed in bytes. The length value can also specify the maximum length. In an association response, in one example, a fixed length can be used to ensure that there is an offset to this value, which aids the device's ability to analyze the response. The actual value of the attribute may not use up the entire length allocated for the data. In these cases, the additional field can specify the actual length of the attribute data. “Tolerance” refers to an tolerance field that describes the value supported by the device. If an acceptable value is required, this means that the device must support that value when that value is included in the attribute list. Unless otherwise specified in Table 9, Table 10, and / or Table 11, values should be considered necessary. If the tolerance value is optional, the device need not support that value, but should be prepared to accommodate that value being included in the attribute list. Optional values may be required in future versions of this specification.
Wireless Protocol The IEEE 802.11 standard set defines two network types: encrypted networks (eg, WEP networks) and unencrypted networks. Due to the known weaknesses of the WEP protocol, the wireless industry has implemented support for the IEEE 802.1x standard as a mechanism to address the major deficiencies of the WEP protocol. These major deficiencies are user authentication, encryption key management, and encryption key distribution. In a WEP encrypted network, the user needs to provide an encryption key, and in an 802.1x-enabled network, if the user has valid credentials (eg, a digital certificate or username and password). The encryption key is provided automatically. In an encrypted 802.11 network, this presents usability issues. The reason is to determine a priori whether the user needs to enter a WEP key or if the network supports 802.1x and the user does not need to enter the WEP key. However, it is not possible at present.

WEPアルゴリズムは、暗号的に弱点があることが示されてきているが、WEPアルゴリズムのこの根本的な弱点に対処するために、Wi−Fi保護アクセス(Wi-Fi Protected Access)(WPA)と呼ばれる、802.11標準規格セットに対するセキュリティ強化が導入された。また、WPAは、WPA対応アクセスポイントが自身のビーコンフレームに含む情報要素を指定することによって、元の802.11標準規格のユーザビリティ問題のいくつかにも対処している。この情報要素は、とりわけ、ネットワークがユーザに暗号化鍵を入力するように要求する(WPA事前共有鍵モード(WPA−PSK)と呼ばれる)のか、それとも、鍵は、ユーザの信用証明書によって自動的に提供される(「WPAモード」と呼ばれる)のかを記述する。
有線同等プライバシー
WEPは、IEEE802.11標準規格によって定義され、有線ネットワークと同等のデータ機密性レベルを提供することを目的としている。無線LANネットワークの性質のために、このネットワークへの物理アクセスを監視するセキュリティインフラストラクチャを実施することは難しくなる可能性がある。物理接続が必要とされる有線ネットワークとは異なり、無線アクセスポイント(AP)の範囲内にいる者は誰でも、おそらく、フレームを送受信することができるだけでなく、送信中の他のフレームに耳を澄ませることができる。これによって、無線LANフレームの盗聴及びリモートスニフィングが非常に容易になる。
The WEP algorithm has been shown to be cryptographically weak, but is called Wi-Fi Protected Access (WPA) to address this fundamental weakness of the WEP algorithm. Security enhancements to the 802.11 standard set were introduced. WPA also addresses some of the original 802.11 standard usability issues by specifying the information elements that a WPA-enabled access point includes in its beacon frame. This information element, among other things, requires the network to ask the user to enter an encryption key (called WPA pre-shared key mode (WPA-PSK)), or the key is automatically set by the user's credentials. Is provided (called "WPA mode").
Wired Equivalent Privacy WEP is defined by the IEEE 802.11 standard and aims to provide a level of data confidentiality comparable to wired networks. Due to the nature of wireless LAN networks, it can be difficult to implement a security infrastructure that monitors physical access to this network. Unlike wired networks, where physical connections are required, anyone within range of a wireless access point (AP) can probably send and receive frames and listen to other frames in transit. Can be clarified. This greatly facilitates wiretapping and remote sniffing of wireless LAN frames.

WEPは、無線ノード間で送信されるデータを暗号化することによってデータ機密性サービスを提供する。802.11フレームのWEP暗号化は、802.11フレームのMACヘッダのWEPフラグを設定することによって示される。WEPは、無線フレームの暗号化された部分に完全性チェック値(ICV)を含めることによって、確率誤差に対するデータ完全性を提供する。   WEP provides a data confidentiality service by encrypting data transmitted between wireless nodes. 802.11 frame WEP encryption is indicated by setting the WEP flag in the 802.11 frame MAC header. WEP provides data integrity against probability errors by including an integrity check value (ICV) in the encrypted portion of the radio frame.

以下の表は、WEPが定義する2つの共有鍵を示す。   The following table shows the two shared keys defined by WEP.

Figure 0004856700
WEP暗号化は、40ビット及び104ビットの暗号化鍵を用いたRC4対称ストリーム暗号を使用する。
Wi−Fi保護アクセス
WPAは、WEPのセキュリティ機能を改良するように設計されたとえばWi−Fi標準規格である。WEPとは異なり、WPAでは、802.1x認証が必要とされる。WPAでは、ユニキャスト暗号化鍵及びグローバル暗号化鍵の双方のリキー(rekeying)が必要とされる。ユニキャスト暗号化鍵では、一時的鍵完全性プロトコル(Temporal Key Integrity Protocol)(TKIP)が、フレームごとに鍵を変更し、この変更は、無線クライアントと無線アクセスポイント(AP)との間で同期される。グローバル暗号化鍵では、WPAが、無線APが変更された鍵を接続された無線クライアントに広告するための機構を含む。
Figure 0004856700
WEP encryption uses RC4 symmetric stream ciphers with 40-bit and 104-bit encryption keys.
Wi-Fi Protected Access WPA is designed to improve the security features of WEP, for example the Wi-Fi standard. Unlike WEP, WPA requires 802.1x authentication. In WPA, rekeying of both a unicast encryption key and a global encryption key is required. For unicast encryption keys, the Temporal Key Integrity Protocol (TKIP) changes the key every frame and this change is synchronized between the wireless client and the wireless access point (AP). Is done. For global encryption keys, the WPA includes a mechanism for advertising the changed key to the connected wireless client.

TKIPは、WEPを、WEPアルゴリズムよりも強力な暗号化アルゴリズムに置き換える。また、TKIPは、暗号化鍵が決定された後のセキュリティ構成の検証、各フレームのユニキャスト暗号化鍵の同期された変更、及び、各事前共用鍵認証について一意の開始ユニキャスト暗号化鍵の決定も提供する。   TKIP replaces WEP with a stronger encryption algorithm than the WEP algorithm. TKIP also verifies the security configuration after the encryption key has been determined, synchronized changes of the unicast encryption key for each frame, and unique starting unicast encryption key for each pre-shared key authentication. It also provides a decision.

WPAは、さらに、8バイトのメッセージ完全性コード(MIC)を計算するアルゴリズムを推定する「Michael」として知られたメソッドも使用する。MICは、IEEE802.11フレームのデータ部分と、4バイトの完全性チェック値(ICV)との間に置かれる。MICフィールドは、フレームデータ及びICVと共に暗号化される。   WPA also uses a method known as “Michael” that estimates an algorithm that calculates an 8-byte message integrity code (MIC). The MIC is placed between the data portion of the IEEE 802.11 frame and a 4-byte integrity check value (ICV). The MIC field is encrypted along with the frame data and ICV.

WPAは、IEEE802.11i標準規格完成時には、IEEE802.11i標準規格に置き換えられる暫定的な標準規格である。
Wi−Fiハンドラ
アソシエーションタイプは、アソシエーション要求及びアソシエーション応答のヘッダセクションに含まれる属性であり、データ属性から分離されている。この属性は、アソシエーションマネージャが、アソシエーション要求(複数可)を正しいハンドラへ転送するのに使用される。この例では、Wi−Fiハンドラ410は、以下の必要なアソシエーションタイプを有する。
WPA is a tentative standard that is replaced by the IEEE 802.11i standard when the IEEE 802.11i standard is completed.
The Wi-Fi handler association type is an attribute included in the header section of the association request and association response, and is separated from the data attribute. This attribute is used by the association manager to forward the association request (s) to the correct handler. In this example, the Wi-Fi handler 410 has the following required association types:

Figure 0004856700
アソシエーション要求のデータセクションは、その属性タイプに特有の属性を含む。以下の表は、アソシエーションマネージャがWi−Fiハンドラ610へ転送することができる例示的な属性を識別する。
Figure 0004856700
The data section of the association request contains attributes that are specific to that attribute type. The following table identifies exemplary attributes that the association manager can transfer to the Wi-Fi handler 610.

Figure 0004856700
MACアドレス
MACアドレスは、48ビット値のMACアドレスを含む6バイト値である。たとえば、0x00 0x07 0xE9 0x4C 0xA8 0x1Cである。
ネットワーク認証タイプフラグ
このフラグセットは、どの「ネットワーク認証タイプ」のタイプがサポートされているのかを信号で伝えることをデバイスに可能にする。この情報は、診断目的に使用することができる。デバイスが、必要とされる属性をサポートしていない場合、ユーザに対して、このことを通知することができ、この問題を是正するための実行可能な指令を与えることができる。この例では、このフィールドの値は、以下の値のうちの1つ又は2つ以上のビットごとのORである。
Figure 0004856700
MAC address The MAC address is a 6-byte value containing a 48-bit MAC address. For example, 0x00 0x07 0xE9 0x4C 0xA8 0x1C.
Network Authentication Type Flag This flag set allows the device to signal which “network authentication type” types are supported. This information can be used for diagnostic purposes. If the device does not support the required attributes, the user can be notified of this and can be provided with executable instructions to correct this problem. In this example, the value of this field is a bitwise OR of one or more of the following values:

0x0001=Open(オープン)
0x0002=WPAPSK
0x0004=Shared(共有)
0x0008=WPA
0x0010=WPA−NONE
0x0020=WPA2
この例では、他の値は予備であり、0に設定される。
データ暗号化タイプフラグ
このフラグセットは、どの「データ暗号化タイプ」のタイプがサポートされているのかを信号で伝えることをデバイスに可能にする。この情報は、診断目的に使用することができる。デバイスが、必要とされる属性をサポートしていない場合、ユーザに対して、このことを通知することができ、この問題を是正するための実行可能な指令を与えることができる。この例では、このフィールドの値は、以下の値のうちの1つ又は2つ以上のビットごとのORである。
0x0001 = Open (open)
0x0002 = WPAPSK
0x0004 = Shared
0x0008 = WPA
0x0010 = WPA-NONE
0x0020 = WPA2
In this example, the other values are reserved and are set to zero.
Data Encryption Type Flag This flag set allows the device to signal which “data encryption type” types are supported. This information can be used for diagnostic purposes. If the device does not support the required attributes, the user can be notified of this and can be provided with executable instructions to correct this problem. In this example, the value of this field is a bitwise OR of one or more of the following values:

0x0001=WEP
0x0002=TKIP
0x0004=AES
この場合も、この例では、他の値は予備であり、0に設定される。
接続タイプフラグ
このフラグセットは、どの「接続タイプ」のタイプがサポートされているのかを信号で伝えることをデバイスに可能にする。この情報は、診断目的に使用することができる。デバイスが、必要とされる属性をサポートしていない場合、ユーザに対して、このことを通知することができ、この問題を是正するための実行可能な指示をユーザに与えることができる。この例では、このフィールドの値は、以下の値のうちの1つ又は2つ以上のビットごとのORである。
0x0001 = WEP
0x0002 = TKIP
0x0004 = AES
Again, in this example, the other values are reserved and are set to zero.
Connection Type Flag This flag set allows the device to signal which “connection type” types are supported. This information can be used for diagnostic purposes. If the device does not support the required attributes, the user can be notified of this and the user can be provided with actionable instructions to correct this problem. In this example, the value of this field is a bitwise OR of one or more of the following values:

0x01=ESS(拡張サービスセット(Extended Service Set))
0x02=IBSS(独立基本サービスセット(Independent Basic Service Set))
この例では、他の値は予備であり、0に設定される。
0x01 = ESS (Extended Service Set)
0x02 = IBSS (Independent Basic Service Set)
In this example, the other values are reserved and are set to zero.

ハンドラ610のサービス650との相互作用に少なくとも部分的に基づいて、応答コンポーネント630は、アソシエーション応答に関連付けられた情報を生成する。Wi−Fiハンドラの例を続けて、表11は、例示的なアソシエーション応答属性を識別するものである。この例の属性リストにおける属性の長さは固定である。したがって、デバイス製品は、適切なオフセットへ容易にジャンプして、応答におけるどの所与の属性の値も読み出すことができる。オフセットは、属性の先頭を参照する。   Based at least in part on the interaction of handler 610 with service 650, response component 630 generates information associated with the association response. Continuing with the Wi-Fi handler example, Table 11 identifies exemplary association response attributes. The length of the attribute in the attribute list of this example is fixed. Thus, the device product can easily jump to the appropriate offset and read the value of any given attribute in the response. The offset refers to the beginning of the attribute.

Figure 0004856700
SSID
SSIDは、前述したように、ブロードキャスト無線ネットワークで使用される文字列である。
ネットワーク鍵
ネットワーク鍵は、ネットワークを安全にするのに使用される文字列である。この例では、以下の属性が、ネットワーク鍵の許容値に対する制約条件として置かれる。デバイスは、以下の構成を受け入れるか又は拒否する準備がされていなければならない。
Figure 0004856700
SSID
As described above, the SSID is a character string used in the broadcast wireless network.
Network key The network key is a string used to secure the network. In this example, the following attributes are placed as constraints on the allowable value of the network key. The device must be prepared to accept or reject the following configuration:

Figure 0004856700
WEP鍵
データ認証タイプがWEPであるとき、ネットワーク鍵は、40ビット又は104ビットのWEP鍵のASCII表現又はHEX表現である。このタイプは、文字列の長さによって決定することができる。
WPAPSKパスフレーズ
ネットワーク鍵属性が0文字〜63文字のASCII文字列であり、且つ、「ネットワーク認証タイプ」属性がWPAである場合、ネットワーク鍵属性は、WPAバイナリ鍵を導出するパスフレーズとして使用される。
自動提供鍵(Key Provided Automatically)(802.1x)
「自動提供鍵(802.1x)」属性は、ネットワーク鍵が801.xを介して提供されるか否かを指示する。WPA−PSK又はWEPが、無線ネットワークを安全にするのに使用される場合、これは、通常は0に設定される。
ネットワーク認証タイプ
ネットワーク認証タイプは、どのタイプのセキュリティメカニズムが、特定のネットワークに参加するのに必要とされるのかを示す。このフラグセットは、以下のメカニズムのうちのいずれが使用されるのかを指定する。
Figure 0004856700
WEP Key When the data authentication type is WEP, the network key is an ASCII or HEX representation of a 40-bit or 104-bit WEP key. This type can be determined by the length of the string.
WPAPSK passphrase When the network key attribute is an ASCII character string of 0 to 63 characters and the “network authentication type” attribute is WPA, the network key attribute is used as a passphrase for deriving the WPA binary key. .
Key Provided Automatically (802.1x)
The “automatically provided key (802.1x)” attribute indicates that the network key is 801. Indicates whether to be provided via x. If WPA-PSK or WEP is used to secure the wireless network, this is usually set to zero.
Network Authentication Type The network authentication type indicates what type of security mechanism is required to join a particular network. This flag set specifies which of the following mechanisms is used:

0x0001=Open
0x0002=WPAPSK
0x0004=Shared
0x0008=WPA
0x0010=WPA−NONE
0x0020=WPA2
この例では、他の値は予備であり、0に設定される。重要なことには、アソシエーション要求とは異なり、これらのフラグは、相互に排他的であり、一度に1つのフラグしか設定することができない。
データ暗号化タイプ
この値は、無線ネットワークによって配備される暗号化メカニズムを指定する。このフラグセットは、以下のメカニズムのうちのいずれが使用されるのかを指定する。
0x0001 = Open
0x0002 = WPAPSK
0x0004 = Shared
0x0008 = WPA
0x0010 = WPA-NONE
0x0020 = WPA2
In this example, the other values are reserved and are set to zero. Importantly, unlike association requests, these flags are mutually exclusive and only one flag can be set at a time.
Data encryption type This value specifies the encryption mechanism deployed by the wireless network. This flag set specifies which of the following mechanisms is used:

0x0001=WEP
0x0002=TKIP
0x0004=AES
他のすべての値は予備であり、0に設定される。重要なことには、アソシエーション要求とは異なり、これらのフラグは相互に排他的であり、一度に1つのフラグしか設定することができない。
接続タイプ
接続タイプは、無線ネットワークのタイプを定義する。このフラグセットは、以下のメカニズムのうちのいずれが使用されるのかを指定する。
0x0001 = WEP
0x0002 = TKIP
0x0004 = AES
All other values are reserved and are set to zero. Importantly, unlike association requests, these flags are mutually exclusive and only one flag can be set at a time.
Connection type The connection type defines the type of wireless network. This flag set specifies which of the following mechanisms is used:

0x01=ESS
0x02=IBSS
他のすべての値は予備であり、0に設定される。これらのフラグは相互に排他的である。
0x01 = ESS
0x02 = IBSS
All other values are reserved and are set to zero. These flags are mutually exclusive.

次に図7を参照すると、本発明の一態様によるアソシエーションドライバシステム700が示されている。システム700は、トラステッド媒体通信コンポーネント720及びドライバ通信コンポーネント730を備えたドライバ710を含む。   With reference now to FIG. 7, an association driver system 700 in accordance with an aspect of the present invention is illustrated. System 700 includes a driver 710 with a trusted media communication component 720 and a driver communication component 730.

トラステッド媒体通信コンポーネント720は、トラステッド媒体(たとえば、USB接続)を介してデバイス740とインターフェースする。一例では、トラステッド媒体通信コンポーネント720は、装置740からアソシエーション要求(たとえば、デバイス列挙とは時間非依存で開始されたアソシエーション要求)を受信する。別の例では、トラステッド媒体通信コンポーネント720は、アソシエーション要求を発行する要求の通知を受信する。その後、ドライバ710は、ドライバ通信コンポーネント730を介してアソシエーションマネージャ(図示せず)へ送信されるアソシエーション要求を生成する。   Trusted media communication component 720 interfaces with device 740 via a trusted media (eg, USB connection). In one example, the trusted media communication component 720 receives an association request (eg, an association request initiated time independent of device enumeration) from the device 740. In another example, the trusted media communication component 720 receives a notification of a request to issue an association request. Thereafter, the driver 710 generates an association request that is sent to an association manager (not shown) via the driver communication component 730.

一例では、ドライバ(複数可)710は、以下のインターフェースを実施する。   In one example, driver (s) 710 implements the following interface:

Figure 0004856700
「Manager」は、アソシエーションマネージャへのインターフェースポインタであり、それによって、ドライバは、SendAssociationRequest(アソシエーション要求送信)をコールすることができるようになっている。Start()は、新しいアソシエーション要求の検出及び発行をドライバに開始してほしいときにアソシエーションマネージャによってコールされる。Stop()は、新しいアソシエーション要求の発行をドライバに停止してほしいとき(たとえば、ユーザが特定のトラステッド媒体上で関連付けを無効にしたいとき)に、アソシエーションマネージャによってコールされる。
Figure 0004856700
“Manager” is an interface pointer to the association manager, so that the driver can call SendAssociationRequest (send association request). Start () is called by the association manager when the driver wants the driver to start detecting and issuing a new association request. Stop () is called by the association manager when the driver wants the driver to stop issuing new association requests (eg, when the user wants to invalidate the association on a particular trusted medium).

一例では、特定のドライバ710をUSBトラステッド媒体に関係付けることができる。この例では、非トラステッド媒体を用いたいデバイス(複数可)が、ドライバ710を通じて安全にアソシエーション要求(複数可)を送信し、アソシエーション応答(複数可)を受信する。   In one example, a particular driver 710 can be associated with a USB trusted medium. In this example, the device (s) that want to use the untrusted medium securely send an association request (s) through the driver 710 and receive an association response (s).

動的アソシエーション機能を実施するデバイス(複数可)では、アソシエーション要求をデバイス列挙とは独立に生成できるが、このデバイス(複数可)の場合に、一例では、オプションの割り込みINエンドポイントが存在する。このエンドポイントによって、新しいアソシエーション要求の通知が容易にされる。このオプションのエンドポイントの標準エンドポイント記述子は、表14に見ることができる。   In the device (s) that implements the dynamic association function, the association request can be generated independently of the device enumeration, but in this case, there is an optional interrupt IN endpoint in one example. This endpoint facilitates notification of new association requests. A standard endpoint descriptor for this optional endpoint can be found in Table 14.

Figure 0004856700
デバイスのインターフェースが、オプションのエンドポイントを含まない場合、関連付けは、列挙時にのみ行われる。このようなデバイスがアソシエーションプロセスを開始したい場合、デバイスは、デバイスが開始するUSBリセットを行わなければならない。これによって、デバイスは、ホストにより再列挙され、その時点で、ホストは、デバイスからアソシエーション要求(複数可)を取り出す。別の例では、デバイスは、HUB機能も実施して、そのデバイスの希望に応じてアソシエーション機能を往来させる(come and go)ことができる。
Figure 0004856700
If the device interface does not include an optional endpoint, the association is only done at enumeration. If such a device wishes to initiate the association process, the device must perform a USB reset initiated by the device. This causes the device to be re-enumerated by the host, at which point the host retrieves association request (s) from the device. In another example, a device can also perform a HUB function to come and go an association function as desired by the device.

この制御エンドポイントは、アソシエーションインターフェースをサポートするデバイスの唯一の必須のエンドポイントであるので、必要なデータ転送は、そのエンドポイント上で行われる。この例では、これらの転送は、アソシエーションクラス要求の形である。   Since this control endpoint is the only required endpoint for devices that support the association interface, the necessary data transfer takes place on that endpoint. In this example, these transfers are in the form of association class requests.

表15は、一例において、デバイスがサポートしなければならないアソシエーションクラス要求のリストを示している。   Table 15 shows, in one example, a list of association class requests that the device must support.

Figure 0004856700
GET_ASSOCIATION_INFORMATION(アソシエーション情報取得)
この要求は、デバイスからアソシエーション情報構造体を取り出す。このアソシエーション情報は、REQUEST_INFO(要求情報)ブロックのリストを含む。各REQUEST_INFOブロックは、デバイスが発行したい単一のアソシエーション要求に関するものである。
Figure 0004856700
GET_ASSOCIATION_INFORMATION (get association information)
This request retrieves the association information structure from the device. This association information includes a list of REQUEST_INFO (request information) blocks. Each REQUEST_INFO block is for a single association request that the device wishes to issue.

Figure 0004856700
表17は、例示的なASSOCIATION_INFORMATION構造体を示している。
Figure 0004856700
Table 17 shows an exemplary ASSOCIATION_INFORMATION structure.

Figure 0004856700
表18は、例示的なアソシエーション情報フラグ情報を提供する。
Figure 0004856700
Table 18 provides exemplary association information flag information.

Figure 0004856700
表19は、例示的なREQUEST_INFO(要求情報)構造体を示している。
Figure 0004856700
Table 19 shows an exemplary REQUEST_INFO (request information) structure.

Figure 0004856700
GET_ASSOCIATION_REQUEST(アソシエーション要求取得)
この要求は、デバイスから特定のアソシエーションを取り出す。この要求は、wValue(w値)フィールド内のRequestID(要求ID)値によって識別される。
Figure 0004856700
GET_ASSOCIATION_REQUEST (get association request)
This request retrieves a specific association from the device. This request is identified by the RequestID value in the wValue field.

Figure 0004856700
この例では、要求ブロックは、4KBのデータブロックである。制御転送の最大転送サイズは64KBであり、その結果、理論的には、各GET_ASSOCIATION_REQUESTにおいて16個の要求ブロックを転送することができる。転送される実際のデータ量は、wLength(w長さ)フィールドによって指定される。wValueフィールドで指定されたBlockNumber(ブロック番号)は、この制御転送の開始ブロック番号を識別する。その結果、この例では、デバイス540は、RequestIDによって指定される要求のアソシエーション要求データを、オフセットBlockNumber×4KBから開始して、wLengthバイトを転送して返すはずである。
SET_ASSOCIATION_RESPONSE(アソシエーション応答設定)
この要求は、wValueフィールドのRequestID値によって識別される特定のアソシエーション要求に対する応答を送信する。
Figure 0004856700
In this example, the request block is a 4 KB data block. The maximum transfer size of the control transfer is 64 KB. As a result, theoretically, 16 request blocks can be transferred in each GET_ASSOCIATION_REQUEST. The actual amount of data transferred is specified by the wLength field. The BlockNumber (block number) specified in the wValue field identifies the start block number of this control transfer. As a result, in this example, the device 540 should return association request data for the request specified by the RequestID, starting with the offset BlockNumber × 4 KB and transferring wLength bytes.
SET_ASSOCIATION_RESPONSE (association response setting)
This request sends a response to the specific association request identified by the RequestID value in the wValue field.

Figure 0004856700
この例では、TrasferFlags(転送フラグ)値は、表22に見られる値の0個以上の値のビットごとのORである。
Figure 0004856700
In this example, the TrasferFlags (transfer flag) value is an OR for each bit of zero or more of the values found in Table 22.

Figure 0004856700
アソシエーション割り込みINメッセージ(複数可)
NewAssociationRequest(新しいアソシエーション要求)
この割り込みINメッセージは、デバイスが、処理する必要がある新しいアソシエーション要求(複数可)又は変更されたアソシエーション要求(複数可)を有することをホストに示す。ホストは、このメッセージを受信すると、GET_ASSOCIATION_INFORMATION要求を発行することができ、それに応じてこれらの要求を処理することができる。
Figure 0004856700
Association interrupt IN message (s)
NewAssociationRequest (New Association Request)
This interrupt IN message indicates to the host that the device has new association request (s) or modified association request (s) that need to be processed. Upon receiving this message, the host can issue GET_ASSOCIATION_INFORMATION requests and can process these requests accordingly.

Figure 0004856700
システム100、デバイス110、アソシエーションマネージャ120、ハンドラ130、ドライバ140、ハンドラレジストリ150、ドライバレジストリ160、システム400、アソシエーションマネージャ410、マネージャ通信コンポーネント420、ハンドラ識別コンポーネント430、アソシエーションマネージャ510、初期化コンポーネント520、システム600、ハンドラ610、要求コンポーネント620、応答コンポーネント630、アソシエーションプロセッサ640、サービス650、システム700、ドライバ710、トラステッド媒体通信コンポーネント720、ドライバ通信コンポーネント730、及び/又はデバイス740は、その用語が本明細書に定義された通りのコンピュータコンポーネントとすることができることが認識されるべきである。
Figure 0004856700
System 100, device 110, association manager 120, handler 130, driver 140, handler registry 150, driver registry 160, system 400, association manager 410, manager communication component 420, handler identification component 430, association manager 510, initialization component 520, System 600, handler 610, request component 620, response component 630, association processor 640, service 650, system 700, driver 710, trusted media communication component 720, driver communication component 730, and / or device 740 are terminology herein. Computer components as defined in the It should be appreciated that it is Rukoto.

図8〜図18を簡単に参照すると、本発明に従って実施できる方法論が示されている。説明を簡単にするために、これらの方法論は、一連のブロックとして図示されて説明されるが、本発明によれば、いくつかのブロックは、本明細書に図示されて説明されるものとは異なる順序で行うことができ、且つ/又は、他のブロックと同時に行うことができるので、本発明は、ブロックの順序によって限定されるものではないことが理解されるべきであり、また、認識されるべきである。その上、示されたすべてのブロックが、本発明による方法論を実施するのに必要とされるとは限らない場合もある。   Referring briefly to FIGS. 8-18, methodologies that can be implemented in accordance with the present invention are illustrated. For ease of explanation, these methodologies are illustrated and described as a series of blocks, but according to the present invention, some blocks are not illustrated and described herein. It should be understood and appreciated that the present invention is not limited by the order of the blocks as they can be performed in a different order and / or can be performed simultaneously with other blocks. Should be. Moreover, not all illustrated blocks may be required to implement a methodology in accordance with the present invention.

本発明は、1つ又は2つ以上のコンポーネントによって実行されるプログラムモジュール等のコンピュータ実行可能命令の一般的な状況で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、データ構造体等を含む。通常、プログラムモジュールの機能は、さまざまな実施形態において、要望に応じ組み合わせることもできるし、分散させることもできる。   The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by one or more components. Generally, program modules include routines, programs, objects, data structures, etc. that perform particular tasks or implement particular abstract data types. In general, the functions of the program modules can be combined or distributed as desired in various embodiments.

図8を参照すると、本発明の一態様による、デバイスを関連付ける方法800が示されている。810において、(たとえば、デバイスの)接続が、トラステッド媒体(たとえば、USB)を介して確立される。820において、アソシエーション要求が、たとえばデバイス及び/又は関連付けられたドライバによって発行される。830において、アソシエーション応答に関連付けられた情報が、(たとえば、ドライバから)受信される。この情報は、たとえば、アソシエーションマネージャから受信されたアソシエーション応答を含むことができる。代替的に、この情報は、アソシエーションマネージャから受信されたアソシエーション応答の一部を含むことができる。   With reference to FIG. 8, illustrated is a methodology 800 for associating devices in accordance with an aspect of the present invention. At 810, a connection (eg, of the device) is established via a trusted medium (eg, USB). At 820, an association request is issued by the device and / or associated driver, for example. At 830, information associated with the association response is received (eg, from a driver). This information can include, for example, an association response received from the association manager. Alternatively, this information may include a portion of the association response received from the association manager.

840において、関連付けが成功したのか否かに関する判断が行われる。840における判断がNO(いいえ)である場合には、それ以上の処理は行われない。840における判断がYES(はい)である場合には、850において、アソシエーション応答に関連付けられた情報を用いて、非トラステッド媒体(たとえば、無線接続)を介して(たとえば、デバイスの)接続が行われる。   At 840, a determination is made regarding whether the association was successful. If the determination at 840 is NO (no), no further processing is performed. If the determination at 840 is YES, at 850, a connection (eg, for the device) is made via an untrusted medium (eg, a wireless connection) using information associated with the association response. .

次に図9を参照すると、本発明の一態様による、デバイスの関連付けを容易にする方法900が示されている。910において、アソシエーション要求に関連付けられた情報が受信される。920において、アソシエーション要求が受信されたか否かに関する判断が行われる。920における判断がNOである場合には、930において、アソシエーション要求が生成され、処理は940に続く。920における判断がYESである場合には、940において、受信されたアソシエーション要求は、たとえば、アソシエーションマネージャへ送信される。   Now referring to FIG. 9, illustrated is a methodology 900 that facilitates device association in accordance with an aspect of the present invention. At 910, information associated with the association request is received. At 920, a determination is made regarding whether an association request has been received. If the determination at 920 is no, an association request is generated at 930 and processing continues to 940. If the determination at 920 is YES, at 940, the received association request is transmitted to, for example, an association manager.

950において、アソシエーション応答が、たとえばアソシエーションマネージャから受信される。960において、アソシエーション応答に関連付けられた情報が、要求側デバイスに提供される。たとえば、この情報は、アソシエーション応答全体及び/又はアソシエーション応答の一部を含むことができる。その後、それ以上の処理は行われない。   At 950, an association response is received from, for example, an association manager. At 960, information associated with the association response is provided to the requesting device. For example, this information can include the entire association response and / or a portion of the association response. Thereafter, no further processing is performed.

次に、図10〜図12を参照すると、本発明の一態様による、USB接続を介してデバイスを関連付ける方法1000が示されている。1004において、デバイスが列挙され、且つ/又は、新しいアソシエーション要求イベントが発行される。1008において、GET_ASSOCIATION_INFORMATION要求が、たとえばドライバによってデバイスへ送信される。1012において、アソシエーション情報全体のサイズが、たとえばドライバによって求められる(たとえば、サイズ=3+sizeof (REQUEST_INFO)×PendingRequestCount)。   10-12, a method 1000 for associating a device via a USB connection according to an aspect of the present invention is illustrated. At 1004, the device is enumerated and / or a new association request event is issued. At 1008, a GET_ASSOCIATION_INFORMATION request is sent to the device, for example, by the driver. At 1012, the size of the entire association information is determined, for example, by the driver (eg, size = 3 + sizeof (REQUEST_INFO) × PendingRequestCount).

1016において、アソシエーション情報のほぼすべてが、たとえばドライバによって受信されたか否かに関する判断が行われる。1016における判断がNOである場合には、処理は1008に続く。1016における判断がYESである場合には、1020において、PendingRequestCountが0よりも大きいか否かに関する判断が行われる。1020における判断がNOである場合には、それ以上の処理は行われない。   At 1016, a determination is made as to whether substantially all of the association information has been received, for example, by a driver. If the determination at 1016 is NO, processing continues at 1008. If the determination at 1016 is YES, at 1020 a determination is made regarding whether PendingRequestCount is greater than zero. If the determination at 1020 is NO, no further processing is performed.

1020における判断がYESである場合には、1024において、(たとえばドライバにより)ハンドリングする要求が識別される。1028において、転送(たとえば、アソシエーション要求)のサイズが求められる。1032において、GET_ASSOCIATION_REQUESTが送信される。1036において、要求データがそれ以上あるか否かに関する判断が行われる。1036における判断がYESである場合には、プロセスは1028に続く。1036における判断がNOである場合には、1040において、要求されたアソシエーションがハンドリングされ、アソシエーション応答が(たとえば、アソシエーションマネージャ及び/又はハンドラによって)生成される。   If the determination at 1020 is YES, at 1024, a request to handle is identified (eg, by a driver). At 1028, the size of the transfer (eg, association request) is determined. At 1032 GET_ASSOCIATION_REQUEST is transmitted. At 1036, a determination is made as to whether there is more request data. If the determination at 1036 is YES, the process continues to 1028. If the determination at 1036 is NO, at 1040, the requested association is handled and an association response is generated (eg, by an association manager and / or handler).

1040において、アソシエーション応答の転送サイズが求められる。1048において、SET_ASSOCIATION_RESPONSEが送信される。1052において、応答データがそれ以上あるか否かに関する判断が行われる。1052における判断がYESである場合には、処理は1044に続く。1052における判断がNOである場合には、1056において、要求がそれ以上あるか否かに関する判断が行われる。   At 1040, the transfer size of the association response is determined. At 1048, SET_ASSOCIATION_RESPONSE is transmitted. At 1052, a determination is made regarding whether there is more response data. If the determination at 1052 is YES, processing continues at 1044. If the determination at 1052 is NO, a determination is made at 1056 as to whether there are more requests.

1056における判断がYESである場合には、処理は1024に続く。1056における判断がNOである場合には、1060において、追加の要求フラグがアソシエーション情報で送信されているか否かに関する判断が行われる。1060における判断がYESである場合には、処理は1008に続く。1060における判断がNOである場合には、それ以上の処理は行われない。   If the determination at 1056 is YES, processing continues at 1024. If the determination at 1056 is NO, a determination is made at 1060 as to whether an additional request flag has been transmitted in the association information. If the determination at 1060 is YES, processing continues at 1008. If the determination at 1060 is NO, no further processing is performed.

次に図13を参照すると、本発明の一態様によるアソシエーション管理方法1300が示されている。1310において、アソシエーション要求が、たとえばドライバから受信される。1320において、そのアソシエーション要求のハンドラが識別される。1340において、そのアソシエーション要求のハンドラが存在するか否かに関する判断が行われる。1340における判断がNOである場合には、1350において、アソシエーション応答の失敗が生成され、処理は1360に続く。   Referring now to FIG. 13, illustrated is an association management method 1300 according to one aspect of the present invention. At 1310, an association request is received from, for example, a driver. At 1320, a handler for the association request is identified. At 1340, a determination is made as to whether there is a handler for the association request. If the determination at 1340 is no, an association response failure is generated at 1350 and processing continues at 1360.

1340における判断がYESである場合には、1370において、アソシエーション要求に関連付けられた情報が、ハンドラへ送信される。たとえば、この情報は、アソシエーション要求及び/又はアソシエーション要求の一部(たとえば、属性リスト(複数可))を含むことができる。   If the determination at 1340 is YES, at 1370, information associated with the association request is sent to the handler. For example, this information can include an association request and / or a portion of an association request (eg, attribute list (s)).

1380において、アソシエーション応答に関連付けられた情報が、ハンドラから受信される。1360において、アソシエーション応答が、要求側ドライバに提供される。   At 1380, information associated with the association response is received from the handler. At 1360, an association response is provided to the requesting driver.

図14〜図16を参照すると、本発明の一態様によるアソシエーション管理方法1400が示されている。1404において、アソシエーション要求が、たとえばドライバから受信される。1408において、このアソシエーション要求の有効性が確認される。1412において、このアソシエーション要求が整合形式であるか否かに関する判断が行われる。1412における判断がNOである場合には、1416において、非整合形式のアソシエーション要求を示すアソシエーション応答が生成され、処理は1420に続く。   With reference to FIGS. 14-16, an association management method 1400 in accordance with an aspect of the present invention is illustrated. At 1404, an association request is received from, for example, a driver. At 1408, the validity of this association request is confirmed. At 1412, a determination is made as to whether this association request is in a consistent format. If the determination at 1412 is NO, an association response is generated at 1416 indicating an inconsistent association request and processing continues at 1420.

1412における判断がYESである場合には、1424において、アソシエーション要求のハンドラが突き止められる。1428において、ハンドラが見つかっているか否かに関する判断が行われる。1428における判断がNOである場合には、1432において、サポートされていないアソシエーションタイプを示すアソシエーション応答が生成され、処理は1420に続く。   If the determination at 1412 is YES, at 1424 an association request handler is located. At 1428, a determination is made regarding whether a handler has been found. If the determination at 1428 is NO, an association response is generated at 1432 indicating an unsupported association type, and processing continues at 1420.

1428における判断がYESである場合には、1436において、アソシエーション要求が解析され、属性(複数可)のリストが構築される。1440において、この属性リストは、識別されたハンドラへ送信される。1444において、応答情報がハンドラから受信される。1448において、関連付けが成功したか否かに関する判断が行われる。1448における判断がNOである場合には、1452において、適切なエラーステータスを示すアソシエーション応答が生成され、処理は1420に続く。   If the determination at 1428 is YES, at 1436, the association request is analyzed and a list of attribute (s) is constructed. At 1440, this attribute list is sent to the identified handler. At 1444, response information is received from the handler. At 1448, a determination is made regarding whether the association was successful. If the determination at 1448 is NO, at 1452, an association response indicating an appropriate error status is generated, and processing continues at 1420.

1448における判断がYESである場合には、1456において、応答フォーマットの有効性が確認される。1460において、応答が整合形式であるか否かに関する判断が行われる。1460における判断がNOである場合には、1464において、適切なエラーステータスを示すアソシエーション応答が生成され、処理は1420に続く。   If the determination at 1448 is YES, the validity of the response format is confirmed at 1456. At 1460, a determination is made regarding whether the response is in a consistent format. If the determination at 1460 is no, at 1464, an association response indicating an appropriate error status is generated, and processing continues at 1420.

1460における判断がYESである場合には、1468において、アソシエーション応答が、ハンドラからの応答に基づいて生成される。1420において、このアソシエーション応答は、要求側ドライバに提供され、それ以上の処理は行われない。   If the determination at 1460 is yes, at 1468, an association response is generated based on the response from the handler. At 1420, this association response is provided to the requesting driver and no further processing is performed.

図17を参照すると、本発明の一態様によるアソシエーションハンドラ方法1700が示されている。1710において、アソシエーション要求に関連付けられた情報(たとえば、属性リスト)が、たとえばアソシエーションマネージャから受信される。1720において、アソシエーション要求が処理される。1730において、応答情報が、アソシエーションマネージャに提供される。   With reference to FIG. 17, illustrated is an association handler method 1700 in accordance with an aspect of the present invention. At 1710, information (eg, an attribute list) associated with the association request is received, eg, from an association manager. At 1720, the association request is processed. At 1730, response information is provided to the association manager.

本発明のさまざまな態様に追加の状況を提供するために、図18及び以下の解説は、本発明のさまざまな態様を実施できる適した動作環境1810の簡単で一般的な説明を提供することを目的としている。本発明は、1つ若又は2つ以上のコンピュータ若しくは他のデバイスによって実行されるプログラムモジュール等のコンピュータ実行可能命令の一般的な状況で説明されるが、本発明は、他のプログラムモジュールと組み合わせて実施でき、且つ/又は、ハードウェア及びソフトウェアの組み合わせとして実施できることも当業者には認識されよう。一方、一般に、プログラムモジュールは、特定のタスクを実行するか又は特定のデータタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体等を含む。動作環境1810は、適した動作環境の一例にすぎず、本発明の使用範囲又は機能の範囲に関する制限を示唆することを意図したものではない。本発明と共に使用するのに適し得る他の既知のコンピュータシステム、環境、及び/又は構成には、上記のシステム又はデバイスを含むパーソナルコンピュータ、ハンドヘルドデバイス又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、プログラマブル家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、分散コンピューティング環境等が含まれるが、これらに限定されるものではない。   In order to provide additional context for various aspects of the present invention, FIG. 18 and the following discussion provide a brief general description of a suitable operating environment 1810 in which various aspects of the present invention may be implemented. It is aimed. Although the invention will be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices, the invention may be combined with other program modules. Those skilled in the art will also recognize that this can be implemented as a combination of hardware and software. In general, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular data types. The operating environment 1810 is only one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Other known computer systems, environments, and / or configurations that may be suitable for use with the present invention include personal computers, handheld devices or laptop devices, multiprocessor systems, microprocessor-based systems including the systems or devices described above. , Programmable home appliances, network PCs, minicomputers, mainframe computers, distributed computing environments, and the like.

図18を参照すると、本発明のさまざまな態様を実施するための1つの例示的な環境1810は、コンピュータ1812を含む。コンピュータ1812は、処理ユニット1814、システムメモリ1816、及びシステムバス1818を含む。システムバス1818は、システムコンポーネントを処理ユニット1814に結合する。システムコンポーネントには、システムメモリ1816が含まれるが、これに限定されるものではない。処理ユニット1814は、利用可能なさまざまなプロセッサの任意のものとすることができる。デュアルマイクロプロセッサ及び他のマイクロプロセッサアーキテクチャを処理ユニット1814として用いることもできる。   With reference to FIG. 18, one exemplary environment 1810 for implementing various aspects of the invention includes a computer 1812. Computer 1812 includes a processing unit 1814, system memory 1816, and system bus 1818. System bus 1818 couples system components to processing unit 1814. System components include, but are not limited to, system memory 1816. The processing unit 1814 can be any of various available processors. Dual microprocessors and other microprocessor architectures may be used as the processing unit 1814.

システムバス1818は、あらゆる利用可能なさまざまなバスアーキテクチャを使用したメモリバス若しくはメモリコントローラ、周辺バス若しくは外部バス、及び/又はローカルバスを含むいくつかのタイプのバス構造(複数可)の任意のものとすることができる。バスアーキテクチャには、8ビットバス、業界標準アーキテクチャ(ISA)、マイクロチャネルアーキテクチャ(MSA)、拡張ISA(EISA)、インテリジェントドライブエレクトロニクス(IDE)、VESAローカルバス(VLB)、周辺機器相互接続(PCI)、ユニバーサルシリアルバス(USB)、アドバンストグラフィックスポート(AGP)、パーソナルコンピュータメモリカード国際協会バス(PCMCIA)、及び小型コンピュータシステムインターフェース(SCSI)が含まれるが、これらに限定されるものではない。   The system bus 1818 can be any of several types of bus structure (s) including a memory bus or memory controller, a peripheral or external bus, and / or a local bus using any available various bus architectures. It can be. Bus architecture includes 8-bit bus, industry standard architecture (ISA), microchannel architecture (MSA), extended ISA (EISA), intelligent drive electronics (IDE), VESA local bus (VLB), peripheral device interconnection (PCI) , Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association Bus (PCMCIA), and Small Computer System Interface (SCSI).

システムメモリ1816は、揮発性メモリ1820及び不揮発性メモリ1822を含む。起動中等にコンピュータ1812内の要素間で情報を転送する基本ルーチンを含んだ基本入出力システム(BIOS)は、不揮発性メモリ1822に記憶される。限定ではなく例示として、不揮発性メモリ1822には、読み出し専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、又はフラッシュメモリが含まれ得る。揮発性メモリ1820には、ランダムアクセスメモリ(RAM)も含まれる。RAMは、外部キャッシュメモリとして働く。限定ではなく例示として、RAMは、シンクロナスRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、エンハンストSDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ダイレクトラムバスRAM(DRRAM)等の多くの形で利用可能である。   The system memory 1816 includes volatile memory 1820 and nonvolatile memory 1822. A basic input / output system (BIOS) that includes a basic routine for transferring information between elements within the computer 1812 during startup or the like is stored in a non-volatile memory 1822. By way of example, and not limitation, non-volatile memory 1822 may include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), or flash memory. . Volatile memory 1820 also includes random access memory (RAM). The RAM serves as an external cache memory. By way of example and not limitation, the RAM may be synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), sync link DRAM (SLDRAM). It can be used in many forms such as direct RAM bus RAM (DRRAM).

また、コンピュータ1812は、着脱可能/着脱不能な揮発性/不揮発性コンピュータストレージ媒体も含む。図18は、たとえば、ディスクストレージデバイス1824を示している。ディスクストレージ1824には、磁気ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュメモリカード、又はメモリスティックのようなデバイスが含まれるが、これらに限定されるものではない。加えて、ディスクストレージ1824は、他のストレージ媒体とは別個のストレージ媒体又は他のストレージ媒体と組み合わされたストレージ媒体も含むことができる。これらのストレージ媒体には、コンパクトディスクROMデバイス(CD−ROM)、CDレコーダブルドライブ(CD−Rドライブ)、CD書き換え可能ドライブ(CD−RWドライブ)、デジタル多用途ディスクROMドライブ(DVD−ROM)等の光ディスクドライブが含まれるが、これらに限定されるものではない。ディスクストレージデバイス1824のシステムバス1818への接続を容易にするために、インターフェース1826等の着脱可能インターフェース又は着脱不能インターフェースが、通常、使用される。   Computer 1812 also includes removable / non-removable volatile / nonvolatile computer storage media. FIG. 18 shows a disk storage device 1824, for example. Disk storage 1824 includes devices such as magnetic disk drives, floppy disk drives, tape drives, Jaz drives, Zip drives, LS-100 drives, flash memory cards, or memory sticks. It is not limited. In addition, the disk storage 1824 can also include storage media that is separate from other storage media or combined with other storage media. These storage media include compact disk ROM devices (CD-ROM), CD recordable drives (CD-R drives), CD rewritable drives (CD-RW drives), and digital versatile disk ROM drives (DVD-ROM). However, the present invention is not limited to these. To facilitate connection of the disk storage device 1824 to the system bus 1818, a removable or non-removable interface such as interface 1826 is typically used.

図18は、ユーザと、適した動作環境1810で説明した基本的なコンピュータ資源との間の仲介手段として働くソフトウェアを説明していることが認識されるべきである。このようなソフトウェアには、オペレーティングシステム1828が含まれる。オペレーティングシステム1828は、ディスクストレージデバイス1824上に記憶することができ、コンピュータシステム1812の資源を制御して割り当てるように働く。システムアプリケーション1830は、システムメモリ1816又はディスクストレージデバイス1824のいずれかに記憶されたプログラムモジュール1832及びプログラムデータ1834を通じて、オペレーティングシステム1828による資源の管理を活用する。本発明は、さまざまなオペレーティングシステム又はオペレーティングシステムの組み合わせと共に実施できることが認識されるべきである。   It should be appreciated that FIG. 18 describes software that acts as an intermediary between a user and the basic computer resources described in a suitable operating environment 1810. Such software includes an operating system 1828. Operating system 1828 can be stored on disk storage device 1824 and serves to control and allocate resources of computer system 1812. System application 1830 leverages the management of resources by operating system 1828 through program modules 1832 and program data 1834 stored in either system memory 1816 or disk storage device 1824. It should be appreciated that the present invention can be implemented with various operating systems or combinations of operating systems.

ユーザは、入力デバイス(複数可)を通じてコンピュータ1812内にコマンド又は情報を入力する。入力デバイス1836は、マウス等のポインティングデバイス、トラックボール、スタイラス、タッチパッド、キーボード、マイク、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナ、TVチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラ等が含まれるが、これらに限定されるものではない。これらの入力デバイス及び他の入力デバイスは、インターフェースポート(複数可)1838を介しシステムバス1818を通じて処理ユニット1814に接続する。インターフェースポート(複数可)1838には、シリアルポート、パラレルポート、ゲームポート、及びユニバーサルシリアルバス(USB)が含まれるが、これらに限定されるものではない。出力デバイス(複数可)1840は、入力デバイス(複数可)1836と同じタイプのポートのいくつかを使用する。したがって、たとえば、USBポートを使用して、コンピュータ1812に入力を提供することができ、コンピュータ1812から出力デバイス1840へ情報を出力することができる。出力アダプタ1842は、他の出力デバイス1840の中でも、専用のアダプタを必要とするモニタ、スピーカ、及びプリンタのようないくつかの出力デバイス1840があることを示すために設けられている。出力アダプタ1842には、限定ではなく例示として、出力デバイス1840とシステムバス1818との間の接続手段を提供するビデオカード及びサウンドカードが含まれる。リモートコンピュータ(複数可)1844等、他のデバイス及び/又はデバイスのシステムは、入力機能及び出力機能の双方を提供することに留意すべきである。   A user enters commands or information into computer 1812 through input device (s). The input device 1836 includes a pointing device such as a mouse, a trackball, a stylus, a touch pad, a keyboard, a microphone, a joystick, a game pad, a satellite antenna, a scanner, a TV tuner card, a digital camera, a digital video camera, a webcam, and the like. However, it is not limited to these. These input devices and other input devices connect to processing unit 1814 through system bus 1818 via interface port (s) 1838. Interface port (s) 1838 include, but are not limited to, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device (s) 1840 uses some of the same type of ports as input device (s) 1836. Thus, for example, a USB port can be used to provide input to computer 1812 and information can be output from computer 1812 to output device 1840. Output adapter 1842 is provided to indicate that there are several output devices 1840 such as monitors, speakers, and printers that require a dedicated adapter, among other output devices 1840. The output adapter 1842 includes, by way of example and not limitation, video cards and sound cards that provide connection means between the output device 1840 and the system bus 1818. It should be noted that other devices and / or systems of devices, such as remote computer (s) 1844, provide both input and output functions.

コンピュータ1812は、リモートコンピュータ(複数可)1844等の1つ又は2つ以上のリモートコンピュータへの論理接続を使用するネットワーク接続環境で動作することができる。リモートコンピュータ(複数可)1844は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベース電気器具、ピアデバイス、又は他の一般的なネットワークノード等とすることができ、通常は、コンピュータ1812について説明した要素の多く又は全部を含む。簡潔にするために、リモートコンピュータ(複数可)1844と共にメモリストレージデバイス1846しか示されていない。リモートコンピュータ(複数可)1844は、ネットワークインターフェース1848を通じてコンピュータ1812に論理接続され、次いで、通信接続1850を介して物理接続される。ネットワークインターフェース1848は、ローカルエリアネットワーク(LAN)やワイドエリアネットワーク(WAN)等の通信ネットワークを包含する。LAN技術には、ファイバ配線データインターフェース(FDDI)、銅配線データインターフェース(CDDI)、Ethernet/IEEE802.3、トークンリング/IEEE802.5等が含まれる。WAN技術には、ポイントツーポイントリンク、サービス統合デジタル網(ISDN)及びその変形のような回線交換ネットワーク、パケット交換ネットワーク、並びにデジタル加入者線(DSL)が含まれるが、これらに限定されるものではない。   Computer 1812 may operate in a network connection environment using logical connections to one or more remote computers, such as remote computer (s) 1844. The remote computer (s) 1844 can be a personal computer, server, router, network PC, workstation, microprocessor-based appliance, peer device, or other common network node, etc. Includes many or all of the elements described for 1812. For simplicity, only the memory storage device 1846 is shown with the remote computer (s) 1844. Remote computer (s) 1844 is logically connected to computer 1812 through network interface 1848 and then physically connected via communication connection 1850. The network interface 1848 includes a communication network such as a local area network (LAN) or a wide area network (WAN). LAN technologies include Fiber Wiring Data Interface (FDDI), Copper Wiring Data Interface (CDDI), Ethernet / IEEE802.3, Token Ring / IEEE802.5, etc. WAN technologies include, but are not limited to, circuit-switched networks such as point-to-point links, integrated services digital networks (ISDN) and variants thereof, packet-switched networks, and digital subscriber lines (DSL). is not.

通信接続(複数可)1850は、ネットワークインターフェース1848をバス1818に接続するのに用いられるハードウェア/ソフトウェアを指す。通信接続1850は、図を明瞭にするために、コンピュータ1812の内部に示されているが、通信接続1850は、コンピュータ1812の外部に存在することもできる。ネットワークインターフェース1848に接続するのに必要なハードウェア/ソフトウェアには、単なる例示として、モデム、ISDNアダプタ、Ethernet(登録商標)カード等の内部技術及び外部技術が含まれる。モデムには、通常の電話グレードのモデム、ケーブルモデム、及びDSLモデムを含まれる。   Communication connection (s) 1850 refers to the hardware / software used to connect network interface 1848 to bus 1818. Although communication connection 1850 is shown inside computer 1812 for clarity of illustration, communication connection 1850 can also be external to computer 1812. The hardware / software necessary to connect to the network interface 1848 includes, by way of example only, internal and external technologies such as modems, ISDN adapters, Ethernet cards, and the like. Modems include regular telephone grade modems, cable modems, and DSL modems.

一例の実施形態では、無線ユニバーサルシリアルバス(WUSB)サポートを含むプラグンゴー(Plug and Go)(PONG)アーキテクチャとして拡張可能アーキテクチャを実施することができる。図19は、PONGシステム1900の一例を示している。マネージャ1905は、データを正しい相手に渡すことを容易にするように構成される中央コンポーネントである。マネージャ1905は、(dll等の)ドライバデータをプロセス内にロードすることができる。たとえば、マネージャ1905は、ドライバ登録に基づいてドライバデータをロードすることができる。マネージャ1905は、ドライバから要求ブロックを受信すると、要求ブロックヘッダを見ることができ、その要求タイプの適切なハンドラをロードすることができる。ハンドラ又はドライバは、システム起動時にロードすることができる。要求ブロックは、処理のためにハンドラに与えられる。ハンドラが完了すると、応答ブロックが、マネージャ1905を通じてドライバへ返される。   In one example embodiment, the extensible architecture may be implemented as a Plug and Go (PONG) architecture that includes wireless universal serial bus (WUSB) support. FIG. 19 shows an example of the PONG system 1900. Manager 1905 is a central component that is configured to facilitate passing data to the correct counterpart. Manager 1905 can load driver data (such as dll) into the process. For example, manager 1905 can load driver data based on driver registration. When manager 1905 receives the request block from the driver, it can see the request block header and load the appropriate handler for that request type. The handler or driver can be loaded at system startup. The request block is given to the handler for processing. When the handler is complete, a response block is returned to the driver through the manager 1905.

ドライバ1920〜1922は、或る形のハードウェア又は別のソフトウェアコンポーネントのいずれかとインターフェースすることを担当する。ドライバ1920〜1922は、トラステッド媒体によりマネージャ1905からデバイスへ要求をチャネルで送ることを担当する。   Drivers 1920-1922 are responsible for interfacing with either some form of hardware or another software component. Drivers 1920-1922 are responsible for channeling requests from manager 1905 to the device over the trusted media.

ドライバ1920〜1922のそれぞれは、新しい要求が発行されるべき時に検出することができ、ドライバは、その要求を取り出すか又は生成する。この要求は、マネージャ1905に渡され、マネージャ1905は、後に、ドライバへ応答を返す。   Each of the drivers 1920-1922 can detect when a new request is to be issued, and the driver retrieves or generates the request. This request is passed to the manager 1905, which later returns a response to the driver.

複数のハンドラが、同じドライバを使用することができる(すなわち、複数のターゲット媒体が、同じトラステッド媒体を使用することができる)。ドライバ1920〜1922は、要求ブロック又は応答ブロックの詳細についての知識を必要としない場合がある。   Multiple handlers can use the same driver (ie, multiple target media can use the same trusted media). Drivers 1920-1922 may not require knowledge of the details of the request block or response block.

ハンドラ1910〜1912は、デバイスのインストール/アソシエーションを実施するサービスとインターフェースすることを担当する。ハンドラ1910〜1912は、ターゲット媒体に直接関係付けることができ、その特定のターゲット媒体の要求ブロックの属性についての明示の知識を有する必要がある唯一のコンポーネントとすることができる。他のコンポーネントも使用できるグローバルな属性が存在する。   Handlers 1910-1912 are responsible for interfacing with services that perform device installation / association. The handlers 1910-1912 can be directly related to the target medium and can be the only component that needs to have explicit knowledge about the attributes of the request block for that particular target medium. There is a global attribute that can be used by other components.

ハンドラ1910〜1912は、無線媒体等のあらゆるタイプのターゲット媒体をハンドリングするように構成することができる。図19に示すように、ハンドラ1912は、WUSB媒体をハンドリングするように構成される。WUSBは、無線USB周辺機器を無線USBホストに接続するためのUSBインプリメンターズフォーラム(USB Implementers Forum)によって定義された無線プロトコルである。WUSBプロトコルは、超広帯域(UWB)の上にあるマルチバンドOFDMアライアンス(MBOA)の媒体アクセス制御(MAC)レイヤ上で機能するように仕様が定められている。ハンドラ1910〜1912のいずれか1つがマネージャ1905から要求ブロックを受信すると、そのハンドラは、その内容を解析して、適切な動作を決定する。   The handlers 1910-1912 can be configured to handle any type of target medium, such as a wireless medium. As shown in FIG. 19, the handler 1912 is configured to handle WUSB media. WUSB is a wireless protocol defined by the USB Implementers Forum for connecting wireless USB peripherals to wireless USB hosts. The WUSB protocol is specified to function on the medium access control (MAC) layer of the multi-band OFDM alliance (MBOA) on the ultra-wide band (UWB). When any one of the handlers 1910 to 1912 receives a request block from the manager 1905, the handler analyzes its contents and determines an appropriate action.

PONGシステム1900は、WUSBに関連付けられた属性を含む要求及び応答をデバイスが送信することを可能にする。デバイスからハンドラに渡された要求では、属性リストは、アソシエーションタイプ、接続デバイスID、接続鍵、デバイスセットアップクラスGUID、サポートされる帯域グループ、インテグレータ(integrator)サイトURL等を含むことができる。アソシエーションタイプは、要求及び応答のヘッダセクションに含まれる属性であり、データ属性から分離されている。アソシエーションタイプ属性は、正しいハンドラへ要求を転送するためにマネージャによって使用される。表24は、アソシエーションタイプ属性の一例の仕様を示している。   The PONG system 1900 allows a device to send requests and responses that include attributes associated with WUSB. In a request passed from the device to the handler, the attribute list may include association type, connection device ID, connection key, device setup class GUID, supported bandwidth group, integrator site URL, and the like. The association type is an attribute included in the request and response header sections and is separated from the data attribute. The association type attribute is used by the manager to forward the request to the correct handler. Table 24 shows an example of the specification of the association type attribute.

Figure 0004856700
表24及び以下の表の用語は、次のように定義される。
Figure 0004856700
The terms in Table 24 and the following table are defined as follows:

属性名:属性要素に関連付けられた親しみやすい名称。   Attribute name: A friendly name associated with the attribute element.

属性ID:この番号は、属性リストの属性要素を識別するのに使用される。   Attribute ID: This number is used to identify an attribute element in the attribute list.

長さ:属性要素のデータの長さ。属性の長さは、可変長又は固定長とすることでき、バイトで表される。長さの値は、最大長を指定することもできる。応答では、この値に対するオフセットが必ず存在するように固定長を使用することができ、それによって、デバイスが応答を解析する能力が支援される。属性の実際の値は、そのデータに割り当てられた長さ全体を使い切らない場合がある。これらの場合には、追加フィールドが、属性データの実際の長さを指定する。   Length: Length of attribute element data. The length of the attribute can be variable or fixed and is expressed in bytes. The length value can also specify the maximum length. In the response, a fixed length can be used to ensure that there is an offset to this value, which aids the device's ability to analyze the response. The actual value of the attribute may not use up the entire length allocated for the data. In these cases, the additional field specifies the actual length of the attribute data.

M/O:このフィールドは、変数が必須であるのか、又はオプションであるのかを知らせる。必須の属性要素は、属性リストに常に含まれる。オプションの値は、必ずしも存在するとは限らない。「必須」(Mandatory)はMで表され、「オプション」(Option)はOで表される。   M / O: This field informs whether the variable is mandatory or optional. Required attribute elements are always included in the attribute list. The option value is not necessarily present. “Mandatory” is represented by M, and “Option” is represented by O.

許容値:許容値フィールドは、デバイスによってサポートされる値を記述する。許容値が必要とされる場合、このことは、その値が属性リストに含まれるときに、デバイスがその値をサポートすることを意味する。表に明記されていない限り、値は必要であるとみなすべきである。許容値がオプションである場合、デバイスは、その値をサポートする必要はないが、その値が属性リストに含まれることに対応できるように準備されているべきである。オプションの値は、この仕様の今後のバージョンで必要とされる可能性がある。   Tolerance: The tolerance field describes the values supported by the device. If an acceptable value is required, this means that the device supports that value when that value is included in the attribute list. Unless otherwise stated in the table, values should be considered necessary. If the tolerance value is optional, the device need not support that value, but should be prepared to accommodate that value being included in the attribute list. Optional values may be required in future versions of this specification.

要求のデータセクションは、属性タイプに特有の属性を含むことができる。表25は、WUSBハンドラへ転送できる要求属性の例を示している。   The data section of the request can include attributes specific to the attribute type. Table 25 shows an example of request attributes that can be transferred to the WUSB handler.

Figure 0004856700
接続デバイスID(CDID)は、無線USBデバイスのデバイスIDである。デバイスIDが、(工場、前の関連付けの試み、ユーザ入力等からのいずれであろうと)デバイスに事前に割り当てられていた場合、デバイスは、同じIDを利用したい場合がある。既存のIDを再利用することによって、ホストは、そのデバイスに以前出会ったことがあることを知って、異なって振る舞うことができる。また、既存のIDを再利用することにより、ホストが異なって振る舞うことが、複数のホストに同時に関連付けることができるデバイスに対してより容易になる。たとえば、デバイスが複数のホストにわたって同じCDIDを保持したい場合又はデバイスがこのホストにすでに関連付けられていることを示したい場合に、CDIDは、デバイスが送信することができる。ホストは、この値を上書きすることもできるし、この値を再利用することもできる。
Figure 0004856700
The connection device ID (CDID) is a device ID of the wireless USB device. If a device ID has been pre-assigned to a device (whether from a factory, previous association attempt, user input, etc.), the device may wish to utilize the same ID. By reusing the existing ID, the host can behave differently, knowing that the device has previously been encountered. Also, reusing existing IDs makes it easier for devices that can be associated with multiple hosts simultaneously to behave differently. For example, a CDID can be sent by a device if the device wants to keep the same CDID across multiple hosts or if it wants to indicate that the device is already associated with this host. The host can overwrite this value or reuse this value.

この属性が欠落している場合、又は、その値がすべて0である場合、ホストは、デバイスが新しいデバイスIDを必要としているものと仮定する。ホストは、この一意のIDを生成して、そのIDをアソシエーション応答でデバイスに返す。   If this attribute is missing, or if its value is all zero, the host assumes that the device needs a new device ID. The host generates this unique ID and returns the ID to the device in an association response.

接続鍵(CK)は、WUSB仕様に記述されているように、相互認証を容易にし、且つ、セッション暗号化鍵を生成するのに使用される鍵である。デバイスが、ハードコード化された接続鍵を有する必要がある場合に、CKは、デバイスが送信することができる。デバイスは、生成された鍵を記憶できない(NVRAMを有しない)場合に、この属性を要求に含めたい場合がある。しかしながら、デバイスがこれらの鍵をハードコード化することは推奨されず、逆に、デバイスは、より安全にするために、ホストがそれらの鍵を生成することを可能にすべきである。   The connection key (CK) is a key used to facilitate mutual authentication and generate a session encryption key, as described in the WUSB specification. The CK can be sent by the device if the device needs to have a hard-coded connection key. The device may want to include this attribute in the request if it cannot store the generated key (does not have NVRAM). However, it is not recommended that devices hard-code these keys, and conversely, the device should allow the host to generate those keys to make it more secure.

この属性が欠落している場合、又は、その値がすべて0である場合、ホストは、デバイスがCKの生成を必要としているものと仮定し、CKをアソシエーション応答で返す。   If this attribute is missing, or if its value is all zeros, the host assumes that the device needs to generate CK and returns CK in the association response.

デバイスセットアップクラスGUIDは、サポートされるセットアップクラスGUIDのうちの1つである。この値をアソシエーション要求で提供することによって、デバイスの適切なアイコンの表示が可能になったり、或るシステムポリシー又はユーザ定義のポリシーの実施が可能になったりする。この値は、どのようなタイプのデバイスが関連付けられているのかを求めるのに使用することができる。GUIDは、ホスト上にインストールされたデバイスセットアップクラスとの照合を行ってアイコン、説明等の事物を決定するのに使用することができる。また、これは、あらゆるUIに適切な情報を表示するのを助け、それによって、ユーザが特定のデバイスを識別するのを助ける。   The device setup class GUID is one of the supported setup class GUIDs. Providing this value in the association request may allow the display of an appropriate icon for the device, or allow implementation of certain system policies or user-defined policies. This value can be used to determine what type of device is associated. The GUID can be used to determine things such as icons and descriptions by matching with a device setup class installed on the host. This also helps to display the appropriate information on every UI, thereby helping the user to identify a particular device.

サポートされた帯域グループは、ホスト無線が、チャネルを選ぶ時にどのチャネルから選ぶべきかを決定するのに使用することができる。たとえば、サポートされた帯域グループは、ホストが使用できるのはどのようなPHYチャネルであるのかを決定するためにホストが使用することができる。デバイスからのこの情報がない場合、帯域グループ1が、すべてのデバイスによってサポートされる必要がある唯一の帯域グループであるので、ホストは、帯域グループ1のチャネルへ変更する必要がある。これによって、すべてのホスト及びデバイスが、帯域グループ1を使用することを選ぶことになり、したがって、それらのチャネルに殺到し、他の帯域グループの値を小さくすることになる。この情報が、関連付け時にホストへ通信される場合、ホストは、おそらく自身に接続し得るすべてのデバイスのサポートされたチャネルを知ることになり、したがって、それにより、ホストは、おそらく、他の帯域グループのチャネルを選ぶことが可能になる。   Supported band groups can be used to determine which channel the host radio should choose from when choosing a channel. For example, a supported band group can be used by a host to determine what PHY channels it can use. Without this information from the device, the host needs to change to band group 1's channel because band group 1 is the only band group that needs to be supported by all devices. This will cause all hosts and devices to choose to use band group 1, thus flooding those channels and reducing the values of other band groups. If this information is communicated to the host at the time of association, the host will probably know the supported channels of all devices that can connect to it, so that the host will probably It becomes possible to select the channel.

或るビット位置における1は、関連付けられたPHY帯域グループの帯域及びチャネルのすべてがサポートされていることを示す。ビット位置0における1は、帯域グループ1のすべての帯域がサポートされていることを示す。   A 1 in a bit position indicates that all of the bands and channels of the associated PHY band group are supported. A 1 in bit position 0 indicates that all bands of band group 1 are supported.

インテグレータサイトURLは、USB−IFウェブサイトにおけるデバイスの詳細へのリンクを提供することによってデバイスについての情報をユーザに提供するために、UIにおいて使用することができる。   The integrator site URL can be used in the UI to provide the user with information about the device by providing a link to the device details on the USB-IF website.

表26は、WUSBデバイスへ転送できる応答属性の例を示している。この表には、オフセットの例が示されている。また、ヘッダ属性は、属性リストの最初の19バイトを占めることができる。   Table 26 shows examples of response attributes that can be transferred to the WUSB device. This table shows examples of offsets. Also, the header attribute can occupy the first 19 bytes of the attribute list.

Figure 0004856700
ハンドラからデバイスへ渡される応答では、属性リストは、接続ホストID、接続デバイスID、接続鍵、好ましいチャネル、ホスト領域等を含むことができる。接続ホストID(CHID)は、一意のホストIDである。デバイスは、このIDを使用して、ホストのビーコンを突き止めることができ、それによって、ホストを突き止めることができる。接続デバイスID(CDID)は、一意のデバイスIDである。このIDは、CHIDによって指定されたホストに対してデバイスを一意に識別する。複数のホストにわたって一意であることは保証されていない。接続鍵(CK)は、この状況を使用して再接続を確立するためのものである。CKは、128ビットCCM鍵とすることができる。
Figure 0004856700
In the response passed from the handler to the device, the attribute list can include a connection host ID, a connection device ID, a connection key, a preferred channel, a host area, and the like. The connection host ID (CHID) is a unique host ID. The device can use this ID to locate the host's beacon, thereby locating the host. The connection device ID (CDID) is a unique device ID. This ID uniquely identifies the device with respect to the host specified by the CHID. It is not guaranteed to be unique across multiple hosts. The connection key (CK) is for establishing reconnection using this situation. CK can be a 128-bit CCM key.

好ましいチャネルは、ホストが使用している好ましいチャネルの順序をデバイスに通知するために、ホスト応答において指定することができる。これは、ホストがいずれかの所与のチャネル上に存在する相対尤度についてのヒントをデバイスに与えることによって、ホストの検索プロセスを最適化することができる。デバイスは、ホストが指定した順序でホストを検索することができ、したがって、デバイスが、線形順序でスキャンするのではなく、スキャンされた最初の数個のチャネルの1つにおいてホストを見つける可能性をより高くすることができる。   Preferred channels can be specified in the host response to inform the device of the preferred channel order that the host is using. This can optimize the host search process by giving the device a hint about the relative likelihood that the host exists on any given channel. The device can search for the host in the order specified by the host, thus the possibility that the device will find the host in one of the first few channels scanned rather than scanning in a linear order. Can be higher.

ホスト領域は、ホストがどの領域で動作しているのかについてデバイスに通知するために、ホスト応答において指定することができる。デバイスは、この情報を使用して、その無線動作特性を領域特有の値に変更することができる。   The host region can be specified in the host response to notify the device about which region the host is operating in. The device can use this information to change its radio operating characteristics to region-specific values.

一実施形態では、属性リストの属性の長さは、固定とすることができる。したがって、デバイス製造者は、適切なオフセットに容易にジャンプして、応答におけるどの所与の属性の値も読み出すことができる。オフセットは、属性の始点を参照する。   In one embodiment, the attribute length of the attribute list may be fixed. Thus, the device manufacturer can easily jump to the appropriate offset and read the value of any given attribute in the response. The offset refers to the start point of the attribute.

他の属性は、デバイスとハンドラとの間の要求及び応答に使用することができる。これらの他の属性には、ハードウェア及び互換ID、チャネルID、帯域グループ、デバイス製造者文字列、デバイス記述文字列、ホスト文字列、デバイスクラスGUID、製造者URL、デバイスアイコン、アソシエーション秘密鍵等が含まれ得る。アソシエーション秘密鍵は、デバイスに書き込まれるPONG特有の鍵である。デバイスは、通常、PONGを通じた場合を除き、アソシエーション秘密鍵を明らかにしない。デバイスが次に取り付けられた時、アソシエーション秘密鍵が取り出され、デバイスを認証するのに使用される。アソシエーション秘密鍵を使用することによって、ユーザに尋ねることなく、アソシエーション情報を黙って更新する等のタスクを行うことを可能にすることができ、それによって、デバイスが自身のCDID等を保持することを可能にすることができる。アソシエーション鍵を使用しない場合、(たとえば、別のホストから取得されたり、別のデバイスから盗難されたり等した)同じCDIDを有する2つのデバイスは、それらのデバイスのPCに接続する能力に影響を与える可能性があり得る。   Other attributes can be used for requests and responses between the device and the handler. These other attributes include hardware and compatibility ID, channel ID, band group, device manufacturer string, device description string, host string, device class GUID, manufacturer URL, device icon, association secret key, etc. Can be included. The association secret key is a PONG specific key written in the device. The device normally does not reveal the association secret key except through PONG. When the device is next attached, the association secret key is retrieved and used to authenticate the device. By using the association secret key, it is possible to perform tasks such as silently updating the association information without asking the user, thereby allowing the device to keep its own CDID etc. Can be possible. Without an association key, two devices with the same CDID (eg, obtained from another host or stolen from another device) will affect their ability to connect to the PC There is a possibility.

以下は、上述したアーキテクチャ及びWUSB接続メカニズムを使用して達成できる2つのシナリオの例である。
シナリオ1−PCを伴ったWUSBポータブルプレイヤ
トッドは、Windows(登録商標) Media Playerと連動して同期する新しい有線+無線USBポータブルプレイヤを入手した。トッドは、箱を開けた際に、そのプレイヤを取り外し、含まれている再充電可能バッテリーをプレイヤに加える。次に、彼は、サードパーティのソフトウェアをインストールする指示に従い、次に、有線USBケーブルを使用してプレイヤをPCに取り付け、バッテリーを充電する。バッテリーの充電中、プレイヤは、無線USB接続を得るためにPCにも結合され、有線USBによりデバイス同期も開始する。
The following are examples of two scenarios that can be achieved using the architecture and WUSB connection mechanism described above.
Scenario 1—WUSB Portable Player with PC Todd has acquired a new wired + wireless USB portable player that synchronizes in conjunction with Windows® Media Player. When Todd opens the box, he removes the player and adds the included rechargeable battery to the player. Next, he follows instructions to install third-party software, and then attaches the player to the PC using a wired USB cable and charges the battery. During battery charging, the player is also coupled to the PC to obtain a wireless USB connection and initiates device synchronization via wired USB.

ケーブルのプラグ接続が解除され、デバイスが圏内にいると、ユーザには、無線USBデバイス検出用の新しいダイアログが見えないはずであり、デバイスは、単に作業を開始するはずである。
シナリオ2−PCを伴った携帯電話及びストレージ
ジャックは、事前に関連付けられているPC及びWUSBストレージデバイスを有する。ジャックが、自身のWUSB携帯電話をPCに関連付けるとき、ジャックは、他のWUSBデバイス(1つの空いている接続スロットを有する場合がある)も携帯電話に関連付けるオプションを得る。これは、PCの価値を増大させ、エンドユーザの接続経験を簡単にする。
If the cable is unplugged and the device is in range, the user should not see a new dialog for wireless USB device detection, and the device should simply start working.
Scenario 2-Mobile phone with PC and storage jack have pre-associated PC and WUSB storage devices. When Jack associates his WUSB cell phone with the PC, Jack gets the option of associating other WUSB devices (which may have one free connection slot) with the cell phone. This increases the value of the PC and simplifies the end user's connection experience.

以下には、例示のため、WUSBデバイスを関連付けるための4つのアソシエーションモデルの例が含まれている。   The following include four examples of association models for associating WUSB devices for illustrative purposes.

UI手法−(デバイスが近接すると)双方のシステム上の接続ボタンを使用し、近接したペアにできるデバイスのUIリストからデバイスを識別する。   UI approach—Use the connect button on both systems (when the devices are in proximity) to identify the device from the UI list of devices that can be in close proximity.

シリアル番号手法−これは、UI手法と非常に類似しているが、ユーザが、UIからデバイスを識別すると、ユーザは、セキュリティを有効にするために、デバイスからホストへシリアル番号をタイプ入力しなければならない。   Serial number approach—This is very similar to the UI approach, but once the user identifies the device from the UI, the user must type the serial number from the device to the host to enable security. I must.

USBケーブル手法−汎用USBケーブルを使用して、無線USBデバイスを、関連付けたいホストにプラグ接続する。ワイヤは、通常のオペレーションに使用することもできるし、関連付けと共に充電することに使用することもできる。   USB cable approach—Use a generic USB cable to plug a wireless USB device into the host you want to associate. The wire can be used for normal operation or can be used to charge with an association.

USBフラッシュ鍵−汎用USB大容量記憶装置(たとえば、USBフラッシュデバイス)を使用して、デバイスとホストとの間で識別情報及びセキュリティ情報を記憶及び交換する。   USB flash key—A general purpose USB mass storage device (eg, USB flash device) is used to store and exchange identification and security information between the device and the host.

図19に示すPONGシステム1900は、特に、USBをサポートするように構成することができる。図20は、オペレーティングシステムのデバイスマネージャアーキテクチャの一例のUSBドライバスタック2000を示している。ドライバスタック2000は、PONGシステム1900でトラステッド媒体としてUSBをサポートするように実施することができる。コンポーネント2013〜2017は、オペレーティングシステムの既存のUSBスタックである。コンポーネント2010は、PONG USBドライバのカーネルコンポーネントである。コンポーネント2006は、全PONGマネージャ1905によってカプセル化されたユーザモードのPONGドライバである。   The PONG system 1900 shown in FIG. 19 can be specifically configured to support USB. FIG. 20 shows a USB driver stack 2000 as an example of the device manager architecture of the operating system. The driver stack 2000 can be implemented to support USB as a trusted medium in the PONG system 1900. Components 2013 to 2017 are an existing USB stack of the operating system. A component 2010 is a kernel component of the PONG USB driver. A component 2006 is a user mode PONG driver encapsulated by all PONG managers 1905.

図21は、WUSBデバイス2112がホストデバイス2100に接続するためのオペレーションの例を示している。接続WUSBデバイス2112は、WUSBを使用して通信できる任意のデバイスとすることができる。通常、接続WUSBデバイス2112は、トラステッド媒体を使用して通信することもできる。上述したように、トラステッド媒体には、有線USB、シリアル、パラレル、ファイアワイヤ、Ethernet(登録商標)等の有線接続が含まれ得る。また、トラステッド媒体には、近接通信(NFC)、赤外線(IR)、他の確立された無線接続等の無線接続も含まれ得る。ホストデバイス2100は、図19と共に上述したようなマネージャ1905、WUSBハンドラ1912、及びドライバ1912を含む。図21に示すように、ホストデバイス2100は、WUSBを使用して外部デバイスに接続するためのWUSBコンポーネント2103、及び、有線コンポーネントを使用してデバイスに接続するための有線コンポーネント2105も含む。   FIG. 21 shows an example of an operation for the WUSB device 2112 to connect to the host device 2100. The connected WUSB device 2112 can be any device that can communicate using WUSB. Typically, the connected WUSB device 2112 can also communicate using a trusted medium. As described above, trusted media may include wired connections such as wired USB, serial, parallel, firewire, Ethernet. Trusted media may also include wireless connections such as near field communication (NFC), infrared (IR), and other established wireless connections. The host device 2100 includes a manager 1905, a WUSB handler 1912, and a driver 1912 as described above with reference to FIG. As shown in FIG. 21, the host device 2100 also includes a WUSB component 2103 for connecting to an external device using WUSB and a wired component 2105 for connecting to the device using a wired component.

ホストデバイス2100に接続するために、接続WUSBデバイスは、有線コンポーネント2105を通じてドライバ1921へ要求を送信する。たとえば、接続WUSBデバイス2112は、有線USBケーブルを通じて有線コンポーネント2105に接続することができる。この要求は、上述した属性等、WUSBデバイス2112をホストデバイス2100に関連付けるための情報を含む。   In order to connect to the host device 2100, the connected WUSB device transmits a request to the driver 1921 through the wired component 2105. For example, the connected WUSB device 2112 can be connected to the wired component 2105 through a wired USB cable. This request includes information for associating the WUSB device 2112 with the host device 2100, such as the attributes described above.

ドライバ1921は、マネージャ1905へ要求を送信する。マネージャ1905は、要求の情報を解析してその有効性を確認する。詳細には、マネージャ1905は、要求における接続のタイプ、及び、要求の情報が、接続に関係した標準規格について有効であるか否かを判断することができる。この例では、マネージャ1905は、要求がWUSB接続に関連付けられているものと判断する。マネージャ1905は、要求のデバイス属性の有効性を確認する。要求が有効である場合、マネージャ1905は、デバイス属性等のWUSB接続情報をWUSBハンドラ1912に提供する。   The driver 1921 transmits a request to the manager 1905. The manager 1905 analyzes the request information and confirms its validity. Specifically, the manager 1905 can determine whether the type of connection in the request and whether the request information is valid for the standard related to the connection. In this example, manager 1905 determines that the request is associated with a WUSB connection. The manager 1905 confirms the validity of the requested device attribute. If the request is valid, the manager 1905 provides WUSB connection information such as device attributes to the WUSB handler 1912.

WUSBハンドラ1912は、接続情報を処理し、要求に応答して、ホスト接続情報をマネージャ1905に提供する。ホスト接続情報は、WUSBを使用して接続するのに使用される接続属性を含む。マネージャ1905は、接続属性を有するホスト接続情報をドライバ1921に提供する。ドライバ1921は、有線コンポーネント2105を通じて接続情報を接続WUSBデバイス2112へ送信する。次に、接続WUSBデバイス2112は、接続情報を自己構成及びホストデバイス2100への接続に使用する。たとえば、接続WUSBデバイス2112は、チャネル、領域等、ホストデバイス2100によって必要とされる構成にWUSBコンポーネントを調整することができる。また、接続WUSBデバイス2112は、受信された接続情報において識別された鍵、ホストID、及びデバイスIDを有する情報もホストデバイス2100へ送信することができる。   The WUSB handler 1912 processes the connection information and provides the host connection information to the manager 1905 in response to the request. The host connection information includes a connection attribute used for connection using WUSB. The manager 1905 provides host connection information having connection attributes to the driver 1921. The driver 1921 transmits connection information to the connected WUSB device 2112 through the wired component 2105. Next, the connected WUSB device 2112 uses the connection information for self-configuration and connection to the host device 2100. For example, the connected WUSB device 2112 can adjust the WUSB component to the configuration required by the host device 2100, such as channel, region, etc. The connected WUSB device 2112 can also transmit to the host device 2100 information having the key, host ID, and device ID identified in the received connection information.

図22は、本明細書で説明したシステムを使用してWUSBデバイスをホストデバイスと接続するための一例のプロセス2200を示している。たとえば、プロセス2200は、マネージャ1902が実施することができる。ブロック2202において、WUSBデバイスからのアソシエーション要求が識別される。このアソシエーション要求は、有線媒体等の信頼媒体を通じて受信することができる。ブロック2204において、要求が解析され、その内容の有効性が確認される。要求を解析することによって、要求に含まれるアソシエーションのタイプの決定が可能になる。要求の有効性は、そのタイプに対応する標準規格に基づいて確認される。この例では、アソシエーションのタイプはWUSBであり、要求の有効性は、WUSB標準規格と対比して確認される。有効性が確認された要求は、WUSB標準規格によって指定されるデバイス属性を含むべきである。   FIG. 22 illustrates an example process 2200 for connecting a WUSB device with a host device using the system described herein. For example, process 2200 can be implemented by manager 1902. At block 2202, an association request from a WUSB device is identified. This association request can be received through a reliable medium such as a wired medium. At block 2204, the request is parsed to verify the validity of its contents. By analyzing the request, it is possible to determine the type of association included in the request. The validity of the request is confirmed based on the standard corresponding to the type. In this example, the association type is WUSB and the validity of the request is confirmed against the WUSB standard. The validated request should include device attributes specified by the WUSB standard.

ブロック2206において、WUSBデバイス属性が、WUSBハンドラへ送信される。ブロック2208において、接続属性が、WUSBハンドラから受信される。これらの接続属性によって、WUSBデバイスは、ホストデバイスに接続することが可能になる。ブロック2210において、接続属性が、トラステッド媒体を通じてWUSBデバイスへ送信される。   At block 2206, WUSB device attributes are sent to the WUSB handler. At block 2208, connection attributes are received from the WUSB handler. With these connection attributes, the WUSB device can be connected to the host device. At block 2210, connection attributes are transmitted to the WUSB device over the trusted medium.

以下のセクションA〜Cは、USBトラステッド媒体上でPONGシステムによって使用されるプロトコルに特有のものであり、PONGターゲットデバイスにおいてUSB上でPONGを実施するのに必要とされるさまざまなインターフェース記述子及びエンドポイント記述子のレイアウトを示している。
A.PONGデバイスインターフェース
表27は、インターフェース記述子を表したものであり、USB上でPONGデバイスについて記入される値の詳細を提供する。ほとんどの行について、特定の値又は特定の一組の値が設けられている。ベンダは、指定された範囲から選択することができ、他のすべての値は、今後の使用のためにRESERVED(予備)とすることができる。
The following sections A-C are specific to the protocol used by the PONG system over USB trusted media, and the various interface descriptors required to implement PONG over USB at the PONG target device and The layout of the endpoint descriptor is shown.
A. PONG Device Interface Table 27 represents the interface descriptor and provides details of the values entered for the PONG device on USB. For most rows, a specific value or a specific set of values is provided. The vendor can be selected from a specified range, and all other values can be RESERVED for future use.

Figure 0004856700
関連付け中のデバイスを識別するのに文字列を使用することができる。この文字列は、USB文字列記述子に局在化させることができる。良い文字列の一例は、「PONG−Wireless USB Mouse」(PONG−無線USBマウス)である。一例の実施形態では、PONGインターフェースは、インターフェースアソシエーション記述子でグループ化されない。USBデバイスは、1つの構成当たり2つ以上のPONGインターフェースを有するように構成することはできない。
B.PONGデバイスエンドポイント
本当に安いデバイスを可能にするために、制御エンドポイントを使用することができ、割り込みエンドポイントは(拡張機能では)オプションである。制御エンドポイントを使用することによって、低速USBデバイスも可能になる。制御エンドポイント(エンドポイント0x00)は、インターフェース記述子の下では記述される必要はなく、すべてのUSBデバイスに存在しなければならない。
Figure 0004856700
A string can be used to identify the device being associated. This string can be localized to the USB string descriptor. An example of a good character string is “PONG-Wireless USB Mouse”. In one example embodiment, PONG interfaces are not grouped by interface association descriptor. A USB device cannot be configured to have more than one PONG interface per configuration.
B. PONG Device Endpoint A control endpoint can be used to allow a really cheap device, and an interrupt endpoint is optional (with extensions). By using a control endpoint, low speed USB devices are also possible. The control endpoint (Endpoint 0x00) does not need to be described under the interface descriptor and must be present in all USB devices.

スマートデバイスは、デバイス列挙が完了した後にアソシエーション機能を実施することを選ぶことができる。これを達成するために、デバイスは、オプションの割り込みINエンドポイントを実施することができる。このエンドポイントによって、新しいアソシエーション要求の通知が容易になる。このオプションのエンドポイントの標準的なエンドポイント記述子の一例が、割り込みINエンドポイント記述子として表28に示されている。   The smart device may choose to perform the association function after device enumeration is complete. To accomplish this, the device can implement an optional interrupt IN endpoint. This endpoint facilitates notification of new association requests. An example of a standard endpoint descriptor for this optional endpoint is shown in Table 28 as an interrupt IN endpoint descriptor.

Figure 0004856700
デバイスのPONGインターフェースが、オプションのエンドポイントを含まない場合、関連付けは、列挙時に行うことができる。このようなデバイスがアソシエーションプロセスを開始したい場合、デバイスは、デバイスが開始するUSBリセットを行うことができる。これによって、デバイスをホストにより再列挙することができ、その時点で、ホストは、デバイスからアソシエーション要求を取り出すことができる。また、デバイスは、HUB機能も実施して、そのデバイスを往来させることができる。
C.PONGクラス特有の要求
すべてのPONGデータ転送は、制御エンドポイント上で行われる。これらの転送は、PONGクラス要求の形とすることができる。表29は、PONGデバイスによってサポートされるPONGクラス要求のリストを示している。bRequestの有効な値が示されている。
Figure 0004856700
If the device's PONG interface does not include an optional endpoint, the association can be done at enumeration. If such a device wishes to initiate the association process, the device can perform a USB reset initiated by the device. This allows the device to be re-enumerated by the host, at which point the host can retrieve the association request from the device. The device can also perform a HUB function to move the device back and forth.
C. PONG Class Specific Requests All PONG data transfer is done on the control endpoint. These transfers can be in the form of PONG class requests. Table 29 shows a list of PONG class requests supported by the PONG device. Valid values for bRequest are shown.

Figure 0004856700
C.1.GET_ASSOCIATION_INFORMATION
この要求は、デバイスからassociation_information(アソシエーション情報)構造体を取り出す。このassociation_informationは、REQUEST_INFOブロックのリストを含む。各REQUEST_INFOブロックは、デバイスが発行したい単一のアソシエーション要求に関するものである。表30は、一例のGET_ASSOCIATION_INFORMATION要求を示している。
Figure 0004856700
C. 1. GET_ASSOCIATION_INFORMATION
This request retrieves an association_information structure from the device. This association_information includes a list of REQUEST_INFO blocks. Each REQUEST_INFO block is for a single association request that the device wishes to issue. Table 30 shows an example GET_ASSOCIATION_INFORMATION request.

Figure 0004856700
表31は、association_informationデータ構造体の一例を示している。このデータ構造体の最初の数バイト(たとえば、3バイト)は、ヘッダセクションとすることができる。
Figure 0004856700
Table 31 shows an example of the association_information data structure. The first few bytes (eg, 3 bytes) of this data structure can be a header section.

Figure 0004856700
表32は、association_informationフラグの例を示している。
Figure 0004856700
Table 32 shows an example of association_information flag.

Figure 0004856700
表33は、request_info(要求情報)構造体を示している。
Figure 0004856700
Table 33 shows a request_info (request information) structure.

Figure 0004856700
C.2.GET_ASSOCIATION_REQUEST
この要求は、デバイスから特定のアソシエーション要求を取り出す。この要求は、wValueフィールド内のRequestID値によって識別される。表34は、一例のGET_ASSOCIATION_REQUEST要求を示している。
Figure 0004856700
C. 2. GET_ASSOCIATION_REQUEST
This request retrieves a specific association request from the device. This request is identified by the RequestID value in the wValue field. Table 34 shows an example GET_ASSOCIATION_REQUEST request.

Figure 0004856700
要求ブロックは、4KBのデータブロックとすることができる。制御転送の最大転送サイズは、64KBに設定することができる。したがって、理論的には、各GET_ASSOCIATION_REQUESTにおいて16個の要求ブロックを転送することができる。転送される実際のデータ量は、wLengthフィールドによって指定される。wValueフィールドで指定されたBlockNumberは、この制御転送の開始ブロック番号を識別する。デバイスは、RequestIDによって指定される要求のアソシエーション要求データを、オフセットBlockNumber×4KBから開始して、wLengthバイトを転送して返すことができる。
C.3.SET_ASSOCIATION_RESPONSE
この要求は、wValueフィールドのRequestID値によって識別される特定のアソシエーション要求に対する応答を送信する。表35は、一例のSET_ASSOCIATION_RESPONSEを示している。
Figure 0004856700
The request block may be a 4 KB data block. The maximum transfer size for control transfer can be set to 64 KB. Therefore, theoretically, 16 request blocks can be transferred in each GET_ASSOCIATION_REQUEST. The actual amount of data transferred is specified by the wLength field. The BlockNumber specified in the wValue field identifies the starting block number for this control transfer. The device can return the association request data of the request specified by the RequestID, starting from the offset BlockNumber × 4 KB and transferring the wLength bytes.
C. 3. SET_ASSOCIATION_RESPONSE
This request sends a response to the specific association request identified by the RequestID value in the wValue field. Table 35 shows an example of SET_ASSOCIATION_RESPONSE.

Figure 0004856700
TransferFlags値は、値の0個以上のビットごとのORである。一例のTransferFlags値が表36に示されている。
Figure 0004856700
The TransferFlags value is an OR for zero or more bits of the value. An example TransferFlags value is shown in Table 36.

Figure 0004856700
PONGシステムは、割り込みINメッセージを実施することができる。たとえば、NewAssociationRequest(新アソシエーション要求)は、デバイスが、処理する必要がある新しいアソシエーション要求又は変更されたアソシエーション要求を有することをホストに示すのに使用できる割り込みINメッセージである。ホストは、このメッセージを受信すると、GET_ASSOCIATION_INFORMATION要求を発行し、それに応じてこれらの要求を処理する。表37は、一例のNewAssociationRequestを示している。
Figure 0004856700
The PONG system can implement an interrupt IN message. For example, NewAssociationRequest is an interrupt IN message that can be used to indicate to the host that the device has a new association request or a modified association request that needs to be processed. When the host receives this message, it issues a GET_ASSOCIATION_INFORMATION request and processes these requests accordingly. Table 37 shows an example NewAssociationRequest.

Figure 0004856700
図23は、本明細書で説明した特定のデータ構造体を使用してデバイスを関連付けるための一例のプロセス2300を示している。この一例のプロセス2300は、HOSTがUSBでデバイスを構成するためのPONGシステム等の拡張可能アーキテクチャにおいて実施することができる。プロセス2300は、上述した要求及び応答と共に実施することができる。
Figure 0004856700
FIG. 23 illustrates an example process 2300 for associating devices using the particular data structures described herein. This example process 2300 may be implemented in an extensible architecture such as a PONG system for HOST to configure devices with USB. Process 2300 may be implemented with the requests and responses described above.

ブロック2304において、GET_ASSOCIATION_INFORMATIONが送信される。一実施態様では、要求は、少なくとも3バイトのデータを含む。ブロック2306において、アソシエーション情報全体のサイズが求められる。このサイズは、
サイズ=3+sizeof (REQUEST_INFO)×PendingRequestCount
によって求めることができる。
At block 2304, GET_ASSOCIATION_INFORMATION is sent. In one embodiment, the request includes at least 3 bytes of data. At block 2306, the size of the entire association information is determined. This size is
Size = 3 + sizeof (REQUEST_INFO) x PendingRequestCount
Can be obtained.

判定ブロック2308において、すべてのアソシエーション情報が受信されているか否かの判断が行われる。すべてのアソシエーション情報が受信されていない場合には、プロセス2300はブロック2304に戻る。すべてのアソシエーション情報が受信されている場合、プロセス2300は、判定ブロック2310に移動する。判定ブロック2310において、保留中の要求が存在するか否かの判断が行われる。たとえば、この判断は、PendingRequestCountデータ構造体が0よりも大きいか否かを判断することによって行うことができる。保留中の要求が存在しない場合には(たとえば、PendingRequestCount=0)、プロセス2300は終了する。保留中の要求が存在する場合には、プロセス2300はブロック2312に進み、ブロック2312において、プロセスは、ハンドリングする要求を選ぶ。   At decision block 2308, a determination is made whether all association information has been received. If all association information has not been received, process 2300 returns to block 2304. If all association information has been received, the process 2300 moves to decision block 2310. At decision block 2310, a determination is made whether there are any pending requests. For example, this determination can be made by determining whether the PendingRequestCount data structure is greater than zero. If there are no pending requests (eg, PendingRequestCount = 0), the process 2300 ends. If there are pending requests, process 2300 proceeds to block 2312 where the process selects a request to handle.

ブロック2314において、転送のサイズが求められる。このサイズは、
サイズ=max(残っているバイト,N×4KB(ここで、0<N≦16))
によって求めることができる。
At block 2314, the size of the transfer is determined. This size is
Size = max (remaining bytes, N × 4 KB (where 0 <N ≦ 16))
Can be obtained.

ブロック2316において、GET_ASSOCIATION_REQUESTが、適切なデータ量について送信される。RequestIDは、アソシエーション情報のRequestIDと一致すべきである。BlockNumberは、返される開始ブロック番号であるべきである。判定ブロック2318において、要求データがそれ以上あるか否かの判断が行われる。要求データがある場合には、プロセス2300は、ブロック2314に戻る。要求データがない場合には、プロセスは、ブロック2320に進み、ブロック2320において、アソシエーション要求がハンドリングされ、応答が生成される。   At block 2316, GET_ASSOCIATION_REQUEST is sent for the appropriate amount of data. The RequestID should match the RequestID of the association information. BlockNumber should be the starting block number to be returned. At decision block 2318, a determination is made whether there is more request data. If there is requested data, process 2300 returns to block 2314. If there is no request data, the process proceeds to block 2320, where the association request is handled and a response is generated.

ブロック2322において、応答転送のサイズが求められる。ブロック2324において、GET_ASSOCIATION_RESPONSEが、適切なデータ量について送信される。RequestIDは、要求のRequestIDと一致すべきである。この転送が応答の最後のバイトを含む場合、LastBlock(最後のブロック)が設定されるべきである。判定ブロック2326において、データがそれ以上あるか否かの判断が行われる。データがある場合には、プロセス2300はブロック2322に戻る。データがそれ以上ない場合には、プロセスは判定ブロック2328に続き、ブロック2328において、要求がそれ以上あるか否かの判断が行われる。要求がある場合には、プロセス2300は、ブロック2312に戻る。要求がそれ以上ない場合には、プロセスは、判定ブロック2330に移動し、判定ブロック2330において、AdditionalRequests(追加要求)フラグがアソシエーション情報において設定されていたか否かの判断が行われる。AdditionalRequestsフラグが設定されていた場合には、プロセス2300はブロック2304に戻る。このフラグが設定されていない場合には、プロセスは終了する。   At block 2322, the size of the response transfer is determined. At block 2324, GET_ASSOCIATION_RESPONSE is sent for the appropriate amount of data. The RequestID should match the RequestID of the request. If this transfer includes the last byte of the response, LastBlock should be set. At decision block 2326, a determination is made whether there is more data. If there is data, process 2300 returns to block 2322. If there is no more data, the process continues to decision block 2328 where a determination is made whether there are more requests. If there is a request, process 2300 returns to block 2312. If there are no more requests, the process moves to decision block 2330 where a determination is made whether an AdditionalRequests flag has been set in the association information. If the AdditionalRequests flag has been set, the process 2300 returns to block 2304. If this flag is not set, the process ends.

PONGインターフェースをサポートするデバイスが、デバイス列挙の時にPONGアソシエーション要求を送信する準備が実際にはできていない可能性があり得る。たとえば、おそらく、デバイスは、実際には、或る独自のインターフェース上でPONGをサポートする他のデバイス用の或るタイプのクレードル(cradle)である。USB PONGデバイスは、ターゲットデバイスがそのクレードルに挿入されるずっと以前からすでに列挙済みである。上述したシステム及び技法は、PONGドライバが新しいアソシエーション情報を取り出す必要があることをそのPONGドライバに通知するメカニズムを提供する。   It is possible that a device that supports the PONG interface may not actually be ready to send a PONG association request during device enumeration. For example, perhaps the device is actually a type of cradle for other devices that support PONG on some unique interface. USB PONG devices have already been enumerated long before the target device is inserted into its cradle. The systems and techniques described above provide a mechanism for notifying the PONG driver that the PONG driver needs to retrieve new association information.

また、一定のデバイス(たとえば、複数のターゲット媒体を有するデバイス)が複数のアソシエーション要求をサポートすることが必要な場合もある。これらの個々のアソシエーション要求は、互いに依存している可能性もあるし、全体的に独立している可能性もある。独立した関連付けは、デバイスが、ターゲット媒体を関連付ける順序について注意することなく、複数のターゲット媒体を一斉に関連付けたい場合である。上述したシステム及び技法は、ホストからアソシエーション応答を受信した後に、デバイスが、その応答の結果として新しいアソシエーション要求を発行することを決定するシナリオをサポートする。   Also, certain devices (eg, devices with multiple target media) may need to support multiple association requests. These individual association requests may be dependent on each other or may be totally independent. Independent association is when the device wants to associate multiple target media at once without paying attention to the order in which the target media are associated. The systems and techniques described above support scenarios in which after receiving an association response from a host, the device decides to issue a new association request as a result of the response.

上述したものは、説明した本発明の例を含む。もちろん、本発明を説明するために、コンポーネント又は方法論の考えられるあらゆる組み合わせを記載することは不可能であるが、当業者は、本発明のさらに別の多くの組み合わせ及び変形が可能であることを認識することができる。したがって、本発明は、添付の特許請求の範囲の趣旨及び範囲に含まれるこのようなすべての変更、修正、及び変形を包含することが意図されている。さらに、詳細な説明又は特許請求の範囲において用語「含む(includes)」が使用される点において、このような用語は、「備える(comprising)」が特許請求の範囲で移行語として使用されるときに解釈されるように、用語「備える」と同様にして包括的であることが意図されている。   What has been described above includes examples of the described invention. Of course, it is not possible to describe every possible combination of components or methodologies to illustrate the invention, but those skilled in the art will recognize that many other combinations and variations of the invention are possible. Can be recognized. Accordingly, the present invention is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Further, in terms of the use of the term “includes” in the detailed description or in the claims, such terms are used when “comprising” is used as a transition term in the claims. Is intended to be comprehensive as well as the term “comprising”.

本発明の一態様によるアソシエーションアーキテクチャのブロック図である。1 is a block diagram of an association architecture according to an aspect of the present invention. 本発明の一態様によるアソシエーション要求の図である。FIG. 4 is an association request diagram in accordance with an aspect of the present invention. 本発明の一態様によるアソシエーション応答の図である。FIG. 4 is an association response diagram according to an aspect of the present invention. 本発明の一態様によるアソシエーション管理システムのブロック図である。1 is a block diagram of an association management system according to an aspect of the present invention. 本発明の一態様によるアソシエーション管理システムのブロック図である。1 is a block diagram of an association management system according to an aspect of the present invention. 本発明の一態様によるアソシエーションハンドラシステムのブロック図である。1 is a block diagram of an association handler system according to one aspect of the present invention. FIG. 本発明の一態様によるアソシエーションドライバシステムのブロック図である。1 is a block diagram of an association driver system according to an aspect of the present invention. FIG. 本発明の一態様による、デバイスを関連付ける方法のフローチャートである。4 is a flowchart of a method for associating devices according to an aspect of the present invention. 本発明の一態様による、デバイスの関連付けを容易にする方法のフローチャートである。6 is a flowchart of a method that facilitates device association, in accordance with an aspect of the present invention. 本発明の一態様による、USB接続を介してデバイスを関連付ける方法のフローチャートである。4 is a flowchart of a method of associating a device via a USB connection according to an aspect of the present invention. 図10の方法をさらに示すフローチャートである。11 is a flowchart further illustrating the method of FIG. 図10及び図11の方法をさらに示すフローチャートである。12 is a flowchart further illustrating the method of FIGS. 10 and 11. 本発明の一態様によるアソシエーション管理方法のフローチャートである。3 is a flowchart of an association management method according to an aspect of the present invention. 本発明の一態様によるアソシエーション管理方法のフローチャートである。3 is a flowchart of an association management method according to an aspect of the present invention. 図14の方法をさらに示すフローチャートである。15 is a flowchart further illustrating the method of FIG. 図14及び図15の方法をさらに示すフローチャートである。16 is a flowchart further illustrating the method of FIGS. 本発明の一態様によるアソシエーションハンドラ方法のフローチャートである。4 is a flowchart of an association handler method according to an aspect of the present invention. 本発明が機能できる一例の動作環境を示す図である。It is a figure which shows the operating environment of an example in which this invention can function. PONGシステムの一例を示す図である。It is a figure which shows an example of a PONG system. オペレーティングシステムのデバイスマネージャアーキテクチャの一例のUSBドライバスタックを示す図である。FIG. 3 illustrates an example USB driver stack of an operating system device manager architecture. WUSBデバイスがホストデバイスに接続するためのオペレーションの例を示す図である。It is a figure which shows the example of operation for a WUSB device to connect with a host device. 本明細書で説明したシステムを使用してWUSBデバイスをホストデバイスと接続するための一例のプロセスを示す図である。FIG. 6 illustrates an example process for connecting a WUSB device with a host device using the system described herein. 本明細書で説明した特定のデータ構造体を使用してデバイスを関連付けるための一例のプロセスを示す図である。FIG. 6 illustrates an example process for associating a device using a particular data structure described herein.

Claims (16)

以下のステップを実行するためのデバイス実行可能命令でコード化された1つ又は2つ以上のデバイス可読媒体であって、ステップとして、
トラステッド媒体を介して無線ユニバーサルシリアルバス(WUSB)デバイスからのアソシエーション要求を識別するステップ、
前記アソシエーション要求を解析し、前記アソシエーション要求に含まれるアソシエーションタイプを決定し、要求されている前記アソシエーションのタイプがWUSBであると判断するステップ、
WUSB標準規格に基づいて、前記解析されたアソシエーション要求の有効性を確認するステップ、
前記WUSBデバイスを記述するデバイス属性を生成するステップ、
前記アソシエーションタイプに基づいて前記ハンドラを識別するステップ、
WUSBデバイスのハンドラへ前記デバイス属性を送信するステップ、
前記ハンドラから接続属性を受信するステップ、及び
前記トラステッド媒体を介して前記WUSBデバイスへ前記接続属性を送信するステップ
を含む、1つ又は2つ以上のデバイス可読媒体。
One or more device-readable media encoded with device-executable instructions for performing the following steps, comprising:
Identifying an association request from a wireless universal serial bus (WUSB) device via a trusted medium;
Analyzing the association request, determining an association type included in the association request, and determining that the requested association type is WUSB ;
Checking the validity of the analyzed association request based on the WUSB standard;
Generating a device attribute describing the WUSB device;
Identifying the handler based on the association type;
Transmitting the device attribute to a handler of the WUSB device;
One or more device readable media comprising receiving connection attributes from the handler and transmitting the connection attributes to the WUSB device via the trusted medium.
請求項1に記載の1つ又は2つ以上のデバイス可読媒体であって、ステップとして、
前記WUSBデバイスが、前記接続属性に従い無線媒体を通じて接続することを可能にするステップをさらに含む、デバイス可読媒体。
One or more device readable media according to claim 1, comprising the steps of:
A device readable medium further comprising allowing the WUSB device to connect through a wireless medium according to the connection attributes.
請求項1に記載の1つ又は2つ以上のデバイス可読媒体において、
前記トラステッド媒体は有線媒体である、デバイス可読媒体。
The one or more device-readable media of claim 1, wherein
The device readable medium, wherein the trusted medium is a wired medium.
請求項1に記載の1つ又は2つ以上のデバイス可読媒体において、
前記トラステッド媒体は、有線USB接続、ファイアワイヤ(firewire)接続、Ethernet接続、シリアル接続、パラレル接続、無線接続、近接通信(NFC)接続、又は赤外線(IR)接続の少なくとも1つを含む、デバイス可読媒体。
The one or more device-readable media of claim 1, wherein
The trusted media includes at least one of a wired USB connection, a firewire connection, an Ethernet connection, a serial connection, a parallel connection, a wireless connection, a near field communication (NFC) connection, or an infrared (IR) connection. Medium.
請求項1に記載の1つ又は2つ以上のデバイス可読媒体において、
前記デバイス属性は、アソシエーションタイプ識別子、接続デバイス識別子、接続鍵識別子、デバイスセットアップクラスGUID、サポートされた帯域グループ、又はインテグレータサイトURLの少なくとも1つを含む、デバイス可読媒体。
The one or more device-readable media of claim 1, wherein
The device readable medium, wherein the device attribute includes at least one of an association type identifier, a connection device identifier, a connection key identifier, a device setup class GUID, a supported band group, or an integrator site URL.
請求項1に記載の1つ又は2つ以上のデバイス可読媒体において、
前記接続属性は、接続ホスト識別子、接続デバイス識別子、接続鍵識別子、好ましいチャネル、又はホスト領域の少なくとも1つを含む、デバイス可読媒体。
The one or more device-readable media of claim 1, wherein
The device-readable medium, wherein the connection attribute includes at least one of a connection host identifier, a connection device identifier, a connection key identifier, a preferred channel, or a host region.
無線ユニバーサルシリアルバス(WUSB)コンポーネントを備える接続デバイスであって、該接続デバイスは、トラステッド媒体を通じてホストデバイスへアソシエーション要求を送信するように構成され、該アソシエーション要求は、該接続デバイスに関係したデバイス属性を含み、該アソシエーション要求は、さらに、以下の情報、即ち、前記ホストデバイスにより解析されると、前記アソシエーション要求に含まれるアソシエーションタイプを決定し、WUSB標準規格に基づいて、前記解析されたアソシエーション要求の有効性を確認する、情報を含み、該接続デバイスは、前記ホストデバイス上のハンドラから前記アソシエーションタイプに基づいて接続属性を受信すると共に前記接続属性を使用して前記ホストデバイスとWUSB接続を確立するようにさらに構成される、接続デバイス。A connection device comprising a wireless universal serial bus (WUSB) component, the connection device configured to send an association request to a host device over a trusted medium, wherein the association request is a device attribute associated with the connection device. And the association request further determines the association type included in the association request when analyzed by the host device, and based on the WUSB standard, the analyzed association request to confirm the validity of, include information, said connection device, said host device and WU using the connection attribute with a handler on the host device receives the connection attributes based on the association type Further configured, connected device to establish the B connection. 請求項に記載の接続デバイスにおいて、
前記トラステッド媒体は有線接続である、接続デバイス。
The connection device according to claim 7 .
A connection device, wherein the trusted medium is a wired connection.
請求項に記載の接続デバイスであって、
前記有線接続を通じて前記ホストデバイスと通信するように構成される有線コンポーネントをさらに備える、接続デバイス。
The connection device according to claim 8 , comprising:
A connection device further comprising a wired component configured to communicate with the host device through the wired connection.
請求項に記載の接続デバイスにおいて、
前記有線接続は、有線USB接続、ファイアワイヤ接続、Ethernet(登録商標)接続、シリアル接続、又はパラレル接続の少なくとも1つを含む、接続デバイス。
The connection device according to claim 9 , wherein
The wired device includes at least one of a wired USB connection, a fire wire connection, an Ethernet (registered trademark) connection, a serial connection, and a parallel connection.
請求項に記載の接続デバイスにおいて、
前記デバイス属性は、アソシエーションタイプ識別子、接続デバイス識別子、接続鍵識別子、デバイスセットアップクラスGUID、サポートされた帯域グループ、又はインテグレータサイトURLの少なくとも1つを含む、接続デバイス。
The connection device according to claim 8 .
The connection device, wherein the device attribute includes at least one of an association type identifier, a connection device identifier, a connection key identifier, a device setup class GUID, a supported band group, or an integrator site URL.
請求項に記載の接続デバイスにおいて、
前記接続属性は、接続ホスト識別子、接続デバイス識別子、接続鍵識別子、好ましいチャネル、又はホスト領域の少なくとも1つを含む、接続デバイス。
The connection device according to claim 8 .
The connection device, wherein the connection attribute includes at least one of a connection host identifier, a connection device identifier, a connection key identifier, a preferred channel, or a host region.
請求項に記載の接続デバイスにおいて、
前記接続デバイスは、前記WUSBコンポーネントを配置すると共に前記接続属性を使用して前記ホストデバイスに接続するようにさらに構成される、接続デバイス。
The connection device according to claim 8 .
The connection device is further configured to deploy the WUSB component and connect to the host device using the connection attribute.
接続デバイスとホストデバイスとの間の通信方法であって、該接続デバイス及び該ホストデバイスは、有線媒体と接続されており、該方法は、
前記接続デバイスから前記ホストデバイスへ前記有線媒体を通じて、該接続デバイスのWUSBコンポーネントに関係したデバイス属性を含むアソシエーション要求を送信するステップ、
前記ホストデバイスによって、前記アソシエーション要求を解析し、前記アソシエーション要求に含まれるアソシエーションタイプを決定するステップ、
前記ホストデバイスによって、WUSB接続に関係した接続属性を決定するステップ、
前記ホストデバイスにおいて、WUSB標準規格に基づいて、前記解析されたアソシエーション要求及び前記接続属性の有効性を確認するステップ、
前記ホストデバイスから前記接続デバイスへ前記有線媒体を通じて、前記接続属性を含む応答を送信するステップ、及び
前記接続デバイスにより、前記接続属性を使用して前記ホストデバイスとの接続を確立するステップ、
を含む、接続デバイスとホストデバイスとの間の通信方法。
A communication method between a connection device and a host device, wherein the connection device and the host device are connected to a wired medium, the method comprising:
Transmitting an association request including device attributes related to a WUSB component of the connection device from the connection device to the host device through the wired medium;
Analyzing, by the host device, the association request and determining an association type included in the association request;
Determining a connection attribute related to WUSB connection by the host device;
Checking the validity of the analyzed association request and the connection attribute based on the WUSB standard in the host device,
Transmitting a response including the connection attribute from the host device to the connection device through the wired medium; and establishing a connection with the host device using the connection attribute by the connection device;
A communication method between a connected device and a host device.
請求項14に記載の接続デバイスとホストデバイスとの間の通信方法において、
前記デバイス属性は、アソシエーションタイプ識別子、接続デバイス識別子、接続鍵識別子、デバイスセットアップクラスGUID、サポートされた帯域グループ、又はインテグレータサイトURLの少なくとも1つを含む、通信方法。
The communication method between the connection device and the host device according to claim 14 ,
The communication method, wherein the device attribute includes at least one of an association type identifier, a connection device identifier, a connection key identifier, a device setup class GUID, a supported band group, or an integrator site URL.
請求項14に記載の接続デバイスとホストデバイスとの間の通信方法において、
前記接続属性は、接続ホスト識別子、接続デバイス識別子、接続鍵識別子、好ましいチャネル、又はホスト領域の少なくとも1つを含む、通信方法。
The communication method between the connection device and the host device according to claim 14 ,
The communication method, wherein the connection attribute includes at least one of a connection host identifier, a connection device identifier, a connection key identifier, a preferred channel, or a host region.
JP2008516029A 2005-06-10 2006-06-12 Establishing a wireless universal serial bus (WUSB) connection via a trusted medium Expired - Fee Related JP4856700B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US68961005P 2005-06-10 2005-06-10
US60/689,610 2005-06-10
US11/246,510 US20060149858A1 (en) 2004-12-30 2005-10-07 Establishing wireless universal serial bus (WUSB) connection via a trusted medium
US11/246,510 2005-10-07
PCT/US2006/022906 WO2006135872A2 (en) 2005-06-10 2006-06-12 Establishing wireless universal serial bus (wusb) connection via a trusted medium

Publications (3)

Publication Number Publication Date
JP2008547250A JP2008547250A (en) 2008-12-25
JP2008547250A5 JP2008547250A5 (en) 2009-08-13
JP4856700B2 true JP4856700B2 (en) 2012-01-18

Family

ID=40239702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008516029A Expired - Fee Related JP4856700B2 (en) 2005-06-10 2006-06-12 Establishing a wireless universal serial bus (WUSB) connection via a trusted medium

Country Status (2)

Country Link
JP (1) JP4856700B2 (en)
CN (1) CN101375260A (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008004978A (en) * 2006-06-20 2008-01-10 Nec Electronics Corp Radio communication system, radio communication apparatus and encryption key exchanging method between the same
EP2343881B1 (en) * 2010-01-07 2019-11-20 LG Electronics Inc. Method of processing application in digital broadcast receiver connected with interactive network, and digital broadcast receiver
JP6019950B2 (en) * 2011-09-13 2016-11-02 ソニー株式会社 Power supply apparatus and method, and program
EP3036922B1 (en) * 2013-08-21 2018-07-11 Samsung Electronics Co., Ltd. Method and apparatus for providing a persistent usb service for wireless usb devices
WO2015072763A1 (en) * 2013-11-13 2015-05-21 엘지전자(주) Method and apparatus for managing connection between broadcast receiving device and another device connected by network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11112524A (en) * 1997-08-07 1999-04-23 Internatl Business Mach Corp <Ibm> Connection establishing method, communication method, state change transmitting method, state change executing method, radio equipment, radio device and computer
JP2004172774A (en) * 2002-11-18 2004-06-17 Matsushita Electric Ind Co Ltd Wireless communication system, wireless communication apparatus, wireless communication method, program and medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11112524A (en) * 1997-08-07 1999-04-23 Internatl Business Mach Corp <Ibm> Connection establishing method, communication method, state change transmitting method, state change executing method, radio equipment, radio device and computer
JP2004172774A (en) * 2002-11-18 2004-06-17 Matsushita Electric Ind Co Ltd Wireless communication system, wireless communication apparatus, wireless communication method, program and medium

Also Published As

Publication number Publication date
JP2008547250A (en) 2008-12-25
CN101375260A (en) 2009-02-25

Similar Documents

Publication Publication Date Title
US20060149858A1 (en) Establishing wireless universal serial bus (WUSB) connection via a trusted medium
US10505908B2 (en) System and method for automatic wireless connection between a portable terminal and a digital device
JP5072176B2 (en) Automatic detection of wireless network type
US8848915B2 (en) Method for automatic WLAN connection between digital devices and digital device therefor
US8873523B2 (en) Methods and apparatus for solicited activation for protected wireless networking
EP1589703B1 (en) System and method for accessing a wireless network
US10986677B2 (en) Method and apparatus for connecting to access point in WLAN network
US20050198221A1 (en) Configuring an ad hoc wireless network using a portable media device
EP1564932B1 (en) Extensible framework for connecting to a wireless network
US20050198233A1 (en) Configuring network settings of thin client devices using portable storage media
KR101830940B1 (en) Porting wifi settings
US20160242033A1 (en) Communication service using method and electronic device supporting the same
WO2014029100A1 (en) Wireless local area network device configuration method, corresponding device and system
WO2023280194A1 (en) Network connection management method and apparatus, readable medium, program product, and electronic device
JP7498175B2 (en) Previous connection status report
JP4856700B2 (en) Establishing a wireless universal serial bus (WUSB) connection via a trusted medium
WO2017012204A1 (en) Wireless connection method, terminal, wireless access point and computer storage medium
WO2023279897A1 (en) Secure binding method and system, storage medium, and electronic apparatus
CN110602693B (en) Networking method and equipment of wireless network
JP2006228195A (en) Extensible architecture for untrusted medium device configuration via trusted medium
JP5721183B2 (en) Wireless LAN communication system, wireless LAN base unit, communication connection establishment method, and program
WO2012026932A1 (en) Method and apparatus for over-the-air configuration of a wireless device
WO2016078267A1 (en) Terminal realization method and device, and terminal and storage medium
CN108990052B (en) Method for detecting WPA2 protocol vulnerability
CA2531693A1 (en) Extensible architecture for untrusted medium device configuration via trusted medium

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090611

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090611

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110915

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110930

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111028

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees