説明

ドライバのインストール

周辺デバイスであって、ホストデバイスとの接続のためのインタフェースと、前記周辺デバイスを操作するために前記ホストデバイスにより使用されるソフトウェア、を記憶するメモリと、前記デバイスが前記インタフェースを介して2つの動作モードの内のいずれかで動作することができるよう前記デバイスの動作を制御するプロセッサであって、前記2つの動作モードには、前記デバイスが、前記ソフトウェアを記憶する記憶デバイスとして動作する第1のモードと、前記デバイスが、前記インタフェースを介して前記デバイスに接続されているデバイスに、前記ソフトウェアにより他の機能を提供するデバイスとして動作する第2のモードと、があるようなプロセッサとを有し、前記周辺デバイスは、前記インタフェースがホストデバイスに接続されると前記第1のモードで動作し、その後前記第2のモードで動作するよう構成されている周辺デバイス。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、周辺デバイス用のドライバのインストールに関する。
【背景技術】
【0002】
デバイスがコンピュータに接続されるとき、コンピュータは、デバイスと通信するのにドライバソフトウェアの使用を必要とすることがある。ドライバソフトウェアは、コンピュータ上で実行され、コンピュータに対し、デバイスに又はデバイスからデータを転送する手段と、デバイスの機能をアクティブにする手段とを提供する。例えばドライバソフトウェアは、デバイスに機能を実行させるために、コンピュータ上で走るプロセスと呼ばれ得るプロシージャのライブラリを提供することができる。当該プロシージャは、呼び出しプロセスからパラメータを受け取り、デバイスとの通信に適した信号を形成してデバイスに当該機能を実行させることができる。
【0003】
ドライバソフトウェアをコンピュータ上で使用するためには、まずドライバソフトウェアがコンピュータにインストールされなければならない。一般に、このインストールは、コンピュータにアクセス可能な不揮発性記憶装置(例えば、コンピュータのハードディスクドライブ)にドライバソフトウェアを記憶(store)する段階と、ドライバソフトウェアが利用可能でありデバイスとの通信に使用可能であることをコンピュータが分かるよう、ドライバソフトウェアを登録(register)する段階とを含んでいる。
【0004】
ドライバソフトウェアのインストールは、複雑となることがあるし、コンピュータに関する知識を必要とすることもあるので、スキルのない人々にとっては難しい作業となる。従って、周辺デバイスを使いやすくするには、そのデバイスのドライバソフトウェアをインストールしやすくすることが重要である。
【0005】
デバイスドライバは通常、ハードウェア周辺デバイスをコンピュータに最初に接続するあたりの時点(接続前か接続後かのいずれか)において、ドライバが正しくインストールされるよう製造元が推奨するような正確なインストール手順に従って、インストールされる。ドライバは、通常、当該周辺デバイスと併せて販売されるCD又はその他のディスクにて供給される(または、インターネットからダウンロードされてもよい)。こうしたやり方のドライバの配布には、ドライバを追加の媒体によって供給する必要があるためハードウェアそれ自体が自己完結的でない、という欠点がある。
【0006】
ドライバソフトウェアをインストールしやすくする1つの方法は、コンピュータに、ドライバソフトウェアを中央ソースから自動的にダウンロードさせることである。この方法は、Microsoft Windows XPのようなオペレーティングシステムで利用可能である。周辺デバイスがコンピュータに接続されると、周辺デバイスはその識別情報(identity)をコンピュータに提供する。その後、コンピュータは、インターネットを介してサーバに接触し、そのデバイスに適したドライバを見つけようとする。好適なドライバが見つかると、コンピュータはそれをダウンロードして登録する。この方法には、数多くの不利な点がある。第1に、この方法は、サーバが適切なドライバを有するように正しく構成されている場合にしか有効でない。第2に、この方法は、コンピュータが中央サーバにアクセス可能な場合にしか有効でなく、従って、コンピュータがネットワークに接続されていない場合には、コンピュータはドライバにアクセスすることができない。第3に、ユーザは、自分で指定したのではないソースからドライバをダウンロードすることになる場合、セキュリティについて心配を抱えることにもなり得る。
【0007】
オペレーティングシステムは一般に、標準タイプの周辺デバイスと通信するためのいくつかの標準インタフェースプロトコル及び標準インタフェースドライバをサポートする。例えば、オペレーティングシステムは一般に、USBインタフェースを介してディスクドライブのような大容量記憶デバイスと通信するための標準プロトコルをサポートすることができる。しかしながら、標準プロトコルは一般に、非標準デバイスとの通信には適していない。
【0008】
ドライバのインストールを改善する1つの方法は、USB複合デバイスを使用することである。この方法については、WO2004/038584に概略が記載されている。この方法にはいくつかの不利な点があり、とりわけ不利なのは、大容量記憶デバイスのUSBマニフェステーションとカスタムUSBデバイスのUSBマニフェステーションとが競合してしまうことである。この方法では更に、ホストコンピュータへの追加のドライブのインストールが必要とされ、このことがユーザを混乱させる可能性がある。
【0009】
ドライバに当てはまる問題と同様の問題は、周辺デバイスとのインタラクションに必要又は有益な実行ファイルのインストールにも当てはまる。
【0010】
ドライバ、及び/又は周辺デバイスとインタラクト(interact)する実行ファイル、をインストールする改善された手段が必要とされている。
【発明の開示】
【課題を解決するための手段】
【0011】
本発明の一の側面によれば、周辺デバイスであって、ホストデバイスとの接続のためのインタフェースと、前記周辺デバイスを操作(operate)するために前記ホストデバイスにより使用されるソフトウェア、を記憶するメモリと、前記デバイスが前記インタフェースを介して2つの動作モードの内のいずれかで動作することができるよう前記デバイスの動作を制御するプロセッサであって、前記2つの動作モードには、前記デバイスが、前記ソフトウェアを記憶する記憶デバイスとして動作する第1のモードと、前記デバイスが、前記インタフェースを介して前記デバイスに接続されているデバイスに、前記ソフトウェアにより他の機能を提供するデバイスとして動作する第2のモードと、があるようなプロセッサとを有し、前記周辺デバイスは、前記インタフェースがホストデバイスに接続されると前記第1のモードで動作し、その後前記第2のモードで動作するよう構成されている周辺デバイスが提供される。
【0012】
好ましくは、前記ソフトウェアは、前記周辺デバイスが前記第2のモードで動作しているときに、ホストデバイスが前記周辺デバイスと通信するのを可能にするようなドライバを含んでいる。
【0013】
好ましくは、前記ソフトウェアは、ホストデバイスに前記ドライバをインストールさせるような実行プログラムを含んでいる。
【0014】
好ましくは、前記実行プログラムは、前記ドライバのインストール後に、ホストデバイスに所定のタイプのメッセージを前記周辺デバイスへと送信させるよう構成されており、前記周辺デバイスは、当該メッセージに応じて前記第1のモードの動作から前記第2のモードの動作に切り替わる。
【0015】
好ましくは、前記ソフトウェアは、前記周辺デバイスが前記第2のモードで動作しているときに、前記周辺デバイスにより受信されたデータを処理するようなアプリケーションを含んでいる。
【0016】
好ましくは、前記ソフトウェアは、前記周辺デバイスが前記第2のモードで動作しているときに、前記周辺デバイスにデータを転送するようなアプリケーションを含んでいる。
【0017】
好ましくは、前記ソフトウェアは、前記周辺デバイスを記憶デバイスとして検出すると、ホストデバイスに、前記ソフトウェアに含まれるコードを自動的に実行させるようなデータを含んでいる。
【0018】
好ましくは、前記コードは、前記周辺デバイスが前記第2のモードで動作しているときに、前記ホストドライバが前記周辺デバイスと通信するのを可能にするようなドライバを、前記ホストデバイスが前記ホストデバイスにインストールしたかどうか、を検出することができ、前記コードは、当該ドライバが検出されなかった場合には、前記周辺デバイスにより記憶されている前記ドライバを前記ホストデバイスにインストールさせ、当該ドライバが検出された場合には、前記周辺デバイスが前記第2のモードで動作するのをトリガする、よう構成されている。
【0019】
好ましくは、前記周辺デバイスは、前記第1のモードにおいて、ホストデバイスが標準ドライバを用いて通信可能な標準記憶デバイスとして動作するよう構成されている。
【0020】
好ましくは、前記周辺デバイスは、前記第1のモードにおいて、ホストデバイスが標準ドライバを用いて通信可能なカスタム記憶デバイスとして動作するよう構成されている。
【0021】
好ましくは、前記ソフトウェアは、ホストデバイスが前記第1のモードの前記周辺デバイスと通信するのを可能にするようなドライバを含んでおり、前記ドライバは、前記ホストデバイスを前記第1のモードの動作から前記第2のモードの動作に切り替えさせるよう構成されている。
【0022】
好ましくは、前記デバイスは、前記インタフェースがホストデバイスに接続されると、前記デバイスが動作する方式を示す識別情報を送信し、これにより前記ホストデバイスが、前記デバイスと通信するのにどのドライバを用いるべきかを判断できる、よう構成されている。
【0023】
好ましくは、前記インタフェースは、ユニバーサル・シリアル・バス(USB)インタフェースである。
【0024】
本発明の一の側面はまた、先行するいずれかの請求項に記載の周辺デバイスと前記ホストデバイスとを提供する。
【0025】
以下、本発明が、添付の図面を参照しつつ、例という形で説明される。
【発明を実施するための最良の形態】
【0026】
図1の周辺デバイス1は、2つの方法のいずれかでホストコンピュータ2に自己(周辺デバイス1)を提示することができるよう構成されている。周辺デバイスがコンピュータに最初に接続されるとき、周辺デバイスは、標準ドライバによりコンピュータと通信するのに適した記憶デバイスとして、自己(周辺デバイス1)を提示する。当該標準ドライバは、コンピュータのオペレーティングシステム24に組み込まれている。記憶デバイスとして自己(周辺デバイス1)を提示するとき、周辺デバイスは、当該デバイスと共に使用されるドライバソフトウェアへのアクセスを、コンピュータに許す。コンピュータが、そのドライバソフトウェアを受信する(そして好ましくはそれをインストールする)と、周辺デバイスは、当該デバイスにより提供されたドライバソフトウェアによりコンピュータが通信可能な非標準USBデバイスとして、コンピュータに自己(周辺デバイス1)を提示する。
【0027】
先行技術と比較すると、この方法は、ドライバを記憶する追加のCD又はその他のディスクを必要とすることなくドライバがインストール可能であり、ユーザの介入をほとんど又は全く必要とすることなくドライバがインストール可能であり、ドライバを離れた場所からダウンロードする必要がないので、セキュリティを心配することなくドライバがインストール可能である、という利点を有する。同様の原理が、デバイスの操作(operation)用のアプリケーションソフトウェアのインストールに適用可能である。
【0028】
図1は、インタフェース3により接続されている周辺デバイス1及びコンピュータ2を示す。周辺デバイスは、いかなる種類の周辺デバイスでもよく、例としては、キーボードやマウスやサウンドカードが挙げられる。コンピュータ2は、パーソナルコンピュータでもよいし、ゲーム機、セットトップボックス、玩具、家庭用電気製品、又は車のような、コンピュータ機能を内蔵するデバイスでもよい。インタフェースは、USBインタフェースでも、PCIインタフェースでも、その他の種類のインタフェースでもよい。
【0029】
周辺デバイス1は、プロセッサ10と、不揮発性メモリ11と、機能サブシステム(functional subsystem)12と、インタフェースコネクタ(interface connector)13とを備える。不揮発性メモリ11は、プロセッサ10により実行されるプログラムコード14と、周辺デバイスと通信することになるコンピュータにアップロードされるドライバソフトウェア15と、を含むデータを記憶する。プログラムコードは、接続されたコンピュータと通信する当該デバイスの機能を定義する。不揮発性メモリは、集積回路上に実装可能である。機能サブシステム12は、当該デバイスの特定の機能を提供し、それは例えば、キーボードのキー及びスイッチでも、サウンドカードの音声生成コンポーネントでもよい。周辺デバイスは、その電力をインタフェース3を介してコンピュータから受けてもよいし、当該周辺デバイス自体の主電源又はバッテリ電源を有していてもよい。
【0030】
コンピュータ2は、プロセッサ20と、不揮発性メモリ21と、ユーザインタフェース22と、デバイスインタフェースコネクタ23とを有する。コンピュータは、オペレーティングシステム24及び多数のアプリケーションプログラム25をサポートする。不揮発性メモリ21は、ハードディスクとして実装可能である。不揮発性メモリ21は、オペレーティングシステム及びアプリケーションプログラムを定義するプログラムコードを記憶する。これらのプログラムは、プロセッサ20により実行される。ユーザインタフェース22は、ユーザがコンピュータとインタラクトするための手段を提供する。デバイスインタフェースコネクタ23は、デバイス1のような周辺デバイスを、コンピュータ2との通信のためにコンピュータ2に接続することを可能にする。
【0031】
この例では、インタフェース3は、USBインタフェースである。インタフェースコネクタ13及び23は、ケーブル3により相互接続されるUSBタイプのコネクタである。これに代わり、これらコネクタは、互いに直接的に接続されてもよい。
【0032】
ホストデバイスにおいてUSBドライバをインスタンス化する通常の手順は、次の通りである。
【0033】
1.USBデバイスが、USBバスに接続され、USBバス上に現れる。
【0034】
2.次に、USBバス自体の特定のドライバが、USBデバイスに、デバイスクラス及びVID(vendor identifier:ベンダ識別子)+PID(product identifier:プロダクト識別子)を問い合わせる。
【0035】
3.ホストデバイスのオペレーティングシステムが、当該オペレーティングシステムに利用可能なドライバの中から、検出されたVID及びPIDのペアにサービスするのに適しているとされるドライバを探す。オペレーティングシステムがドライバを見つけた場合には、ステップ5に進む。
【0036】
4.オペレーティングシステムが、当該オペレーティングシステムに利用可能なドライバの中から、検出されたデバイスクラスにサービスするのに適しているとされるドライバを探す。オペレーティングシステムは、そのようなデバイスが見つからなかった場合、ドライバをインスタンスすることができない。
【0037】
5.オペレーティングシステムが、ステップ3又は4で見つかった適切なデバイスドライバをインスタンス化する。
【0038】
6.USBデバイスとホストデバイスとが、インスタンス化されたドライバにより互いに通信する。
【0039】
以下、周辺デバイス1とコンピュータ2とが動作するよう構成されている方法について説明する。この構成は、メモリ11及び21に記憶されており、プロセッサ10及び20により実行されるソフトウェア、の設計によるものである。当該動作における諸ステップが、図2に示されている。
【0040】
1.周辺デバイスがコンピュータに最初に接続されるとき、周辺デバイスは、自己を、USB大容量記憶デバイスとして提示する。周辺デバイスは、周辺デバイスとコンピュータとの間のUSBデータ接続が初期化されるときに、大容量記憶デバイスのデバイスクラスに対応するデバイスクラスを有すると自己を提示することにより、これを行う。
【0041】
2.コンピュータのオペレーティングシステムが、USB大容量記憶デバイスの接続を検出する。これにより、オペレーティングシステムは、当該デバイスと通信するために、USB大容量記憶デバイスの汎用デバイスドライバをインスタンス化する。このようなドライバは一般に、オペレーティングシステムに組み込まれている。次に、コンピュータのオペレーティングシステムは、周辺デバイスにより提示されたドライブを、コンピュータのファイルシステムにマッピングする。オペレーティングシステムがドライブの自動マッピングをサポートしていない場合には、オペレーティングシステム上で走り、記憶ドライブとして働く新たに接続されたデバイスを監視するプログラム、により同等の機能が提供可能である。
【0042】
3.ファイルシステムへのドライブのマッピングが、新たにマウントされたドライブに対してオペレーティングシステムにより通常行われる動作を、トリガする。オペレーティングシステムがそのように動作するよう構成されている場合において、これらの動作には、ドライブの新たなマウント時に実行される指定ファイルの存在を、当該ドライブについてチェックする段階が含まれる。Microsoft Windowsオペレーティングシステムの例では、これはautorun.infファイルである。オペレーティングシステムは、指定ファイルを自動的に実行するよう構成されている必要があるとしてもよい。セキュリティのためには、コンピュータがそのように動作することをユーザが承認している、ということをユーザがコンピュータに確認した後にだけ、当該ファイルが自動的に実行される事が望まれる。オペレーティングシステムが当該ファイルの自動実行をサポートしていない場合には、オペレーティングシステム上で走り、新たに接続されたドライバを監視するプログラム、により同等の機能が提供可能である。
【0043】
4.周辺デバイスにより提示されるファイル構造は、メモリ11に記憶されている情報の制御下にあり、上記のような指定ファイル(例えばautrun.inf)に加え、実行ファイルを含んでいる。当該実行ファイルは、プロセッサ20による実行に適したプログラムを構成しており、周辺デバイスの特定の機能のためのドライバをインストールする。Windowsオペレーティングシステムの場合、その実行ファイルはsetup.exeと呼ばれ得る。指定ファイル(例えばautorun.inf)は、オペレーティングシステムにその実行ファイルをロードさせて実行させるよう構成されている。従って、コンピュータ2のオペレーティングシステムが指定ファイルを読み込んで実行するとき、オペレーティングシステムは、実行ファイルをロードして(例えば、実行ファイルを周辺デバイスからコンピュータ2のローカルメモリにコピーすることによりロードする)、それを実行する。そして、実行ファイルが実行され、実行ファイルは、周辺デバイスの特定の機能をサポートするドライバを、コンピュータにインストールする。Windowsオペレーティングシステムの場合、これは、コンピュータのハードディスク上に、デバイスドライバの.sysファイル及び種々様々なファイルをコピー又は作成することにより行ってもよい。
【0044】
5.実行ファイルは、ドライバがインストールされた後に、周辺デバイスにコマンドを送信してドライバがインストールされたことを周辺デバイスに知らせるようなコードを含んでいる。これは、一般的な「detach」コマンドでもよい。その後、実行ファイルは、終了してもよいし、実行を続けて後述のステップ7をサポートしてもよい。
【0045】
6.上記コマンドに応じて、周辺デバイスは、コンピュータとの接続を解除し、そして自動的に再接続するが、今度は自己を、もはや汎用USB大容量記憶デバイスではなく、その特定の機能を提供する本来のUSBデバイスとして、コンピュータに提示する。周辺デバイスは、上記コマンドに応じてそう動作するよう、そのメモリ11に記憶されているコードにより予めプログラムされている。周辺デバイスが自己として提示する、本来のUSBデバイスのデバイスクラス又は識別子は、新たにインストールされたドライバに対応するようなそれである。接続の解除をトリガするためにコンピュータからのコマンドの受信を要求する代わりに、周辺デバイスは、このステップを自動的に行うことができる。例えば、周辺デバイスは、ホストコンピュータに接続してから所定の時間が経過した時点で当該ステップを実施することもできるし、実行ファイル(又はインストールに関与する別のファイル)がコンピュータにより要求されてコンピュータに提供されてから所定の時間が経過した時点で当該ステップを実施することもできる。これらの場合、上記ステップ5は省略されてよい。上記所定の時間は、必要であれば、実行ファイルが実行を完了していることを確認するのに十分なように選択されるべきである。
【0046】
7.コンピュータのオペレーティングシステムが、新たなUSBデバイスの接続を検出し、当該デバイスのクラスに基づいて、当該デバイスと共に使用されるドライバを選択する。そのドライバとは、新たにインストールされたドライバである。なぜならば、当該ドライバは、当該ドライバが当該クラスのデバイスを操作するのに適していることを識別させるようなデータを含んでいるからである。この選択はオペレーティングシステムにより実行可能である。実行ファイルが終了していない場合には、代わりに、実行ファイルが、ドライバを選択する及び/又はドライバの使用を開始する、ことが可能である。そして、デバイスの特定の機能を、コンピュータ2及びそのユーザが使用できるようになる。
【0047】
デバイスがコンピュータから取り外されるとき、実行ファイルは、それがまだ実行中であっても、コンピュータの記憶装置から自己を削除することができる。デバイスは更にドライバをアンインストールすることもできるが、それは通常は望まれない。なぜならば、ドライバは通常、コンピュータの記憶領域の多くを占めてはいないからである。
【0048】
通常、実行ファイルをロードするために、コンピュータは、当該ファイルを周辺デバイスからコンピュータ上の一時メモリにコピーする。実行ファイルが大きい場合、又は実行ファイルが、その動作をサポートするために、大量の他のデータを共にロードすることを必要とする場合、周辺デバイスからコンピュータへのデータの転送に時間がかかることがある。以下の技術を、この遅延を低減するのに利用してもよい。実行ファイルは、カスタム大容量記憶デバイスドライバをインストールするようにも構成可能である。このデバイスドライバは、デフォルトの大容量記憶デバイスドライバよりも優先的に、周辺デバイスにより提示される大容量記憶デバイスと通信するために、オペレーティングシステムにより使用されるよう構成される。このことは、デバイスが自己をコンピュータに提示するときにデバイスによりコンピュータに提供される、デバイスの識別情報により実現可能である。USBデバイスの場合、この識別情報は、そのVID及びPIDとすることが可能である。カスタム大容量記憶ドライバは、デバイスとの初期通信において、所定のタイプのコマンド又はコマンド列を周辺デバイスに送信するよう構成される。周辺デバイスは、このような(1つまたは複数の)コマンドに応じて、自動的にコンピュータとの接続を解除し、その特定の機能を提供する本来のUSBデバイスとして自己を再提示するよう構成される。こうして、望むならば、実行ファイルの2回目のロードを回避することができる。デバイスドライバを使う方が、多くの場合、実行ファイルを使うよりも迅速である。
【0049】
他の技術では、周辺デバイスから2つの実行ファイルを提供する。第1のファイルは、autorun.ini又はその他のオートローダファイルから呼び出されるファイルであり、コンピュータにより実行されると、USBデバイスの特定のマニフェステーションに適したドライバがインストールされているかどうかをチェックする、小さなファイルである。インストールされている場合、第1のファイルは、上述のステップ5の場合と同様にUSBデバイスにコマンドを送信し、その後、終了する。インストールされていない場合、第1のファイルは、ドライバをインストールするために、コンピュータに第2のより大きな実行ファイルをUSBデバイスからロードさせる。
【0050】
実際には、不揮発性メモリは、複数セットのドライバソフトウェアを記憶することが可能であり、各セットは、オペレーティングシステム及び数多くのオートローダファイルの異なる動作システム又は異なる動作バージョンで使用される。コンピュータは、ドライバのインストールにおいて標準的な適切なバージョンを、コンパクトディスク(CD)のような一般的な共通のソースからインストールする。
【0051】
実行ファイルは、接続されたデバイス用のドライバのインストールを単に監視する以外の機能も提供することが可能である。実行ファイルは、コンピュータによりデバイスから受信されたデータを処理及び/又は表示する機能を提供することが可能である。実行ファイルは、データを取得(capture)し、そのデータをデバイスに提示(direct)する機能を提供することが可能である。
【0052】
上述のように動作可能なデバイスの一例は、ビデオをストリーミングする手段を提供するUSBドングルである。このようなドングルは、表示画面か記憶されている又は到来したビデオストリームかのいずれかからストリーミングビデオのコンテンツをコピーするアプリケーションを含むことができる。当該アプリケーションは、上述のやり方でコンピュータにロードすることができ、その後、当該ドングルの特殊なビデオデバイス部分の特定の機能により提供されるトランスポートを介して、ビデオデータのストリームを送信するよう動作することができる。
【0053】
上述のように動作可能なデバイスの別の例は、USB温度計である。当該温度計は、USBデバイスでもよく、当該USB温度計から提供されるデータをグラフィック形式で表示するアプリケーションを記憶していてもよい。当該温度計がコンピュータに挿入されると、当該アプリケーションがロードされ(必要であれば)、上述の技術を利用して実行される。そして、当該アプリケーションは、USB端点ユニットの測定デバイスから気候データを受け取り、当該気象データをユーザにグラフィカルに示すことができる。
【0054】
上述のように動作可能なデバイスの別の例は、標準ドライバでサポートされるジョイスティックの機能を上回る機能(例えば追加のスイッチコントロール)を有するUSBジョイスティックである。ユーザが当該ジョイスティックをコンピュータに繋ぐと、当該ジョイスティックにより記憶されており特殊な機能に対応するドライバが、当該ジョイスティック上の記憶装置からインストールされる。
【0055】
上述のように動作可能なデバイスの別の例は、USBマウスである。ユーザが当該マウスをコンピュータに繋ぐと、当該マウスがUSBバス上で発現(manifest)する前に当該マウス用のデバイスドライバがロードされる。当該マウスは、好ましくは、当該マウスが初期化された後に当該マウスが大容量記憶デバイスなしで発現し、コンピュータのBIOSだけが動作しているときでも当該マウスがコンピュータにより使用可能となるよう構成されるべきである。
【0056】
本発明は、USBインタフェースと共に使用することに限定されない。本発明は、必要な機能をサポートするその他のインタフェースと共に使用してもよい。当該機能としては例えば、様々なタイプの複数のデバイスを提示することや、実行ファイルをデバイスから直接実行するのを可能にするような方法でデバイスを提示することが挙げられる。このようなインタフェースには、SDIOや、IEEE1394(別名ファイアワイア、iリンク)や、カードバスが含まれる。
【0057】
本出願人は、本明細書において、本明細書に記載の個々の個別の特徴及び2つ以上のこうした特徴の任意の組合せを、こうした特徴又は特徴の組合せが本明細書に開示されたいかなる問題を解決するかを問わず、且つ特許請求の範囲に限定されることなく、こうした特徴又は組合せを当業者に共通の一般知識に照らして概ね本明細書に基づいて実施できる程度に、それぞれ切り離して開示している。本出願人は、本発明の諸側面が、こうした個別の特徴又は特徴の組合せで構成し得ることを示している。上述の説明を鑑みれば、様々な変形例を本発明の範囲内で想到し得ることが当業者には明白であろう。
【図面の簡単な説明】
【0058】
【図1】コンピュータ及び周辺デバイスを概略的に示す。
【図2】ドライバのインストールのための通信を示す。

