(57)【要約】  周辺デバイスであって、ホストデバイスとの接続のためのインタフェースと、前記周辺デバイスを操作するために前記ホストデバイスにより使用されるソフトウェア、を記憶するメモリと、前記デバイスが前記インタフェースを介して２つの動作モードの内のいずれかで動作することができるよう前記デバイスの動作を制御するプロセッサであって、前記２つの動作モードには、前記デバイスが、前記ソフトウェアを記憶する記憶デバイスとして動作する第１のモードと、前記デバイスが、前記インタフェースを介して前記デバイスに接続されているデバイスに、前記ソフトウェアにより他の機能を提供するデバイスとして動作する第２のモードと、があるようなプロセッサとを有し、前記周辺デバイスは、前記インタフェースがホストデバイスに接続されると前記第１のモードで動作し、その後前記第２のモードで動作するよう構成されている周辺デバイス。
2008532161.tif 000002
【特許請求の範囲】
【請求項１】
周辺デバイスであって、
ホストデバイスとの接続のためのインタフェースと、
前記周辺デバイスを操作するために前記ホストデバイスにより使用されるソフトウェア、を記憶するメモリと、
前記デバイスが前記インタフェースを介して２つの動作モードの内のいずれかで動作することができるよう前記デバイスの動作を制御するプロセッサであって、前記２つの動作モードには、前記デバイスが、前記ソフトウェアを記憶する記憶デバイスとして動作する第１のモードと、前記デバイスが、前記インタフェースを介して前記デバイスに接続されているデバイスに、前記ソフトウェアにより他の機能を提供するデバイスとして動作する第２のモードと、があるようなプロセッサとを有し、
前記周辺デバイスは、前記インタフェースがホストデバイスに接続されると前記第１のモードで動作し、その後前記第２のモードで動作するよう構成されている周辺デバイス。
【請求項２】
前記ソフトウェアは、前記周辺デバイスが前記第２のモードで動作しているときに、ホストデバイスが前記周辺デバイスと通信するのを可能にするようなドライバを含んでいる、請求項１に記載の周辺デバイス。
【請求項３】
前記ソフトウェアは、ホストデバイスに前記ドライバをインストールさせるような実行プログラムを含んでいる、請求項２に記載の周辺デバイス。
【請求項４】
前記実行プログラムは、前記ドライバのインストール後に、ホストデバイスに所定のタイプのメッセージを前記周辺デバイスへと送信させるよう構成されており、前記周辺デバイスは、当該メッセージに応じて前記第１のモードの動作から前記第２のモードの動作に切り替わる、請求項３に記載の周辺デバイス。
【請求項５】
前記ソフトウェアは、前記周辺デバイスが前記第２のモードで動作しているときに、前記周辺デバイスにより受信されたデータを処理するようなアプリケーションを含んでいる、請求項１乃至４のいずれか１項に記載の周辺デバイス。
【請求項６】
前記ソフトウェアは、前記周辺デバイスが前記第２のモードで動作しているときに、前記周辺デバイスにデータを転送するようなアプリケーションを含んでいる、請求項１乃至５のいずれか１項に記載の周辺デバイス。
【請求項７】
前記ソフトウェアは、前記周辺デバイスを記憶デバイスとして検出すると、ホストデバイスに、前記ソフトウェアに含まれるコードを自動的に実行させるようなデータを含んでいる、請求項１乃至６のいずれか１項に記載の周辺デバイス。
【請求項８】
前記コードは、前記周辺デバイスが前記第２のモードで動作しているときに、前記ホストドライバが前記周辺デバイスと通信するのを可能にするようなドライバを、前記ホストデバイスが前記ホストデバイスにインストールしたかどうか、を検出することができ、
前記コードは、
当該ドライバが検出されなかった場合には、前記周辺デバイスにより記憶されている前記ドライバを前記ホストデバイスにインストールさせ、
当該ドライバが検出された場合には、前記周辺デバイスが前記第２のモードで動作するのをトリガする、
よう構成されている、
請求項２に直接又は間接に従属する請求項７に記載の周辺デバイス。
【請求項９】
前記周辺デバイスは、前記第１のモードにおいて、ホストデバイスが標準ドライバを用いて通信可能な標準記憶デバイスとして動作するよう構成されている、請求項８に記載の周辺デバイス。
【請求項１０】
前記周辺デバイスは、前記第１のモードにおいて、ホストデバイスが標準ドライバを用いて通信可能なカスタム記憶デバイスとして動作するよう構成されている、請求項８に記載の周辺デバイス。
【請求項１１】
前記ソフトウェアは、ホストデバイスが前記第１のモードの前記周辺デバイスと通信するのを可能にするようなドライバを含んでおり、前記ドライバは、前記ホストデバイスを前記第１のモードの動作から前記第２のモードの動作に切り替えさせるよう構成されている、請求項１０に記載の周辺デバイス。
【請求項１２】
前記デバイスは、前記インタフェースがホストデバイスに接続されると、前記デバイスが動作する方式を示す識別情報を送信し、これにより前記ホストデバイスが、前記デバイスと通信するのにどのドライバを用いるべきかを判断できる、よう構成されている、請求項１乃至１１のいずれか１項に記載の周辺デバイス。
【請求項１３】
前記インタフェースは、ユニバーサル・シリアル・バス（ＵＳＢ）インタフェースである、請求項１乃至１２のいずれか１項に記載の周辺デバイス。
【請求項１４】
請求項１乃至１３のいずれか１項に記載の周辺デバイスと、前記ホストデバイス。
【請求項１５】
実質的に、添付の図面の図１及び図２を参照しつつ本明細書で説明されているような周辺デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周辺デバイス用のドライバのインストールに関する。
【背景技術】
【０００２】
デバイスがコンピュータに接続されるとき、コンピュータは、デバイスと通信するのにドライバソフトウェアの使用を必要とすることがある。ドライバソフトウェアは、コンピュータ上で実行され、コンピュータに対し、デバイスに又はデバイスからデータを転送する手段と、デバイスの機能をアクティブにする手段とを提供する。例えばドライバソフトウェアは、デバイスに機能を実行させるために、コンピュータ上で走るプロセスと呼ばれ得るプロシージャのライブラリを提供することができる。当該プロシージャは、呼び出しプロセスからパラメータを受け取り、デバイスとの通信に適した信号を形成してデバイスに当該機能を実行させることができる。
【０００３】
ドライバソフトウェアをコンピュータ上で使用するためには、まずドライバソフトウェアがコンピュータにインストールされなければならない。一般に、このインストールは、コンピュータにアクセス可能な不揮発性記憶装置（例えば、コンピュータのハードディスクドライブ）にドライバソフトウェアを記憶（store）する段階と、ドライバソフトウェアが利用可能でありデバイスとの通信に使用可能であることをコンピュータが分かるよう、ドライバソフトウェアを登録（register）する段階とを含んでいる。
【０００４】
ドライバソフトウェアのインストールは、複雑となることがあるし、コンピュータに関する知識を必要とすることもあるので、スキルのない人々にとっては難しい作業となる。従って、周辺デバイスを使いやすくするには、そのデバイスのドライバソフトウェアをインストールしやすくすることが重要である。
【０００５】
デバイスドライバは通常、ハードウェア周辺デバイスをコンピュータに最初に接続するあたりの時点（接続前か接続後かのいずれか）において、ドライバが正しくインストールされるよう製造元が推奨するような正確なインストール手順に従って、インストールされる。ドライバは、通常、当該周辺デバイスと併せて販売されるＣＤ又はその他のディスクにて供給される（または、インターネットからダウンロードされてもよい）。こうしたやり方のドライバの配布には、ドライバを追加の媒体によって供給する必要があるためハードウェアそれ自体が自己完結的でない、という欠点がある。
【０００６】
ドライバソフトウェアをインストールしやすくする１つの方法は、コンピュータに、ドライバソフトウェアを中央ソースから自動的にダウンロードさせることである。この方法は、Microsoft Windows XPのようなオペレーティングシステムで利用可能である。周辺デバイスがコンピュータに接続されると、周辺デバイスはその識別情報（identity）をコンピュータに提供する。その後、コンピュータは、インターネットを介してサーバに接触し、そのデバイスに適したドライバを見つけようとする。好適なドライバが見つかると、コンピュータはそれをダウンロードして登録する。この方法には、数多くの不利な点がある。第１に、この方法は、サーバが適切なドライバを有するように正しく構成されている場合にしか有効でない。第２に、この方法は、コンピュータが中央サーバにアクセス可能な場合にしか有効でなく、従って、コンピュータがネットワークに接続されていない場合には、コンピュータはドライバにアクセスすることができない。第３に、ユーザは、自分で指定したのではないソースからドライバをダウンロードすることになる場合、セキュリティについて心配を抱えることにもなり得る。
【０００７】
オペレーティングシステムは一般に、標準タイプの周辺デバイスと通信するためのいくつかの標準インタフェースプロトコル及び標準インタフェースドライバをサポートする。例えば、オペレーティングシステムは一般に、ＵＳＢインタフェースを介してディスクドライブのような大容量記憶デバイスと通信するための標準プロトコルをサポートすることができる。しかしながら、標準プロトコルは一般に、非標準デバイスとの通信には適していない。
【０００８】
ドライバのインストールを改善する１つの方法は、ＵＳＢ複合デバイスを使用することである。この方法については、ＷＯ２００４／０３８５８４に概略が記載されている。この方法にはいくつかの不利な点があり、とりわけ不利なのは、大容量記憶デバイスのＵＳＢマニフェステーションとカスタムＵＳＢデバイスのＵＳＢマニフェステーションとが競合してしまうことである。この方法では更に、ホストコンピュータへの追加のドライブのインストールが必要とされ、このことがユーザを混乱させる可能性がある。
【０００９】
ドライバに当てはまる問題と同様の問題は、周辺デバイスとのインタラクションに必要又は有益な実行ファイルのインストールにも当てはまる。
【００１０】
ドライバ、及び／又は周辺デバイスとインタラクト（interact）する実行ファイル、をインストールする改善された手段が必要とされている。
【発明の開示】
【課題を解決するための手段】
【００１１】
本発明の一の側面によれば、周辺デバイスであって、ホストデバイスとの接続のためのインタフェースと、前記周辺デバイスを操作（operate）するために前記ホストデバイスにより使用されるソフトウェア、を記憶するメモリと、前記デバイスが前記インタフェースを介して２つの動作モードの内のいずれかで動作することができるよう前記デバイスの動作を制御するプロセッサであって、前記２つの動作モードには、前記デバイスが、前記ソフトウェアを記憶する記憶デバイスとして動作する第１のモードと、前記デバイスが、前記インタフェースを介して前記デバイスに接続されているデバイスに、前記ソフトウェアにより他の機能を提供するデバイスとして動作する第２のモードと、があるようなプロセッサとを有し、前記周辺デバイスは、前記インタフェースがホストデバイスに接続されると前記第１のモードで動作し、その後前記第２のモードで動作するよう構成されている周辺デバイスが提供される。
【００１２】
好ましくは、前記ソフトウェアは、前記周辺デバイスが前記第２のモードで動作しているときに、ホストデバイスが前記周辺デバイスと通信するのを可能にするようなドライバを含んでいる。
【００１３】
好ましくは、前記ソフトウェアは、ホストデバイスに前記ドライバをインストールさせるような実行プログラムを含んでいる。
【００１４】
好ましくは、前記実行プログラムは、前記ドライバのインストール後に、ホストデバイスに所定のタイプのメッセージを前記周辺デバイスへと送信させるよう構成されており、前記周辺デバイスは、当該メッセージに応じて前記第１のモードの動作から前記第２のモードの動作に切り替わる。
【００１５】
好ましくは、前記ソフトウェアは、前記周辺デバイスが前記第２のモードで動作しているときに、前記周辺デバイスにより受信されたデータを処理するようなアプリケーションを含んでいる。
【００１６】
好ましくは、前記ソフトウェアは、前記周辺デバイスが前記第２のモードで動作しているときに、前記周辺デバイスにデータを転送するようなアプリケーションを含んでいる。
【００１７】
好ましくは、前記ソフトウェアは、前記周辺デバイスを記憶デバイスとして検出すると、ホストデバイスに、前記ソフトウェアに含まれるコードを自動的に実行させるようなデータを含んでいる。
【００１８】
好ましくは、前記コードは、前記周辺デバイスが前記第２のモードで動作しているときに、前記ホストドライバが前記周辺デバイスと通信するのを可能にするようなドライバを、前記ホストデバイスが前記ホストデバイスにインストールしたかどうか、を検出することができ、前記コードは、当該ドライバが検出されなかった場合には、前記周辺デバイスにより記憶されている前記ドライバを前記ホストデバイスにインストールさせ、当該ドライバが検出された場合には、前記周辺デバイスが前記第２のモードで動作するのをトリガする、よう構成されている。
【００１９】
好ましくは、前記周辺デバイスは、前記第１のモードにおいて、ホストデバイスが標準ドライバを用いて通信可能な標準記憶デバイスとして動作するよう構成されている。
【００２０】
好ましくは、前記周辺デバイスは、前記第１のモードにおいて、ホストデバイスが標準ドライバを用いて通信可能なカスタム記憶デバイスとして動作するよう構成されている。
【００２１】
好ましくは、前記ソフトウェアは、ホストデバイスが前記第１のモードの前記周辺デバイスと通信するのを可能にするようなドライバを含んでおり、前記ドライバは、前記ホストデバイスを前記第１のモードの動作から前記第２のモードの動作に切り替えさせるよう構成されている。
【００２２】
好ましくは、前記デバイスは、前記インタフェースがホストデバイスに接続されると、前記デバイスが動作する方式を示す識別情報を送信し、これにより前記ホストデバイスが、前記デバイスと通信するのにどのドライバを用いるべきかを判断できる、よう構成されている。
【００２３】
好ましくは、前記インタフェースは、ユニバーサル・シリアル・バス（ＵＳＢ）インタフェースである。
【００２４】
本発明の一の側面はまた、先行するいずれかの請求項に記載の周辺デバイスと前記ホストデバイスとを提供する。
【００２５】
以下、本発明が、添付の図面を参照しつつ、例という形で説明される。
【発明を実施するための最良の形態】
【００２６】
図１の周辺デバイス１は、２つの方法のいずれかでホストコンピュータ２に自己（周辺デバイス１）を提示することができるよう構成されている。周辺デバイスがコンピュータに最初に接続されるとき、周辺デバイスは、標準ドライバによりコンピュータと通信するのに適した記憶デバイスとして、自己（周辺デバイス１）を提示する。当該標準ドライバは、コンピュータのオペレーティングシステム２４に組み込まれている。記憶デバイスとして自己（周辺デバイス１）を提示するとき、周辺デバイスは、当該デバイスと共に使用されるドライバソフトウェアへのアクセスを、コンピュータに許す。コンピュータが、そのドライバソフトウェアを受信する（そして好ましくはそれをインストールする）と、周辺デバイスは、当該デバイスにより提供されたドライバソフトウェアによりコンピュータが通信可能な非標準ＵＳＢデバイスとして、コンピュータに自己（周辺デバイス１）を提示する。
【００２７】
先行技術と比較すると、この方法は、ドライバを記憶する追加のＣＤ又はその他のディスクを必要とすることなくドライバがインストール可能であり、ユーザの介入をほとんど又は全く必要とすることなくドライバがインストール可能であり、ドライバを離れた場所からダウンロードする必要がないので、セキュリティを心配することなくドライバがインストール可能である、という利点を有する。同様の原理が、デバイスの操作（operation）用のアプリケーションソフトウェアのインストールに適用可能である。
【００２８】
図１は、インタフェース３により接続されている周辺デバイス１及びコンピュータ２を示す。周辺デバイスは、いかなる種類の周辺デバイスでもよく、例としては、キーボードやマウスやサウンドカードが挙げられる。コンピュータ２は、パーソナルコンピュータでもよいし、ゲーム機、セットトップボックス、玩具、家庭用電気製品、又は車のような、コンピュータ機能を内蔵するデバイスでもよい。インタフェースは、ＵＳＢインタフェースでも、ＰＣＩインタフェースでも、その他の種類のインタフェースでもよい。
【００２９】
周辺デバイス１は、プロセッサ１０と、不揮発性メモリ１１と、機能サブシステム（functional subsystem）１２と、インタフェースコネクタ（interface connector）１３とを備える。不揮発性メモリ１１は、プロセッサ１０により実行されるプログラムコード１４と、周辺デバイスと通信することになるコンピュータにアップロードされるドライバソフトウェア１５と、を含むデータを記憶する。プログラムコードは、接続されたコンピュータと通信する当該デバイスの機能を定義する。不揮発性メモリは、集積回路上に実装可能である。機能サブシステム１２は、当該デバイスの特定の機能を提供し、それは例えば、キーボードのキー及びスイッチでも、サウンドカードの音声生成コンポーネントでもよい。周辺デバイスは、その電力をインタフェース３を介してコンピュータから受けてもよいし、当該周辺デバイス自体の主電源又はバッテリ電源を有していてもよい。
【００３０】
コンピュータ２は、プロセッサ２０と、不揮発性メモリ２１と、ユーザインタフェース２２と、デバイスインタフェースコネクタ２３とを有する。コンピュータは、オペレーティングシステム２４及び多数のアプリケーションプログラム２５をサポートする。不揮発性メモリ２１は、ハードディスクとして実装可能である。不揮発性メモリ２１は、オペレーティングシステム及びアプリケーションプログラムを定義するプログラムコードを記憶する。これらのプログラムは、プロセッサ２０により実行される。ユーザインタフェース２２は、ユーザがコンピュータとインタラクトするための手段を提供する。デバイスインタフェースコネクタ２３は、デバイス１のような周辺デバイスを、コンピュータ２との通信のためにコンピュータ２に接続することを可能にする。
【００３１】
この例では、インタフェース３は、ＵＳＢインタフェースである。インタフェースコネクタ１３及び２３は、ケーブル３により相互接続されるＵＳＢタイプのコネクタである。これに代わり、これらコネクタは、互いに直接的に接続されてもよい。
【００３２】
ホストデバイスにおいてＵＳＢドライバをインスタンス化する通常の手順は、次の通りである。
【００３３】
１．ＵＳＢデバイスが、ＵＳＢバスに接続され、ＵＳＢバス上に現れる。
【００３４】
２．次に、ＵＳＢバス自体の特定のドライバが、ＵＳＢデバイスに、デバイスクラス及びＶＩＤ（vendor identifier：ベンダ識別子）＋ＰＩＤ（product identifier：プロダクト識別子）を問い合わせる。
【００３５】
３．ホストデバイスのオペレーティングシステムが、当該オペレーティングシステムに利用可能なドライバの中から、検出されたＶＩＤ及びＰＩＤのペアにサービスするのに適しているとされるドライバを探す。オペレーティングシステムがドライバを見つけた場合には、ステップ５に進む。
【００３６】
４．オペレーティングシステムが、当該オペレーティングシステムに利用可能なドライバの中から、検出されたデバイスクラスにサービスするのに適しているとされるドライバを探す。オペレーティングシステムは、そのようなデバイスが見つからなかった場合、ドライバをインスタンスすることができない。
【００３７】
５．オペレーティングシステムが、ステップ３又は４で見つかった適切なデバイスドライバをインスタンス化する。
【００３８】
６．ＵＳＢデバイスとホストデバイスとが、インスタンス化されたドライバにより互いに通信する。
【００３９】
以下、周辺デバイス１とコンピュータ２とが動作するよう構成されている方法について説明する。この構成は、メモリ１１及び２１に記憶されており、プロセッサ１０及び２０により実行されるソフトウェア、の設計によるものである。当該動作における諸ステップが、図２に示されている。
【００４０】
１．周辺デバイスがコンピュータに最初に接続されるとき、周辺デバイスは、自己を、ＵＳＢ大容量記憶デバイスとして提示する。周辺デバイスは、周辺デバイスとコンピュータとの間のＵＳＢデータ接続が初期化されるときに、大容量記憶デバイスのデバイスクラスに対応するデバイスクラスを有すると自己を提示することにより、これを行う。
【００４１】
２．コンピュータのオペレーティングシステムが、ＵＳＢ大容量記憶デバイスの接続を検出する。これにより、オペレーティングシステムは、当該デバイスと通信するために、ＵＳＢ大容量記憶デバイスの汎用デバイスドライバをインスタンス化する。このようなドライバは一般に、オペレーティングシステムに組み込まれている。次に、コンピュータのオペレーティングシステムは、周辺デバイスにより提示されたドライブを、コンピュータのファイルシステムにマッピングする。オペレーティングシステムがドライブの自動マッピングをサポートしていない場合には、オペレーティングシステム上で走り、記憶ドライブとして働く新たに接続されたデバイスを監視するプログラム、により同等の機能が提供可能である。
【００４２】
３．ファイルシステムへのドライブのマッピングが、新たにマウントされたドライブに対してオペレーティングシステムにより通常行われる動作を、トリガする。オペレーティングシステムがそのように動作するよう構成されている場合において、これらの動作には、ドライブの新たなマウント時に実行される指定ファイルの存在を、当該ドライブについてチェックする段階が含まれる。Microsoft Windowsオペレーティングシステムの例では、これはautorun.infファイルである。オペレーティングシステムは、指定ファイルを自動的に実行するよう構成されている必要があるとしてもよい。セキュリティのためには、コンピュータがそのように動作することをユーザが承認している、ということをユーザがコンピュータに確認した後にだけ、当該ファイルが自動的に実行される事が望まれる。オペレーティングシステムが当該ファイルの自動実行をサポートしていない場合には、オペレーティングシステム上で走り、新たに接続されたドライバを監視するプログラム、により同等の機能が提供可能である。
【００４３】
４．周辺デバイスにより提示されるファイル構造は、メモリ１１に記憶されている情報の制御下にあり、上記のような指定ファイル（例えばautrun.inf）に加え、実行ファイルを含んでいる。当該実行ファイルは、プロセッサ２０による実行に適したプログラムを構成しており、周辺デバイスの特定の機能のためのドライバをインストールする。Windowsオペレーティングシステムの場合、その実行ファイルはsetup.exeと呼ばれ得る。指定ファイル（例えばautorun.inf）は、オペレーティングシステムにその実行ファイルをロードさせて実行させるよう構成されている。従って、コンピュータ２のオペレーティングシステムが指定ファイルを読み込んで実行するとき、オペレーティングシステムは、実行ファイルをロードして（例えば、実行ファイルを周辺デバイスからコンピュータ２のローカルメモリにコピーすることによりロードする）、それを実行する。そして、実行ファイルが実行され、実行ファイルは、周辺デバイスの特定の機能をサポートするドライバを、コンピュータにインストールする。Windowsオペレーティングシステムの場合、これは、コンピュータのハードディスク上に、デバイスドライバの.sysファイル及び種々様々なファイルをコピー又は作成することにより行ってもよい。
【００４４】
５．実行ファイルは、ドライバがインストールされた後に、周辺デバイスにコマンドを送信してドライバがインストールされたことを周辺デバイスに知らせるようなコードを含んでいる。これは、一般的な「detach」コマンドでもよい。その後、実行ファイルは、終了してもよいし、実行を続けて後述のステップ７をサポートしてもよい。
【００４５】
６．上記コマンドに応じて、周辺デバイスは、コンピュータとの接続を解除し、そして自動的に再接続するが、今度は自己を、もはや汎用ＵＳＢ大容量記憶デバイスではなく、その特定の機能を提供する本来のＵＳＢデバイスとして、コンピュータに提示する。周辺デバイスは、上記コマンドに応じてそう動作するよう、そのメモリ１１に記憶されているコードにより予めプログラムされている。周辺デバイスが自己として提示する、本来のＵＳＢデバイスのデバイスクラス又は識別子は、新たにインストールされたドライバに対応するようなそれである。接続の解除をトリガするためにコンピュータからのコマンドの受信を要求する代わりに、周辺デバイスは、このステップを自動的に行うことができる。例えば、周辺デバイスは、ホストコンピュータに接続してから所定の時間が経過した時点で当該ステップを実施することもできるし、実行ファイル（又はインストールに関与する別のファイル）がコンピュータにより要求されてコンピュータに提供されてから所定の時間が経過した時点で当該ステップを実施することもできる。これらの場合、上記ステップ５は省略されてよい。上記所定の時間は、必要であれば、実行ファイルが実行を完了していることを確認するのに十分なように選択されるべきである。
【００４６】
７．コンピュータのオペレーティングシステムが、新たなＵＳＢデバイスの接続を検出し、当該デバイスのクラスに基づいて、当該デバイスと共に使用されるドライバを選択する。そのドライバとは、新たにインストールされたドライバである。なぜならば、当該ドライバは、当該ドライバが当該クラスのデバイスを操作するのに適していることを識別させるようなデータを含んでいるからである。この選択はオペレーティングシステムにより実行可能である。実行ファイルが終了していない場合には、代わりに、実行ファイルが、ドライバを選択する及び／又はドライバの使用を開始する、ことが可能である。そして、デバイスの特定の機能を、コンピュータ２及びそのユーザが使用できるようになる。
【００４７】
デバイスがコンピュータから取り外されるとき、実行ファイルは、それがまだ実行中であっても、コンピュータの記憶装置から自己を削除することができる。デバイスは更にドライバをアンインストールすることもできるが、それは通常は望まれない。なぜならば、ドライバは通常、コンピュータの記憶領域の多くを占めてはいないからである。
【００４８】
通常、実行ファイルをロードするために、コンピュータは、当該ファイルを周辺デバイスからコンピュータ上の一時メモリにコピーする。実行ファイルが大きい場合、又は実行ファイルが、その動作をサポートするために、大量の他のデータを共にロードすることを必要とする場合、周辺デバイスからコンピュータへのデータの転送に時間がかかることがある。以下の技術を、この遅延を低減するのに利用してもよい。実行ファイルは、カスタム大容量記憶デバイスドライバをインストールするようにも構成可能である。このデバイスドライバは、デフォルトの大容量記憶デバイスドライバよりも優先的に、周辺デバイスにより提示される大容量記憶デバイスと通信するために、オペレーティングシステムにより使用されるよう構成される。このことは、デバイスが自己をコンピュータに提示するときにデバイスによりコンピュータに提供される、デバイスの識別情報により実現可能である。ＵＳＢデバイスの場合、この識別情報は、そのＶＩＤ及びＰＩＤとすることが可能である。カスタム大容量記憶ドライバは、デバイスとの初期通信において、所定のタイプのコマンド又はコマンド列を周辺デバイスに送信するよう構成される。周辺デバイスは、このような（１つまたは複数の）コマンドに応じて、自動的にコンピュータとの接続を解除し、その特定の機能を提供する本来のＵＳＢデバイスとして自己を再提示するよう構成される。こうして、望むならば、実行ファイルの２回目のロードを回避することができる。デバイスドライバを使う方が、多くの場合、実行ファイルを使うよりも迅速である。
【００４９】
他の技術では、周辺デバイスから２つの実行ファイルを提供する。第１のファイルは、autorun.ini又はその他のオートローダファイルから呼び出されるファイルであり、コンピュータにより実行されると、ＵＳＢデバイスの特定のマニフェステーションに適したドライバがインストールされているかどうかをチェックする、小さなファイルである。インストールされている場合、第１のファイルは、上述のステップ５の場合と同様にＵＳＢデバイスにコマンドを送信し、その後、終了する。インストールされていない場合、第１のファイルは、ドライバをインストールするために、コンピュータに第２のより大きな実行ファイルをＵＳＢデバイスからロードさせる。
【００５０】
実際には、不揮発性メモリは、複数セットのドライバソフトウェアを記憶することが可能であり、各セットは、オペレーティングシステム及び数多くのオートローダファイルの異なる動作システム又は異なる動作バージョンで使用される。コンピュータは、ドライバのインストールにおいて標準的な適切なバージョンを、コンパクトディスク（ＣＤ）のような一般的な共通のソースからインストールする。
【００５１】
実行ファイルは、接続されたデバイス用のドライバのインストールを単に監視する以外の機能も提供することが可能である。実行ファイルは、コンピュータによりデバイスから受信されたデータを処理及び／又は表示する機能を提供することが可能である。実行ファイルは、データを取得（capture）し、そのデータをデバイスに提示（direct）する機能を提供することが可能である。
【００５２】
上述のように動作可能なデバイスの一例は、ビデオをストリーミングする手段を提供するＵＳＢドングルである。このようなドングルは、表示画面か記憶されている又は到来したビデオストリームかのいずれかからストリーミングビデオのコンテンツをコピーするアプリケーションを含むことができる。当該アプリケーションは、上述のやり方でコンピュータにロードすることができ、その後、当該ドングルの特殊なビデオデバイス部分の特定の機能により提供されるトランスポートを介して、ビデオデータのストリームを送信するよう動作することができる。
【００５３】
上述のように動作可能なデバイスの別の例は、ＵＳＢ温度計である。当該温度計は、ＵＳＢデバイスでもよく、当該ＵＳＢ温度計から提供されるデータをグラフィック形式で表示するアプリケーションを記憶していてもよい。当該温度計がコンピュータに挿入されると、当該アプリケーションがロードされ（必要であれば）、上述の技術を利用して実行される。そして、当該アプリケーションは、ＵＳＢ端点ユニットの測定デバイスから気候データを受け取り、当該気象データをユーザにグラフィカルに示すことができる。
【００５４】
上述のように動作可能なデバイスの別の例は、標準ドライバでサポートされるジョイスティックの機能を上回る機能（例えば追加のスイッチコントロール）を有するＵＳＢジョイスティックである。ユーザが当該ジョイスティックをコンピュータに繋ぐと、当該ジョイスティックにより記憶されており特殊な機能に対応するドライバが、当該ジョイスティック上の記憶装置からインストールされる。
【００５５】
上述のように動作可能なデバイスの別の例は、ＵＳＢマウスである。ユーザが当該マウスをコンピュータに繋ぐと、当該マウスがＵＳＢバス上で発現（manifest）する前に当該マウス用のデバイスドライバがロードされる。当該マウスは、好ましくは、当該マウスが初期化された後に当該マウスが大容量記憶デバイスなしで発現し、コンピュータのＢＩＯＳだけが動作しているときでも当該マウスがコンピュータにより使用可能となるよう構成されるべきである。
【００５６】
本発明は、ＵＳＢインタフェースと共に使用することに限定されない。本発明は、必要な機能をサポートするその他のインタフェースと共に使用してもよい。当該機能としては例えば、様々なタイプの複数のデバイスを提示することや、実行ファイルをデバイスから直接実行するのを可能にするような方法でデバイスを提示することが挙げられる。このようなインタフェースには、ＳＤＩＯや、ＩＥＥＥ１３９４（別名ファイアワイア、ｉリンク）や、カードバスが含まれる。
【００５７】
本出願人は、本明細書において、本明細書に記載の個々の個別の特徴及び２つ以上のこうした特徴の任意の組合せを、こうした特徴又は特徴の組合せが本明細書に開示されたいかなる問題を解決するかを問わず、且つ特許請求の範囲に限定されることなく、こうした特徴又は組合せを当業者に共通の一般知識に照らして概ね本明細書に基づいて実施できる程度に、それぞれ切り離して開示している。本出願人は、本発明の諸側面が、こうした個別の特徴又は特徴の組合せで構成し得ることを示している。上述の説明を鑑みれば、様々な変形例を本発明の範囲内で想到し得ることが当業者には明白であろう。
【図面の簡単な説明】
【００５８】
【図１】コンピュータ及び周辺デバイスを概略的に示す。
【図２】ドライバのインストールのための通信を示す。
【図１】
2008532161.tif 000003
【図２】
2008532161.tif 000004
【手続補正書】
【提出日】平成19年11月6日(2007.11.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
周辺デバイスであって、
ホストデバイスとの接続のためのインタフェースと、
前記周辺デバイスを操作するために前記ホストデバイスにより使用されるソフトウェア、を記憶するメモリであって、前記ソフトウェアには、前記周辺デバイスが第２のモードで動作しているときに、ホストデバイスが前記周辺デバイスと通信するのを可能にするようなドライバと、ホストデバイスに前記ドライバをインストールさせるような実行プログラムと、が含まれているようなメモリと、
前記デバイスが前記インタフェースを介して２つの動作モードの内のいずれかで動作することができるよう前記デバイスの動作を制御するプロセッサであって、前記２つの動作モードには、前記デバイスが、前記ソフトウェアを記憶する記憶デバイスとして動作する第１のモードと、前記デバイスが、前記インタフェースを介して前記デバイスに接続されているデバイスに、前記ソフトウェアにより他の機能を提供するデバイスとして動作する前記第２のモードと、があるようなプロセッサとを有し、
前記周辺デバイスは、前記インタフェースがホストデバイスに接続されると前記第１のモードで動作し、その後前記第２のモードで動作するよう構成されている周辺デバイス。
【請求項２】
前記実行プログラムは、前記ドライバのインストール後に、ホストデバイスに所定のタイプのメッセージを前記周辺デバイスへと送信させるよう構成されており、前記周辺デバイスは、当該メッセージに応じて前記第１のモードの動作から前記第２のモードの動作に切り替わる、請求項１に記載の周辺デバイス。
【請求項３】
前記ソフトウェアは、前記周辺デバイスが前記第２のモードで動作しているときに、前記周辺デバイスにより受信されたデータを処理するようなアプリケーションを含んでいる、請求項１又は２に記載の周辺デバイス。
【請求項４】
前記ソフトウェアは、前記周辺デバイスが前記第２のモードで動作しているときに、前記周辺デバイスにデータを転送するようなアプリケーションを含んでいる、請求項１乃至３のいずれか１項に記載の周辺デバイス。
【請求項５】
前記ソフトウェアは、前記周辺デバイスを記憶デバイスとして検出すると、ホストデバイスに、前記ソフトウェアに含まれるコードを自動的に実行させるようなデータを含んでいる、請求項１乃至４のいずれか１項に記載の周辺デバイス。
【請求項６】
前記コードは、前記周辺デバイスが前記第２のモードで動作しているときに、前記ホストドライバが前記周辺デバイスと通信するのを可能にするようなドライバを、前記ホストデバイスが前記ホストデバイスにインストールしたかどうか、を検出することができ、
前記コードは、
当該ドライバが検出されなかった場合には、前記周辺デバイスにより記憶されている前記ドライバを前記ホストデバイスにインストールさせ、
当該ドライバが検出された場合には、前記周辺デバイスが前記第２のモードで動作するのをトリガする、
よう構成されている、
請求項１に直接又は間接に従属する請求項５に記載の周辺デバイス。
【請求項７】
前記周辺デバイスは、前記第１のモードにおいて、ホストデバイスが標準ドライバを用いて通信可能な標準記憶デバイスとして動作するよう構成されている、請求項６に記載の周辺デバイス。
【請求項８】
前記周辺デバイスは、前記第１のモードにおいて、ホストデバイスが標準ドライバを用いて通信可能なカスタム記憶デバイスとして動作するよう構成されている、請求項６に記載の周辺デバイス。
【請求項９】
前記ソフトウェアは、ホストデバイスが前記第１のモードの前記周辺デバイスと通信するのを可能にするようなドライバを含んでおり、前記ドライバは、前記ホストデバイスを前記第１のモードの動作から前記第２のモードの動作に切り替えさせるよう構成されている、請求項８に記載の周辺デバイス。
【請求項１０】
前記デバイスは、前記インタフェースがホストに接続されると、前記デバイスが動作する方式を示す識別情報を送信し、これにより前記ホストデバイスが、前記デバイスと通信するのにどのドライバを用いるべきかを判断できる、よう構成されている、請求項１乃至９のいずれか１項に記載の周辺デバイス。
【請求項１１】
前記インタフェースは、ユニバーサル・シリアル・バス（ＵＳＢ）インタフェースである、請求項１乃至１０のいずれか１項に記載の周辺デバイス。
【請求項１２】
前記インタフェースは、セキュア・デジタル・インプット・アウトプット（ＳＤＩＯ）インタフェースである、請求項１乃至１１のいずれか１項に記載の周辺デバイス。
【請求項１３】
前記インタフェースは、カードバスインタフェースである、請求項１乃至１２のいずれか１項に記載の周辺デバイス。
【請求項１４】
前記インタフェースは、１３９４インタフェースである、請求項１乃至１３のいずれか１項に記載の周辺デバイス。
【請求項１５】
請求項１乃至１４のいずれか１項に記載の周辺デバイスと、前記ホストデバイス。
【請求項１６】
ホストデバイスが、インタフェースを介して前記ホストデバイスに接続されている周辺デバイスと通信するのを可能にする、ようなドライバをインストールする方法であって、前記デバイスは、前記インタフェースを介して２つの動作モードの内のいずれかで動作することができ、前記２つの動作モードには、前記デバイスが、前記ソフトウェアを記憶する記憶デバイスとして動作する第１のモードと、前記デバイスが、前記インタフェースを介して前記デバイスに接続されているデバイスに、前記ソフトウェアにより他の機能を提供するデバイスとして動作する第２のモードと、があるような方法において、
前記周辺デバイスを前記第１の動作モードで動作させる段階と、
前記ホストデバイスにおいて、前記周辺デバイスが記憶デバイスであると判定し、その判定に応じて、標準ドライバを用いて前記周辺デバイスと通信する段階と、
前記ホストデバイスにおいて、前記周辺デバイスに記憶されているソフトウェアを読み出す段階であって、前記ソフトウェアには、前記周辺デバイスが前記第２のモードで動作しているときに、前記ホストデバイスが前記周辺デバイスと通信するのを可能にするようなドライバと、前記ホストデバイスに前記ドライバをインストールさせるような実行プログラムと、が含まれているような段階と、
前記ホストデバイスにおいて、前記ドライバをインストールし、前記ホストデバイスから前記周辺デバイスに所定のタイプのメッセージを送信する段階と、
前記所定のタイプのメッセージに応じて、前記周辺デバイスを前記第１のモードの動作から前記第２のモードの動作に切り替える段階とを備える方法。
【請求項１７】
実質的に、添付の図面の図１及び図２を参照しつつ本明細書で説明されているような周辺デバイス。
【請求項１８】
実質的に、添付の図面の図１及び図２を参照しつつ本明細書で説明されているような方法。
【国際調査報告】
2008532161.tif 000005
2008532161.tif 000006