【特許請求の範囲】
【請求項1】
周辺デバイスであって、
ホストデバイスとの接続のためのインタフェースと、
前記周辺デバイスを操作するために前記ホストデバイスにより使用されるソフトウェア、を記憶するメモリと、
前記デバイスが前記インタフェースを介して2つの動作モードの内のいずれかで動作することができるよう前記デバイスの動作を制御するプロセッサであって、前記2つの動作モードには、前記デバイスが、前記ソフトウェアを記憶する記憶デバイスとして動作する第1のモードと、前記デバイスが、前記インタフェースを介して前記デバイスに接続されているデバイスに、前記ソフトウェアにより他の機能を提供するデバイスとして動作する第2のモードと、があるようなプロセッサとを有し、
前記周辺デバイスは、前記インタフェースがホストデバイスに接続されると前記第1のモードで動作し、その後前記第2のモードで動作するよう構成されている周辺デバイス。
【請求項2】
前記ソフトウェアは、前記周辺デバイスが前記第2のモードで動作しているときに、ホストデバイスが前記周辺デバイスと通信するのを可能にするようなドライバを含んでいる、請求項1に記載の周辺デバイス。
【請求項3】
前記ソフトウェアは、ホストデバイスに前記ドライバをインストールさせるような実行プログラムを含んでいる、請求項2に記載の周辺デバイス。
【請求項4】
前記実行プログラムは、前記ドライバのインストール後に、ホストデバイスに所定のタイプのメッセージを前記周辺デバイスへと送信させるよう構成されており、前記周辺デバイスは、当該メッセージに応じて前記第1のモードの動作から前記第2のモードの動作に切り替わる、請求項3に記載の周辺デバイス。
【請求項5】
前記ソフトウェアは、前記周辺デバイスが前記第2のモードで動作しているときに、前記周辺デバイスにより受信されたデータを処理するようなアプリケーションを含んでいる、請求項1乃至4のいずれか1項に記載の周辺デバイス。
【請求項6】
前記ソフトウェアは、前記周辺デバイスが前記第2のモードで動作しているときに、前記周辺デバイスにデータを転送するようなアプリケーションを含んでいる、請求項1乃至5のいずれか1項に記載の周辺デバイス。
【請求項7】
前記ソフトウェアは、前記周辺デバイスを記憶デバイスとして検出すると、ホストデバイスに、前記ソフトウェアに含まれるコードを自動的に実行させるようなデータを含んでいる、請求項1乃至6のいずれか1項に記載の周辺デバイス。
【請求項8】
前記コードは、前記周辺デバイスが前記第2のモードで動作しているときに、前記ホストドライバが前記周辺デバイスと通信するのを可能にするようなドライバを、前記ホストデバイスが前記ホストデバイスにインストールしたかどうか、を検出することができ、
前記コードは、
当該ドライバが検出されなかった場合には、前記周辺デバイスにより記憶されている前記ドライバを前記ホストデバイスにインストールさせ、
当該ドライバが検出された場合には、前記周辺デバイスが前記第2のモードで動作するのをトリガする、
よう構成されている、
請求項2に直接又は間接に従属する請求項7に記載の周辺デバイス。
【請求項9】
前記周辺デバイスは、前記第1のモードにおいて、ホストデバイスが標準ドライバを用いて通信可能な標準記憶デバイスとして動作するよう構成されている、請求項8に記載の周辺デバイス。
【請求項10】
前記周辺デバイスは、前記第1のモードにおいて、ホストデバイスが標準ドライバを用いて通信可能なカスタム記憶デバイスとして動作するよう構成されている、請求項8に記載の周辺デバイス。
【請求項11】
前記ソフトウェアは、ホストデバイスが前記第1のモードの前記周辺デバイスと通信するのを可能にするようなドライバを含んでおり、前記ドライバは、前記ホストデバイスを前記第1のモードの動作から前記第2のモードの動作に切り替えさせるよう構成されている、請求項10に記載の周辺デバイス。
【請求項12】
前記デバイスは、前記インタフェースがホストデバイスに接続されると、前記デバイスが動作する方式を示す識別情報を送信し、これにより前記ホストデバイスが、前記デバイスと通信するのにどのドライバを用いるべきかを判断できる、よう構成されている、請求項1乃至11のいずれか1項に記載の周辺デバイス。
【請求項13】
前記インタフェースは、ユニバーサル・シリアル・バス(USB)インタフェースである、請求項1乃至12のいずれか1項に記載の周辺デバイス。
【請求項14】
請求項1乃至13のいずれか1項に記載の周辺デバイスと、前記ホストデバイス。
【請求項15】
実質的に、添付の図面の図1及び図2を参照しつつ本明細書で説明されているような周辺デバイス。

【図1】
image rotate

【図2】
image rotate


【公表番号】特表2008−532161(P2008−532161A)
【公表日】平成20年8月14日(2008.8.14)
【国際特許分類】
【出願番号】特願2007−557564(P2007−557564)
【出願日】平成18年2月13日(2006.2.13)
【国際出願番号】PCT/GB2006/000485
【国際公開番号】WO2006/092552
【国際公開日】平成18年9月8日(2006.9.8)
【出願人】(506379437)ケンブリッジ シリコン ラジオ リミテッド (12)
【Fターム(参考)】