(57)【要約】  本発明によれば、ユニバーサルシリアルバス（ＵＳＢ）との最初の接続時のＵＳＢ互換周辺装置に対応する構成としてデフォルトのＵＳＢ構成を露出し、かつ、ＵＳＢ互換周辺装置において変更コマンドを受信することによって、ＵＳＢ互換周辺装置の構成を自動的に修正する方法を提供することが可能となる。その場合、上記変更コマンドには、ＵＳＢ互換周辺装置に対する構成をＵＳＢベンダ固有コマンドに対応する代替ＵＳＢ構成へ変更することをＵＳＢ互換周辺装置に示すように構成されたＵＳＢベンダ固有コマンドが含まれる。次いで、ＵＳＢ互換周辺装置におけるＵＳＢベンダ固有コマンドの受信に応じて、代替ＵＳＢ構成をＵＳＢ互換周辺装置用の構成として露出することができる。関連する装置及び記憶媒体も開示される。
2010526388.tif 000002
【特許請求の範囲】
【請求項１】
ユニバーサルシリアルバス（ＵＳＢ）互換周辺装置の構成を自動的に修正する方法であって、
ＵＳＢとの最初の接続時にＵＳＢ互換周辺装置用の構成としてデフォルトのＵＳＢ構成を露出するステップと、
外部から前記ＵＳＢ互換周辺装置への変更コマンドであって、前記ＵＳＢ互換周辺装置用の前記デフォルトのＵＳＢ構成がＵＳＢベンダ固有コマンドに対応する代替ＵＳＢ構成へ変更されるべきことを前記ＵＳＢ互換周辺装置に対して示すように構成された前記ＵＳＢベンダ固有コマンドを含む前記変更コマンドを前記ＵＳＢ互換周辺装置において受信するステップと、
前記ＵＳＢ互換周辺装置における前記ＵＳＢベンダ固有コマンドの受信に応じて、前記ＵＳＢ互換周辺装置用の構成として前記代替ＵＳＢ構成を露出するステップと、を含むことを特徴とする方法。
【請求項２】
前記変更コマンドを受信する前記ステップに応じて、前記ＵＳＢ互換周辺装置は前記ＵＳＢとの接続を切断し、それによってホストコンピュータ上にロードされている関連付けられたデフォルトドライバがアンロードされることを特徴とする請求項１に記載の方法。
【請求項３】
前記変更コマンドを受信する前記ステップにさらに応じて、前記ＵＳＢ互換周辺装置は、前記ＵＳＢ互換周辺装置用の前記デフォルトのＵＳＢ構成を前記代替ＵＳＢ構成に変更した後に前記ＵＳＢと再接続し、それによって前記ホストコンピュータ上の関連付けられた代替ドライバがロードされることを特徴とする請求項２に記載の方法。
【請求項４】
前記ＵＳＢベンダ固有コマンドは、関連付けられた後続するデータ段が前記ＵＳＢベンダ固有コマンドを前記ＵＳＢ互換周辺装置に特定するベンダ定義情報を含むことを示す、ＵＳＢ互換設定段パケットのヘッダの中に含まれている情報を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記代替ＵＳＢ構成は、ホストコンピュータ上にプレインストールされた装置クラスのインタフェースが含まれていない装置に関連付けられることを特徴とする請求項１に記載の方法。
【請求項６】
前記ホストコンピュータ上のオペレーティングシステムに含まれているプレインストール済みの複数のクラスレベルのデバイスドライバであって、該デバイスドライバのうちの少なくとも１つのデバイスドライバには自動実行ルーチンが含まれているが、前記オペレーティングシステムに含まれていないプレインストール済みのクラスレベルのデバイスドライバにおけるデバイスドライバクラスのインタフェースが含まれていない前記複数のクラスレベルのデバイスドライバを用いるドライバクラスの単複のインタフェースを備える前記ＵＳＢ互換周辺装置のデフォルトのＵＳＢ構成に対して前記ホストコンピュータを露出又は再露出するステップに応じて、前記ホストコンピュータは、
前記ＵＳＢ互換周辺装置用の製品識別子に一致するカスタムデバイスドライバが前記オペレーティングシステムにインストールされていれば、前記カスタムデバイスドライバをロードし、前記変更コマンドを前記ＵＳＢ互換周辺装置へ送信して、前記デフォルトのＵＳＢ構成から前記代替ＵＳＢ構成へ前記ＵＳＢ構成を変更するステップと、
前記ＵＳＢ互換周辺装置用の製品識別子に一致するカスタムデバイスドライバが前記オペレーティングシステムにインストールされていなければ、前記オペレーティングシステムに含まれているプレインストール済みの複数のクラスレベルのデバイスドライバであって、該デバイスドライバのうちの少なくとも１つが自動実行ルーチンを含む該デバイスドライバ用の前記ドライバクラスの単複のインタフェースのうちの少なくとも１つのインタフェースをロードし、前記自動実行ルーチンを実行して、前記自動実行ルーチンからと、前記自動実行ルーチンによって指示される実行可能なルーチンからとの少なくともいずれかのルーチンからインストールコマンドを前記ＵＳＢ互換周辺装置へ発行し、前記ＵＳＢ互換周辺装置から受信した前記１以上のカスタムデバイスドライバに応じて、前記ホストコンピュータ上に前記１以上のカスタムデバイスドライバをインストールするステップと、を実行することを特徴とする請求項１に記載の方法。
【請求項７】
前記オペレーティングシステムはウィンドウズ（登録商標）オペレーティングシステムを備えることを特徴とする請求項６に記載の方法。
【請求項８】
前記デフォルトのＵＳＢ構成はデフォルトの大容量記憶装置構成を備え、前記代替ＵＳＢ構成はモデム構成を備えることを特徴とする請求項１に記載の方法。
【請求項９】
請求項１に記載の方法を実行するように構成されることを特徴とするＵＳＢ互換周辺装置。
【請求項１０】
ＵＳＢ互換周辺装置用の記憶媒体であって、前記記憶媒体の中に組み込まれたコンピュータ可読プログラムコードであって、請求項１に記載の方法を実行するように構成されたコンピュータ可読プログラムコードを含む、コンピュータで使用可能な記憶媒体。
【請求項１１】
ホストコンピュータと接続するように構成されたＵＳＢ互換周辺装置であって、
自動実行ルーチンを含むが、デバイスドライバクラスのインタフェースを備えていないオペレーティングシステムに含まれているプレインストール済みの複数のクラスレベルのデバイスドライバを用いる単複のデバイスドライバクラスのインタフェースを備えているが、前記デバイスドライバクラスのインタフェース用としてプレインストール済みのクラスレベルのデバイスドライバを前記オペレーティングシステムが備えていないデフォルト構成と、
カスタムのデバイスドライバインタフェースを備えた代替ＵＳＢ構成と、
前記ＵＳＢ互換周辺装置がホストコンピュータと接続する際に、前記ホストコンピュータのオペレーティングシステムに対して前記デフォルトのＵＳＢ構成を露出し、かつ、前記デフォルトのＵＳＢ構成から前記代替ＵＳＢ構成へ前記ＵＳＢ互換周辺装置用のＵＳＢ構成を変更し、それによって、前記ＵＳＢ互換周辺装置用の前記デフォルトのＵＳＢ構成は、前記ＵＳＢベンダ固有コマンドに対応する代替ＵＳＢ構成に変更されることをＵＳＢ互換周辺装置に対して示すように構成されたＵＳＢベンダ固有コマンドを含む前記ホストコンピュータからの変更コマンドに応じて、前記ホストコンピュータがＵＳＢ構成に対して露出されるように構成されたコントローラと
を備えることを特徴とするＵＳＢ互換周辺装置。
【請求項１２】
前記コントローラは、前記ＵＳＢ互換周辺装置を前記ホストコンピュータから切断するようにさらに構成され、それによって、前記ホストコンピュータ上にロードされた関連付けられたデフォルトのドライバが、前記変更コマンドの受信に応じてアンロードされることを特徴とする請求項１１に記載のＵＳＢ互換周辺装置。
【請求項１３】
前記コントローラは、前記ＵＳＢ互換周辺装置用の前記ＵＳＢ構成を前記代替ＵＳＢ構成に変更した後、ＵＳＢ互換周辺装置をホストコンピュータと再接続するようにさらに構成され、それによって、前記ホストコンピュータ上にロードされた関連付けられた代替ドライバが、前記変更コマンドの受信に応じてロードされることを特徴とする請求項１２に記載のＵＳＢ互換周辺装置。
【請求項１４】
前記ＵＳＢベンダ固有コマンドは、関連付けられた後続するデータ段が前記ＵＳＢベンダ固有コマンドをＵＳＢ互換周辺装置に特定するベンダ定義情報を含むことを示す、ＵＳＢ互換設定段パケットのヘッダの中に含まれている情報を含むことを特徴とする請求項１１に記載のＵＳＢ互換周辺装置。
【請求項１５】
前記代替ＵＳＢ構成は、ホストコンピュータ上にプレインストールされた装置クラスのインタフェースが含まれていない装置に関連付けられることを特徴とする請求項１１に記載のＵＳＢ互換周辺装置。
【請求項１６】
ユニバーサルシリアルバス（ＵＳＢ）互換周辺装置の構成を自動的に修正するためのコンピュータ可読プログラムコードを実装したコンピュータで読み取り可能な記憶媒体であって、
ＵＳＢとの最初の接続時にＵＳＢ互換周辺装置用の構成としてデフォルトのＵＳＢ構成を露出するように構成されたコンピュータ可読プログラムコードと、
外部周辺装置から前記ＵＳＢ互換周辺装置への変更コマンドを前記ＵＳＢ互換周辺装置において受信するように構成されたコンピュータ可読プログラムコードであって、前記変更コマンドは、前記ＵＳＢ互換周辺装置用の前記ＵＳＢ構成がＵＳＢベンダ固有コマンドに対応する代替ＵＳＢ構成へ変更されるべき旨を前記ＵＳＢ互換周辺装置に対して示すように構成された前記ＵＳＢベンダ固有コマンドを含むコンピュータ可読プログラムコードと、
前記ＵＳＢ互換周辺装置における前記ＵＳＢベンダ固有コマンドの受信に応じた前記ＵＳＢ互換周辺装置用の前記ＵＳＢ構成として前記代替ＵＳＢ構成を露出するように構成されたコンピュータ可読プログラムコードと、を含むことを特徴とする記憶媒体。
【請求項１７】
前記変更コマンドを受信するステップに応じて、前記ＵＳＢ互換周辺装置は前記ＵＳＢとの接続を切断し、それによってホストコンピュータ上にロードされている関連付けられたデフォルトドライバがアンロードされることを特徴とする請求項１６に記載の記憶媒体。
【請求項１８】
前記変更コマンドを受信するステップにさらに応じて、前記ＵＳＢ互換周辺装置は、前記ＵＳＢ互換周辺装置用の前記ＵＳＢ構成を前記代替ＵＳＢ構成に変更した後ＵＳＢと再接続し、それによって前記ホストコンピュータ上の関連付けられた代替ドライバがロードされることを特徴とする請求項１７に記載の記憶媒体。
【請求項１９】
前記ＵＳＢベンダ固有コマンドは、関連付けられた後続するデータ段が前記ＵＳＢベンダ固有コマンドをＵＳＢ互換周辺装置に特定するベンダ定義情報を含む旨を示す、ＵＳＢ互換設定段パケットのヘッダの中に含まれている情報を有することを特徴とする請求項１６に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータと共に用いられる周辺装置に関するものであり、特に、周辺装置用のデバイスドライバに関するものである。
【背景技術】
【０００２】
ウィンドウズ（登録商標）ベースのパーソナルコンピュータのようなホストコンピュータ（「ホスト」）は、キーボード、マウス、モニタ、プリンタ、スキャナ、大容量記憶装置、その他の周辺装置のうちの少なくともいずれかのような多くの周辺装置と共に動作することができる。ユニバーサルシリアルバス（ＵＳＢ）は、これらの周辺装置とその他の周辺装置との少なくともいずれかをホストコンピュータと接続するために用いることができる。ＵＳＢは、ホストコンピュータのスイッチがオンにされている間、標準コネクタとフォームファクタとを用いて、ホストコンピュータのための周辺装置用として接続することができると共に、ＵＳＢ互換周辺装置の接続と切断とを許可するものである。
【０００３】
当該技術分野の当業者に広く知られているように、周辺装置の完全な操作性を達成するために、周辺装置用のドライバは、一般に、個々の周辺装置用として設けられたホストコンピュータ上に存在しているか、インストールされている必要がある。ウィンドウズ（登録商標）のようなホストコンピュータ上のオペレーティングシステム又はリナックスオペレーティングシステムには、典型的には、オーディオ装置、プリンタ、通信装置、大容量記憶装置、ヒューマンインタフェース装置のような種々のクラスのＵＳＢベースの周辺装置用ドライバが含まれている。周辺装置がＵＳＢに接続されているとき、接続されている周辺装置は、周辺装置が送信するハードウェア識別子を用いてホストコンピュータにより特定することが可能であり、次いで、装置クラスが確認される。ハードウェア識別子／装置クラスは、「構成」メッセージの一部として周辺装置によってホストコンピュータへ送信することができ、周辺装置はこのメッセージの形でホストコンピュータにその属性を通知する。上記確認された装置クラスを用いて、オペレーティングシステムは、適当なドライバをロードし、次いで、このドライバはレジストリの中へ入力され、将来再接続されたとき、この入力に基づいてドライバの割り当てが可能となる。
【０００４】
ホストコンピュータ用の周辺装置の数及び種類は拡大し続けるので、これら周辺装置の多くは、オペレーティングシステムにプレインストールされている定義済みの装置クラスのいずれにも属していない場合がある。これらの状況において、インストールディスク又はＣＤが一般に提供されており、これらのディスクやＣＤから（単複の）ドライバをホストコンピュータ上へロードすることができる。このインストールプロセスもユーザ入力を必要とする場合があり、その場合ユーザはホストコンピュータの周辺装置に関する詳細情報を必要とする場合がある。
【０００５】
ＵＳＢベースの周辺装置自体のメモリに格納されたドライバを提供することによって、個別のインストールディスク／ＣＤの必要性とドライバインストールプロセスの複雑さとの少なくともいずれかを低減したり、これらを不要にしたりするための様々な試みが行われてきた。例えば、Ｗｒｉｇｈｔ他に特許された米国特許出願第６，７５４，７２５号明細書には、「自身の装置ドライバを中に含むＵＳＢ周辺機器」という表題が与えられている。上記特許の要約に記載されているように、周辺装置の中にコンピュータ可読媒体及びインタフェース回路が含まれている。コンピュータ可読媒体は、周辺装置を動作させるための命令を格納するように構成することができる。インタフェース回路は、コンピュータと周辺装置との接続に応じて指示命令をコンピュータのオペレーティングシステムへ伝えるように構成することができる。さらに、「ＵＳＢベースの周辺装置及びＵＳＢベースの周辺装置を起動する方法」という表題のＧｏｔｚｅ他に特許された特許文献１は、ホストシステムとの操作用としてＵＳＢベースの周辺装置を提供するものであり、該周辺装置はホストシステムとの操作用ドライバを備えている。この場合、ドライバはＵＳＢベースの周辺装置内のメモリに格納され、さらに、上記米国特許出願の要約に記載のように、ホストシステム上での周辺装置の起動と共に、ホストシステム上でのドライバの自動インストールがプロンプトで指示されることになる。最後に、「バス接続装置用の埋め込みドライバ」という表題が与えられた、Ｍｉｈａｉに特許された特許文献２は、上記特許の要約に記載されているように、装置用のドライバが格納されている記憶コンポーネントを含む装置と、プロセッサベース・システムのバスと通信可能に結合されるステップに応じて該プロセッサベース・システムの記憶サブシステムに対する自動ドライバアップロードを可能にするデバイスプロトコルハンドラ（device protocol handler）とを提供する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願第２００５／００３８９３４号明細書
【特許文献２】米国特許出願第２００６／００３７０１５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、不都合なことに、周辺装置用の（単複の）デバイスドライバが周辺装置自身に格納されているときでさえ、デバイスドライバのインストール中にユーザ入力がさらに必要とされる場合がある。さらに、ＵＳＢベースの周辺装置のような多くの周辺装置がユーザによってホストコンピュータからホストコンピュータへ運ばれる場合がある。これらの状況において、デバイスドライバのインストール処理は、たとえデバイスドライバが周辺装置自身に記憶されている場合であってもユーザによるさらに多くの介在を必要とする場合がある。
【課題を解決するための手段】
【０００８】
本発明に係るいくつかの実施形態は、ホストコンピュータに対して露出するようにＵＳＢ互換周辺装置の代替ＵＳＢ構成を自動的に提供する方法、装置及び記憶媒体を提供することができる。これらの実施形態によれば、ＵＳＢとの最初の接続時にＵＳＢ互換周辺装置に対応する構成としてデフォルトのＵＳＢ構成を露出し、かつ、外部からＵＳＢ互換周辺装置への変更コマンドをＵＳＢ互換周辺装置において受信することによって、ユニバーサルシリアルバス（ＵＳＢ）互換周辺装置の構成を自動的に修正する方法を提供することが可能となる。その場合、上記変更コマンドには、ＵＳＢベンダ固有コマンドに対応する代替ＵＳＢ構成への、ＵＳＢ互換周辺装置に対する構成変更をＵＳＢ互換周辺装置に対して示すように構成されたＵＳＢベンダ固有コマンドが含まれる。次いで、ＵＳＢ互換周辺装置におけるＵＳＢベンダ固有コマンドの受信に応じて、ＵＳＢ互換周辺装置用の構成として代替ＵＳＢ構成を露出することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の各種の実施形態に係る周辺装置用のデバイスドライバを自動的にインストールすることができるホストコンピュータ及び周辺装置を示すブロック図である。
【図２】本発明の各種の実施形態に係るカスタムデバイスドライバを自動的にインストールために実行することができる処理を示すフローチャートである。
【図３】本発明の各種の実施形態に係るカスタムデバイスドライバを自動的にインストールするために実行することができる処理を示すフローチャートである。
【図４】本発明の各種の実施形態に係るカスタムデバイスドライバを自動的にインストールするために実行することができる処理を示すフローチャートである。
【図５】本発明の各種の実施形態に係るカスタムデバイスドライバを自動的にインストールするために実行することができる処理を示すフローチャートである。
【図６】本発明の各種の実施形態に係るカスタムデバイスドライバを自動的にインストールするために実行することができる処理を示すフローチャートである。
【図７】本発明の各種の実施形態に係るカスタムデバイスドライバを自動的にインストールするために実行することができる処理を示すフローチャートである。
【図８】本発明に係るいくつかの実施形態において、ＵＳＢ対応周辺装置によってサポートされた制御書き込みシーケンスと読み出しシーケンスとを表す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明の実施形態を示して本発明をさらに完全に説明する。しかしながら、本発明は、多くの別の形態で実施することも可能であり、本明細書で説明される実施形態に限定されるものとして解釈されるべきでない。
【００１１】
従って、本発明は、様々な変形及び別の形式を許容することができ、本発明の特定の実施形態が図面の例示によって示され、また、本書面において詳細に説明される。しかしながら、本発明は開示される特定の実施形態に制限することを意図するものではなく、それどころか、本発明は、請求項で定義される発明の精神及び範囲に含まれる、あらゆる変形、等価及び代替構成を含むものであることが理解されるべきである。同様の参照番号は、図の説明を通して同様の構成要素として参照される。
【００１２】
本明細書において使用される用語は、特定の実施形態を説明する目的でのみ用いられるものであって、本発明を限定する意図は存在しない。以下の説明において、「ａ」「ａｎ」「ｔｈｅ」により単数を表示したようになっているものでも、特に文脈上、別の記載がない限り、複数の内容を表示している場合もある。本明細書で使用している「備える（comprise）」、「備えている（comprising）」、「含む（include）」、「含んでいる（including）」という用語は、記載されている特徴、数字、ステップ、動作、要素、構成部品が存在するということを明記するが、これらの特徴、数字、ステップ、動作、要素、それらのグループ以外のものの存在、それらへの追加事項を排除するものではない。さらに、要素が他の要素に「応じる」と記載された場合、それは他の要素に対して直接応じてもよく、途中に他の要素が介在してもよい。反対に、要素が他の機構又は要素に対して「直接応じる」とされる時は、中間の要素は存在しない。「〜と〜とのうちの少なくともいずれか」（and／or）と表示されている場合には、列挙された関連する項目のいずれか、及び、その項目全ての組み合わせであることを示しており、このことが、略記号である「／」として示されている。
【００１３】
多様な要素を記述するために、各要素に第１、第２などの用語を付す場合があるが、要素がこれらの第１、第２などの用語に限定されるわけではない。これらの用語は、要素と要素を区別するためだけに使用したものである。
【００１４】
本発明の実施形態による方法、装置（システムと装置とのうちの少なくともいずれか）と、コンピュータプログラムのブロック図とフローチャートとのうちの少なくともいずれかと、のうちの少なくともいずれかを参照して、本発明が以下に記述される。ブロック図とフローチャートの説明のブロックとのうちの少なくともいずれか、及びブロック図とフローチャートの説明におけるブロックとのうちの少なくともいずれかの結合は、コンピュータプログラム命令により実装されることができることが理解される。これらのコンピュータプログラム命令は汎用コンピュータ、特定用途コンピュータと、機械を製造するプログラム可能な他のデータ処理装置のプロセッサとのうちの少なくともいずれかに供給されることができ、コンピュータと他のプログラム可能なデータ処理装置のプロセッサとのうちの少なくともいずれかにより実行する命令が、ブロック図とフローチャートのブロックあるいは複数のブロックとのうちの少なくともいずれかにおいて指定される機能／動作を実装する手段（機能）と構造とのうちの少なくともいずれかを創出する。
【００１５】
これらのコンピュータプログラム命令はまたコンピュータが読み取り可能なメモリに格納されることができ、これら命令はコンピュータあるいは他のプログラム可能なデータ処理装置に特定の方法で機能することを示し、コンピュータが読み取り可能なメモリに格納された命令がブロック図とフローチャートのブロックあるいは複数のブロックとのうちの少なくともいずれかにおいて指定される機能／動作を実装する命令を含む製造品目を生成する。
【００１６】
コンピュータプログラム命令はまた、コンピュータあるいは他のプログラム可能なデータ処理装置にロードされることができ、一連の処理ステップをコンピュータあるいは他のプログラム可能な装置上で実行されるようにし、コンピュータにより実装されるプロセスを生成し、コンピュータあるいは他のプログラム可能な装置上で実行する命令がブロック図とフローチャートのブロックあるいは複数のブロックとのうちの少なくともいずれかにおいて指定される機能／動作を実行するステップを提供する。
【００１７】
したがって、本発明は、ハードウェアと（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）ソフトウェアとのうちの少なくともいずれかにおいて実現され得る。さらに、本発明は、命令実行システムにより使用するために又は命令実行システムに関連して使用するために、コンピュータ使用可能プログラムコード又はコンピュータ可読プログラムコードを実装したコンピュータ使用可能記憶媒体又はコンピュータ可読記憶媒体上のコンピュータプログラムの形態をとってもよい。この文書の文脈では、コンピュータ使用可能な又はコンピュータ読取り可能な媒体は、命令実行システム、装置、又は機器により又はこれに関して用いるためのプログラムを、含み、記憶し、伝えることができる任意の媒体でよい。
【００１８】
コンピュータ使用可能媒体又はコンピュータ可読媒体は、例えば電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置、デバイス又は伝播媒体であってもよいが、それらに限定されない。コンピュータ可読媒体のより具体的な事例は（網羅的なリストではないが）以下のもの、すなわち、１以上の線（ワイヤ）を有する電気的接続、可搬型コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、及び、フラッシュディスク又はＣＤ−ＲＯＭのような携帯用光学媒体と磁気媒体とのうちの少なくともいずれかの媒体を含む。
【００１９】
また、いくつかの別の実施形態では、ブロックで示される機能／動作は、フローチャートで示される順序とは異なる順序で実行してもよいことを付記しておく。例えば、連続して示される２つのブロックを実際にはほぼ同時に実行してもよいし、あるいは、関係する機能／動作に応じて逆の順序でこれらのブロックを実行することも時としてある。さらに、フローチャートとブロック図との少なくともいずれかの所定のブロックの機能を切り離してマルチブロックに変えるか、フローチャートの少なくとも２以上のブロックとブロック図との少なくともいずれかの機能を少なくとも部分的に一体化するかのいずれかを行うことが可能である。
【００２０】
図１は本発明の各種の実施形態に係るホストコンピュータ及び周辺装置のブロック図である。図１を参照すると、ホストコンピュータ１１０はプロセッサ１１４及びオペレーティングシステム１１２を含む。いくつかの実施形態では、ホストコンピュータはパーソナルコンピュータ（ＰＣ）又はマッキントッシュであり、プロセッサ１１４はインテル又は互換機プロセッサであり、さらに、オペレーティングシステムは、ウィンドウズ（登録商標）、リナックス、マッキントッシュとその他の従来型のホストコンピュータ・オペレーティングシステムのうちの少なくともいずれかである。ＵＳＢインタフェース１１６のような１以上の周辺機器インタフェースも提供される。図１がホストコンピュータ１１０の簡略ブロック図を示すものであること、及び、他の多くのソフトウェア及びハードウェア構成要素が一般に提供されてもよいことは当業者には理解されるであろう。ホストコンピュータ１１０の設計及び動作の全体は当業者には周知のものであって、ここで当業者に詳しく説明する必要はない。
【００２１】
さらに、図１を参照すると、周辺装置１２０は、ＵＳＢインタフェース１９０及びＵＳＢ１９２のような周辺装置インタフェースを用いてホストコンピュータ１１０と接続するように構成される。しかし、他の多くの周辺機器インタフェースが使用されてもよい。ＵＳＢの設計及び動作の全体は当業者には周知のものであって、ここで当業者に詳しく説明する必要はない。
【００２２】
周辺装置１２０は、汎用プロセッサとカスタムプロセッサとの少なくともいずれかのプロセッサと、カスタマイズされたハードウェアとソフトウェアとのうちの少なくともいずれかを含んでもよいコントローラ１４０を含む。１以上のカスタムデバイス１３０が周辺装置の中に含まれる。例えば、周辺装置は、ホストコンピュータ１１０を無線でインターネットに接続するためのＧＳＭモデムを実装することができる。このような周辺装置の中に、カスタムデバイス１３０は、無線モデム、イーサネット（登録商標）、他のネットワーク装置、他のカスタムデバイス１３０のうちの少なくともいずれかを含んでもよい。カスタムデバイスドライバ１６０がカスタムデバイス１３０のそれぞれに対して提供される。例えば、カスタムデバイスドライバ１６０は、無線モデム用として、及び、ネットワーク装置用として提供されてもよい。カスタムデバイスドライバ１６０は、一般に、ホストコンピュータ１１０のオペレーティングシステム１１２の中にプレインストールされていない。周辺装置１２０はまた、大容量記憶装置とも呼ばれる不揮発性メモリ１５０のような標準的装置を含むこともできる。この記憶装置には他の命令とデータとのうちの少なくともいずれかと共にカスタムデバイスドライバ１６０が格納されている。大容量記憶装置１５０用の標準的デバイスドライバが周辺装置１２０の中に含まれる必要はない。なぜなら、ホストコンピュータ１１０上のオペレーティングシステム１１２には、通常、このようなプレインストール済みのドライバが含まれているからである。
【００２３】
最後に、さらに図１を参照すると、デフォルト構成１７０と代替構成１８０とが提示されている。当業者にはよく知られているように、これらの構成は、単複の所定の装置用のハードウェア識別子とパラメータ定義とを含む記述子である。デフォルト構成１７０には単複のデバイスドライバクラスのインタフェースのみが含まれていて、オペレーティングシステム１１２には上記インタフェース用のプレインストール済みのクラスレベルのデバイスドライバが含まれている。換言すれば、このデフォルト構成は単複のデバイスドライバクラスのインタフェースを備え、オペレーティングシステムには、上記インタフェース用としてプレインストール済みのクラスレベルのデバイスドライバが含まれている。これらのデバイスドライバのうちの少なくとも１つには自動実行ルーチンが含まれているが、デバイスドライバクラスのインタフェースは含まれていない。それはこのオペレーティングシステムには、上記デバイスドライバクラスのインタフェース用のプレインストール済みの複数のクラスレベルのデバイスドライバが含まれていないからである。例えば、上記デフォルト構成は大容量記憶装置クラスのインタフェースのみを含むことができる。単複のデバイスドライバクラスのインタフェースであって、オペレーティングシステムの中に上記インタフェース用として通常含まれているプレインストール済みのクラスレベルのデバイスドライバのインタフェースを示す別例として、ハブ（ネットワーク）装置、オーディオ（スピーカ、マイク）装置、プリンタ及びヒューマンインタフェース装置（キーボード、マウス、ジョイスティック）がある。代替構成１８０は複数のカスタムデバイスドライバ１６０用のカスタムデバイスドライバインタフェースを中に含む。
【００２４】
以下さらに詳細に説明するように、コントローラ１４０は、ホストコンピュータ１１０との（最初とそれ以降との少なくともいずれかの）周辺装置１２０の接続時に、ホストコンピュータ１１０のオペレーティングシステム１１２に対してデフォルト構成１７０を露出するように構成される。コントローラ１４０はまた、ホストコンピュータ１１０からの「インストール済みの」コマンドに応じて複数のカスタムデバイスドライバ１６０をホストコンピュータ１１０へ送信し、かつ、ホストコンピュータ１１０からの「変更済み」コマンドに応じてデフォルト構成１７０から代替構成１８０への切り替えを行うように構成される。
【００２５】
本発明のいくつかの実施形態は、オペレーティングシステムの中に組み込まれたドライバを用いて周辺装置を使用可能にすることができる場合、１以上のカスタムデバイスドライバを周辺装置からホストコンピュータ上へ自動的にインストールすることができるという認識から生じ得るものである。さらに、周辺装置は自身の（単複の）ドライバを「運ぶ」ことができるべきであり、オペレーティングシステムに対して当該（単複の）ドライバを露出し、かつ、オペレーティングシステムにおいて（「自動実行ルーチン」）オプションと本明細書で呼ぶ）「自動再生（auto-play）」又は「自動実行（auto-run）」ルーチンを有することができるべきである。当業者にはよく知られているように、自動再生又は自動実行とは、装置の挿入時にプログラムを自動的に起動するメカニズムである。例えば、適切に構成されたＣＤがＰＣの中へ挿入されると、ユーザによるインタラクションなしでインストールプログラムがＣＤを自動的に起動する。最後に、周辺装置１２０は、新たなカスタムドライバをロードすると、その構成を動的に変更する機能を有していることが望ましい。
【００２６】
したがって、本発明のいくつかの実施形態はデフォルト構成１７０と代替構成１８０とを含む周辺装置１２０を提供するものとなる。ＵＳＢインタフェース１９０と従来型のホストインタフェースとの少なくともいずれかが提供されてもよい。最初、デフォルト構成１７０において、周辺装置１２０は単複のデバイスドライバクラスのインタフェースのみを露出し、オペレーティングシステム１１０には、上記インタフェース用としてプレインストール済みの複数のクラスレベルのデバイスドライバが含まれ、これらのデバイスドライバのうちの少なくとも１つには自動実行ルーチンが含まれている。例えば、大容量記憶装置クラスのインタフェースは露出されてもよい。ウィンドウズ（登録商標）のようなオペレーティングシステム１１０には一般に、このクラスの装置用として内蔵型ドライバが含まれている。さらに、このクラスの装置は自動再生機能をサポートする。オペレーティングシステムには、デバイスドライバクラスのインタフェース用としてプレインストール済みのクラスレベルのデバイスドライバが含まれているが、上記インタフェースには、適当に構成された（ウィンドウズ（登録商標）デバイス用の）autorun.infファイルと共に、デバイスインストールプログラムを自動的に起動するためのデバイスインストールプログラムが含まれている。さらに、インストールされたカスタムデバイスドライバが署名されていれば、カスタムドライバをインストールするためのユーザ入力は不要となる 。当業者によく知られているように、カスタムデバイスドライバがオペレーティングシステムプロバイダによって事前にテストされ、事前の許可が与えられているとき、このカスタムデバイスドライバに「署名」が行われ、次いで、プロバイダのデジタル署名がカスタムデバイスドライバの中に埋め込まれる。
【００２７】
ひとたびインストールされると、カスタムデバイスドライバ１６０は装置１２０用のより良好な一致ドライバとなる。ウィンドウズ（登録商標）の用語では、これは、新しい装置１２０の方が、大容量記憶装置クラスのドライバのようなデフォルトの構成クラスドライバ１７０に一致したクラス一致よりもさらに正確な識別子一致になり、それによって、カスタムデバイスドライバ１６０は以降のこの装置の挿入時にロードを行うようにすることを意味する。ロード時に、新たなカスタムデバイスドライバ１６０は、構成１７０から、実際の周辺装置の機能を含むデフォルトの代替構成１８０へ構成を変更するために、構成変更を要求する。モデム及びネットワーク装置のような代替構成への変更を行うために、ＵＳＢコマンドを通じて上記構成変更を実行することができる。これに後続して、必要に応じて新しい装置タイプの実際の装置のための機能用ドライバがロードされる。
【００２８】
したがって、いくつかの実施形態では、ユーザによるインストールプロセスとのインタラクションの簡略化又は最小化が可能となり、ドライバが署名されていると、ユーザによるインタラクションを実際に不要とすることができる。上述したように、署名済みのドライバは、ドライバのインストールがすでに許可されていることを示すために、オペレーティングシステムのプロバイダがデジタル署名ドライバに対してドライバのインストールを事前に許可したことを示す。ドライバが署名されていれば、ユーザは、ユーザがインストールを承認するかどうかに関してプロンプトで指示を促される必要はない。したがって、これらの実施形態では、ユーザによるインタラクションを不要とすることができる。
【００２９】
図２は、周辺装置から図１のホストコンピュータ１１０のようなホストコンピュータ上へカスタムデバイスドライバ１６０のような１以上のカスタムデバイスドライバを周辺装置用として自動的にインストールするために、図１の周辺装置１２０のような周辺装置によって実行され得る処理を示すフローチャートである。これらの処理は図１のコントローラ１４０によって実行することができる。
【００３０】
図２を参照すると、ブロック２１０において、周辺装置１２０がホストコンピュータ１１０に最初に（第１に）接続されるか、第２の又は後続する接続が実行されるかにかかわらず、オペレーティングシステム１１０はブロック２２０においてデフォルト構成１７０に対して露出される。すでに説明したように、デフォルト構成１７０は単複のデバイスドライバクラスのインタフェースのみを中に含み、オペレーティングシステムは、上記インタフェース用としてプレインストール済みのクラスレベルのデバイスドライバが含まれ、これらのデバイスドライバのうちの少なくとも１つは自動実行ルーチンを含む。換言すれば、このデフォルト構成は単複のデバイスドライバクラスのインタフェースを備え、オペレーティングシステムは上記インタフェース用のプレインストール済みのクラスレベルのデバイスドライバが含む。これらのデバイスドライバのうちの少なくとも１つは、自動実行ルーチンを含んでいるが、デバイスドライバクラスのインタフェースは含んでいない。それはこのオペレーティングシステムには、上記デバイスドライバクラスのインタフェース用としてプレインストール済みのクラスレベルのデバイスドライバが含まれていないからである。このようなインタフェースの例の中には大容量記憶装置（ＭＳＤ）のインタフェースとヒューマンインタフェース装置（ＨＩＤ）のインタフェースとが含まれる。したがって、本発明のいくつかの実施形態では、オペレーティングシステム１１２は、ホストコンピュータ１１０に接続される度に、カスタムデバイスドライバ１６０がホストコンピュータ１１０の中にすでにインストールされているかどうかに関りなくデフォルト構成１７０に対して露出されることになる。デフォルト構成１７０に対してオペレーティングシステムを最初に露出することによって、これがホストコンピュータ１１０との、周辺装置１２０の最初の又は後続する接続であるか否かにかかわらず、周辺装置１２０は１つのホストコンピュータ１１０から別のホストコンピュータへ移された場合でさえ、カスタムデバイスドライバ１６０のインストールが実行される保証を得ることが可能である。
【００３１】
上述したように、デフォルトのデバイスドライバクラスのインタフェースのうちの少なくとも１つには自動実行ルーチンが含まれ、オペレーティングシステムには、上記インタフェース用としてプレインストール済みのクラスレベルのデバイスドライバが含まれている。この自動実行ルーチンは、自動実行ルーチンからか、自動実行ルーチンによって指示されたホストコンピュータにおいて実行可能なルーチンからの少なくともいずれかのルーチンから直接「インストール」コマンドを発行するように構成することができる。インストールコマンドは周辺装置１２０によって認識される任意の所望のフォーマットのいずれのフォーマットを有してもよい。いずれにしても、これが周辺装置１２０をホストコンピュータ１１０に接続した第１の時点であった場合、ブロック２３０においてインストールコマンドが受信される。このインストールコマンドに応じて、ブロック２４０において、周辺装置１２０は周辺装置１２０からホストコンピュータ１１０へ１以上のカスタムデバイスドライバ１６０を自動的に送信する。次いで、ホストコンピュータ１１０は（単複の）カスタムデバイスドライバ１６０をインストールする。
【００３２】
ひとたびインストールされると、（単複の）カスタムデバイスドライバ１６０は「変更」コマンドを送信する。この変更コマンドは周辺装置１２０によって認識される任意の所望のフォーマットを有するものであってもよい。
【００３３】
ブロック２５０での変更コマンドの受信に応じて、周辺装置１２０は、ブロック２６０においてデフォルト構成１７０から代替構成１８０へその構成を変更するが、この代替構成１８０にはホストへ送信された１以上のカスタムデバイスドライバ１６０用のインタフェースが含まれている。次いで、周辺装置１２０はブロック２７０において作動される。ブロック２３０において、周辺装置１２０が当該ホスト１１０と第２回目の又は後続する接続を行う際にインストールコマンドが受信されなくなることも理解されよう。逆に、変更コマンドはカスタムデバイスドライバの再インストールを必要とすることなくブロック２５０において受信される。
【００３４】
当業者には理解されるように、カスタムデバイスドライバ１６０のうちの１つは、オペレーティングシステムに含まれているプレインストール済みのクラスレベルのデバイスドライバを用いるデバイスと同じタイプのデバイスに用いられるデバイスドライバであってもよい。例えば、周辺装置１２０は、その中にカスタムの大容量記憶装置１３０を実際に含むことができる。デフォルトの構成と代替構成との間の無限ループの可能性を減らしたり、避けたりするために、代替構成における普通の装置は変更構成コマンドを含まない異なるドライバを有することが望ましい。
【００３５】
図３は、本発明の各種の実施形態に係る（単複の）カスタムデバイスドライバ１６０を自動的にインストールするためにホストコンピュータ１１０により実行され得る処理を示すフローチャートである。これらの処理は、以下に説明するように図２の処理とのインタラクションを行うことができる。
【００３６】
図３を参照すると、ブロック３１０において、ホスト１１０は単複のデバイスドライバクラスのインタフェースのみを中に含む周辺装置１２０のデフォルト構成１７０に対して露出され、オペレーティングシステム１１０には、上記インタフェース用としてプレインストール済みのクラスレベルのデバイスドライバが含まれ、これらのデバイスドライバのうち少なくとも１つが自動実行ルーチンを含む。これに応じて、ブロック３２０において、オペレーティングシステムに含まれているプレインストール済みのクラスレベルのデバイスドライバを用いる単複のドライバデバイスクラスレベルのインタフェースのうちの少なくとも１つがホスト１１０の中へロードされる。理解されるように、ブロック２２０の処理の結果としてデフォルト構成に対してホスト１１０を露出することが可能となる。
【００３７】
次いで、ブロック３３０において、インストールコマンドを直接周辺装置１２０へ発行するために、又は、インストールコマンドを周辺装置１２０へそれ自体発行する１以上の実行可能なルーチンを開始するために自動実行ルーチンが実行される。次いで、ブロック３４０において、１以上のカスタムデバイスドライバ１６０を周辺装置１２０から受信するステップに応じて、例えば、ブロック２４０の処理の結果として、カスタムデバイスドライバ１６０がブロック３５０においてインストールされる。次いで、ブロック２５０に関連して説明したように、カスタムデバイスドライバ１６０は変更コマンドをホスト１１０から送信させると共に、それから、ブロック２６０に関連して説明したように、周辺装置１２０はデフォルト１７０からカスタム１８０へその構成を変更する。次いで、ホスト１１０は、ブロック３６０においてインストール済みのカスタムデバイスドライバ１６０により動作し、さらに、ブロック２７０に関連して説明したように、周辺装置１２０もホスト１１０により動作する。
【００３８】
図４は、本発明の各種の実施形態に係るカスタムデバイスドライバ１６０を自動的にインストールするために、ホスト１１０により実行することができる処理を示すフローチャートである。カスタムデバイスドライバ１６０が予めインストールされているかどうかに関りなく、これらの実施形態はホストの動作について説明する。特に、図４を参照すると、ブロック４１０において、周辺装置１２０がホスト１１０に接続されているとき、ブロック４２０において、周辺装置１２０用のカスタムデバイスドライバ１６０がオペレーティングシステム１１２にインストールされているかどうかに関する判定が行われる。さらに詳細には、周辺装置１２０に対する製品識別子に一致するカスタムデバイスドライバ１６０がオペレーティングシステム１１２に予めインストールされているか否かの判断が行われる。インストールされていれば、ブロック４４０において、カスタムデバイスドライバがロードされ、次いで、ブロック４５０において、変更コマンドは、周辺装置１２０へ発行され、デフォルト構成１７０から、１以上のカスタムデバイスドライバ１６０用のインタフェースを含む代替構成１８０へ周辺装置１２０の構成を変更する。ブロック４６０においてホスト１１０は動作し続ける。
【００３９】
再びブロック４２０を参照すると、周辺装置１２０の製品識別子に一致するカスタムデバイスドライバがオペレーティングシステム１１２にインストールされていなければ、周辺装置によってオペレーティングシステムに対して露出される１以上のプレインストール済みのドライバクラスの単複のインタフェースのためのロードがブロック４５０において実行される。さらに、上記周辺装置用として、オペレーティングシステムには、プレインストール済みのクラスレベルのデバイスドライバが含まれ、該デバイスドライバのうちの少なくとも１つには自動実行ルーチンが含まれている。次いで、直接的にあるいは間接的に変更コマンドを周辺装置１２０へ発行するために、ブロック４７０において自動実行ルーチンが実行される。次いで、ブロック４８０において、１以上のカスタムデバイスドライバ１６０を周辺装置１２０から受信するステップに応じて、ブロック４４０においてカスタムデバイスドライバ１６０がロード又はインストールされる。
【００４０】
図５は、本発明の各種の実施形態に係るカスタムデバイスドライバ１６０を自動的にインストールするために、ホスト１１０と周辺装置１２０とにより実行することができる組み合わされた処理を示すブロック図である。図５の実施形態は、ホスト１１０がＰＣであり、かつ、オペレーティングシステム１１２がウィンドウズ（登録商標）オペレーティングシステムであることを仮定すると共に、オペレーティングシステムに含まれているプレインストール済みのクラスレベルのデバイスドライバが用いられる、デバイスドライバクラスの単複のインタフェースが大容量記憶装置クラスのインタフェースであり、かつ、これらインタフェースのうちの少なくとも１つには自動実行ルーチンが含まれていることを仮定する。
【００４１】
図５に示すように、ブロック５１０において、周辺装置１２０は挿入又は接続され、かつ、周辺装置１２０はそのデフォルト構成の一部として大容量記憶装置クラスのインタフェースのみを露出する。次いで、ブロック５２０において、ウィンドウズ（登録商標）オペレーティングシステムは一致するドライバを探索する。ドライバに一致する製品識別子が発見されれば、当該ドライバはオペレーティングシステム１１２の中へロードされる。もし一致する製品識別子が発見されなければ、内蔵型大容量記憶装置クラスのドライバがロードされる。特に、図示のように、ブロック５３０において、ドライバに一致する製品識別子が発見されるか否かに関するテストが行われる。発見された場合、それが周辺装置１２０を接続した第２回目であるか、それ以降の回であるかを示し、次いでブロック５４０において、ウィンドウズ（登録商標）は周辺装置１２０用の実際の（カスタム）ドライバ１６０をロードする。次いで、ブロック５５０において、カスタムドライバ１６０はＵＳＢコマンドを用いて、周辺装置１２０を代替（実際のすなわちカスタムの）構成１８０に変更する。次いで通常のドライバの動作が実行される。
【００４２】
再びブロック５３０に戻り、ドライバに一致する製品識別子がオペレーティングシステム１１２の中に発見されなかった場合、それは、周辺装置１２０がこのホスト１１０に接続された第１回目の接続であることを示し、次いで、ブロック５７０において、ウィンドウズ（登録商標）は内蔵型大容量記憶装置クラスのドライバをロードし、次いで、該ドライバはautorun.infを自動的に探索する。製品識別子が発見された場合、ウィンドウズ（登録商標）はautorun.infによって指示される実行可能なルーチンを起動する。次いで、ブロック５８０において、ドライバインストールプログラムはautorun.infファイルから直接的にあるいは間接的にインストールカスタムドライバ１６０を自動的に実行する。さらに、（単複の）カスタムドライバ１６０が署名されていればユーザによるインタラクションを不要にすることができる。次いで、処理は周辺装置の構成を変更するためにブロック５５０へ続き、次いで通常の動作がブロック５６０において実行される。
【００４３】
したがって、図５に示されているように、ブロック５１０において、本発明のいくつかの実施形態は、大容量記憶装置クラスのインタフェースを、あるいは、さらに一般的に言えば、オペレーティングシステムに含まれているプレインストール済みのクラスレベルのデバイスドライバが用いられる、デバイスドライバクラスの単複のインタフェースのみを含む周辺装置のデフォルト構成が常に最初に露出される可能性がある。これらのインタフェースのうちの少なくとも１つには自動実行ルーチンが含まれている。逆に、上記に引用した米国特許出願第６，７５４，７２５号明細書において及び米国特許出願第２００５／００３８９３４号明細書において説明したように、従来の技術では、オペレーティングシステムは、周辺装置の接続時にカスタムドライバを含むインタフェースに対して露出される可能性がある。オペレーティングシステムがカスタムインタフェースに対して最初に露出されることに起因して、オペレーティングシステムはカスタムドライバがインストールされる前にカスタムドライバの探索を行うことができる。インストール前に行われるこのような探索によって、ドライバへ指示するユーザメッセージの生成が可能となり、これによって自動インストールの除外が可能となる。
【００４４】
図５にも示されているように、本発明のいくつかの実施形態では、専らブロック５５０においてのみ、ウィンドウズ（登録商標）がカスタムドライバをロードした後、又は、カスタムドライバ５８０をインストールした後、ドライバ構成がカスタムドライバに対する切り替えを行って、インタフェースを露出する。したがって、ドライバの提供をユーザに要求したり、ドライバに指示したりする必要性が生じることはあり得ない。さらに、ドライバがすでに署名されていれば（この署名は、従来ならば、信頼できる周辺装置設計者によって設計されているカスタムドライバの場合得ることである）、カスタムドライバは、この無署名のドライバのインストールをユーザが望んでいるかどうかに関する警告メッセージをユーザへ送信することなく、ロード及びインストールを自動的に行うことが可能となる。したがってユーザの介在を必要とされない。
【００４５】
したがって、本発明の実施形態では、カスタムドライバが首尾よくロードされるまで、カスタムドライバのインストールをオペレーティングシステムに許可しないようにすることができる。ユーザプロンプトを簡略にしたり、不要にしたりすることが可能である。最後に、当業者によって理解されるように、インストール済みのカスタムデバイスドライバはアプリケーションソフトウェアを中に含み得るものであり、それによって、本発明の実施形態は、ユーザによる介在を必要とすることなく、ドライバに加えてアプリケーションソフトウェアのロードのためにも利用され得るものとなる。
【００４６】
さらに、本発明によれば、ＵＳＢ対応周辺装置は、ＵＳＢを介して周辺装置が接続されている接続先のホストコンピュータにより発行されるＵＳＢベンダ固有コマンドに応じて、デフォルトのＵＳＢ構成から代替のＵＳＢ構成へ変更することができる。特に、ＵＳＢベンダ固有コマンドは、上述のようにホストコンピュータ上にロードされたカスタムデバイスドライバにより発行される変更コマンドとしてＵＳＢ対応装置を認識することができる。
【００４７】
ＵＳＢ互換周辺装置の構成を変更するＵＳＢベンダ固有コマンドを用いることにより、自動インストールとＵＳＢ互換周辺装置の構成とをさらに促進させて、ユーザの手動による介在の必要を減らすようにすることが可能となる。さらに、ＵＳＢベンダ固有コマンドは、ＵＳＢ互換周辺装置の利用を促進して、別様に用いられるＵＳＢコマンドを必ずしもサポートする必要のないシステムを備えたＵＳＢ周辺装置の構成を変更することも可能である。例えば、ＵＳＢ設定構成コマンドのようなＵＳＢコマンドは、必ずしもすべてのバージョンのＵＳＢ装置によりサポートされ得るとはかぎらない場合がある。逆に、ＵＳＢベンダ固有コマンドフォーマットがすべてのバージョンのＵＳＢ対応装置によりサポートされ、それによって、ＵＳＢ設定構成コマンドをサポートしていないシステムにおいてさえＵＳＢ対応装置のＵＳＢ構成を変更できることが望ましい。
【００４８】
図６は本発明に係るいくつかの実施形態においてＵＳＢ対応周辺装置とホストコンピュータとの動作を例示するフローチャートである。特に、（図１〜図５を参照して上記に説明したＵＳＢ互換周辺装置により提供されるＵＳＢカスタムドライバのような）ＵＳＢカスタムドライバがホストコンピュータ上にロードされると、ホストコンピュータは本発明に係るＵＳＢ互換周辺機器によって露出される構成のチェックを行う（ブロック６０５）。代替ＵＳＢ構成がＵＳＢ互換周辺機器によって露出されていれば（ブロック６１０）、ＵＳＢ互換周辺装置は、露出された代替ＵＳＢ構成に従ってホストシステムとインタラクションを行う（ブロック６４０）。
【００４９】
しかし、デフォルトのＵＳＢ構成がＵＳＢ互換周辺機器によって露出されていれば（ブロック６１０）、ホストコンピュータはＵＳＢベンダ固有コマンドを変更コマンドとしてＵＳＢ互換周辺機器へ送信する（ブロック６１５）。ＵＳＢ互換周辺装置はＵＳＢベンダ固有コマンドを受信し、ホストとの接続を切断する。次いで、ＵＳＢ互換周辺装置のＵＳＢ構成を代替ＵＳＢ構成へ変更する（ブロック６２０）。ホストコンピュータはＵＳＢ互換周辺装置が接続を切断したことを検出し、次いで、これに応じて、ＵＳＢカスタムドライバをアンロードする（ブロック６２５）。次いで、ＵＳＢ互換周辺装置はホストコンピュータに再接続し、代替ＵＳＢ構成を露出する（ブロック６３０）。ホストコンピュータは、ＵＳＢ互換周辺装置によって露出された代替ＵＳＢ構成を検出し、次いで、ＵＳＢカスタムドライバを再ロードする（ブロック６３５）。次いで、代替ＵＳＢ構成に従ってＵＳＢ互換周辺装置とのインタラクションを実行することが可能となる（ブロック６４０）。
【００５０】
図７は、本発明に係るＵＳＢ互換周辺装置の動作を示すフローチャートである。特に、ＵＳＢ互換周辺装置は、デフォルトのＵＳＢ構成をロードし、次いで、ホストコンピュータに対してデフォルトのＵＳＢ構成を露出する（ブロック７０５）。ＵＳＢ互換周辺装置はＵＳＢベンダ固有コマンドをホストコンピュータから受信することができ、次いで、ＵＳＢ互換装置はそのＵＳＢ構成を代替ＵＳＢ構成に変更するためのものであることを示す（ブロック７１０）。
【００５１】
ＵＳＢベンダ固有コマンドを受信する際、ＵＳＢ互換周辺装置はホストコンピュータとの接続を切断する（ブロック７１５）。次いで、ＵＳＢ互換周辺装置は、代替ＵＳＢ構成をロードし、ホストコンピュータに対して代替ＵＳＢ構成を露出するためにホストコンピュータと再接続する（ブロック７２０）。次いで、ＵＳＢ互換周辺装置は、代替ＵＳＢ構成に従ってホストコンピュータとのインタラクションを行うことができる（ブロック７２５）。
【００５２】
理解されるように、ＵＳＢベンダ固有コマンドは、図８に例示のフォーマットに基づいて、ＵＳＢ制御設定トランザクションの一部としてＵＳＢ互換周辺装置へ提供することができる。特に、図８に示す制御設定トランザクションは制御トランザクションの設定段の一部としてＵＳＢベンダ固有コマンドを提供することができる。本発明に係るいくつかの実施形態では、ＵＳＢ互換周辺装置のＵＳＢ構成を変更するために、データ段及び状態段がＵＳＢベンダ固有コマンドのオプションの一部として利用される。
【００５３】
本発明に係るいくつかの実施形態ではＵＳＢベンダ固有コマンドを提供する設定段を含む制御書き込みシーケンスはＵＳＢ互換周辺装置のＵＳＢエンドポイントへ提供される。当業者には理解されるように、このエンドポイントは、任意のＵＳＢ互換周辺機器がサポートするデータ用のシンクと考えることができる。例えば、上記エンドポイントは、ＵＳＢ互換周辺装置へデータを書き換えるためにＵＳＢカスタムドライバのソフトウェア層によって使用されることができる。同様に、ＵＳＢ互換装置は別個のバッファを介してデータをホストへ返信することができ、ホストコンピュータはＵＳＢカスタムドライバを用いてこのデータを読み出すことができる。当業者によってさらに理解されるように、周辺装置の制御及び状態要求のすべてを受信するために、エンドポイント０が用いられる。エンドポイント０は列挙処理中に設定される。この列挙処理は、インターネットにおいて‘www.usb.org’で入手することができるＵＳＢ仕様書にさらに詳述されている。上記ＵＳＢ仕様書の内容は参照により本願に援用されている。
【００５４】
本発明に係るさらに別の実施形態において、上記の図１に示すコントローラは、デフォルトのＵＳＢ構成から代替ＵＳＢ構成へＵＳＢ構成を変更するためにＵＳＢ互換周辺装置の動作を調整することができる。特に、ホストコンピュータとのＵＳＢ互換周辺装置の接続時にホストコンピュータの処理システムに対してデフォルトのＵＳＢ構成を露出するようにコントローラを構成することができる。ＵＳＢ互換周辺装置用の構成が変更されることをＵＳＢ互換周辺装置に示すように構成された変更コマンド（すなわち、ＵＳＢベンダ固有のＵＳＢコマンド）に応じて、デフォルトのＵＳＢ構成から代替ＵＳＢ構成へＵＳＢ互換周辺装置用のＵＳＢ構成を変更するようにコントローラをさらに構成することができる。本発明に係るいくつかの実施形態では、ＵＳＢ互換周辺装置は、ホストコンピュータ上にロードされたカスタムドライバにより提供されるＵＳＢベンダ固有コマンドを認識するように構成される。したがって、コントローラは、ＵＳＢベンダ固有コマンドの受信を検出すると、ＵＳＢ構成の変更を実現することが可能となる。
【００５５】
図面及び本明細書において本発明の実施形態を開示した。ここでは特定の用語が採用されているが、それらはあくまで一般的かつ記述的な意味においてのみ使用されており、発明を限定する意図はない。本発明の範囲は特許請求の範囲に記載されているとおりである。
【００５６】
本願は、「周辺装置からホストコンピュータ上へデバイスドライバを自動的にインストールするための方法、装置及び記憶媒体という表題の、２００６年１１月２９日出願の米国特許出願第１１／５６４，５５３号明細書（代理人整理番号９３１４−１６０）」の一部継続出願であり、該出願に対する優先権を主張するものである。上記出願の内容は参照により本願に援用されている。
【図１】
2010526388.tif 000003
【図２】
2010526388.tif 000004
【図３】
2010526388.tif 000005
【図４】
2010526388.tif 000006
【図５】
2010526388.tif 000007
【図６】
2010526388.tif 000008
【図７】
2010526388.tif 000009
【図８】
2010526388.tif 000010
【手続補正書】
【提出日】平成22年1月7日(2010.1.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユニバーサルシリアルバス（ＵＳＢ）互換周辺装置の構成を自動的に修正する方法であって、
ＵＳＢとの最初の接続時にＵＳＢ互換周辺装置用の構成としてデフォルトのＵＳＢ構成を露出するステップと、
外部から前記ＵＳＢ互換周辺装置への変更コマンドであって、前記ＵＳＢ互換周辺装置用の前記デフォルトのＵＳＢ構成がＵＳＢベンダ固有コマンドに対応する代替ＵＳＢ構成へ変更されるべきことを前記ＵＳＢ互換周辺装置に対して示すように構成された前記ＵＳＢベンダ固有コマンドを含む前記変更コマンドを前記ＵＳＢ互換周辺装置において受信するステップと、
前記ＵＳＢ互換周辺装置における前記ＵＳＢベンダ固有コマンドの受信に応じて、前記ＵＳＢ互換周辺装置用の構成として前記代替ＵＳＢ構成を露出するステップと、を含み、
前記ＵＳＢベンダ固有コマンドは、関連付けられた後続するデータ段が前記ＵＳＢベンダ固有コマンドを前記ＵＳＢ互換周辺装置に特定するベンダ定義情報を含むことを示す、ＵＳＢ互換設定段パケットのヘッダの中に含まれている情報を含むことを特徴とする方法。
【請求項２】
前記変更コマンドを受信する前記ステップに応じて、前記ＵＳＢ互換周辺装置は前記ＵＳＢとの接続を切断し、それによってホストコンピュータ上にロードされている関連付けられたデフォルトドライバがアンロードされることを特徴とする請求項１に記載の方法。
【請求項３】
前記変更コマンドを受信する前記ステップにさらに応じて、前記ＵＳＢ互換周辺装置は、前記ＵＳＢ互換周辺装置用の前記デフォルトのＵＳＢ構成を前記代替ＵＳＢ構成に変更した後に前記ＵＳＢと再接続し、それによって前記ホストコンピュータ上の関連付けられた代替ドライバがロードされることを特徴とする請求項２に記載の方法。
【請求項４】
前記代替ＵＳＢ構成は、ホストコンピュータ上にプレインストールされた装置クラスのインタフェースが含まれていない装置に関連付けられることを特徴とする請求項１に記載の方法。
【請求項５】
前記ホストコンピュータ上のオペレーティングシステムに含まれているプレインストール済みの複数のクラスレベルのデバイスドライバであって、該デバイスドライバのうちの少なくとも１つのデバイスドライバには自動実行ルーチンが含まれているが、前記オペレーティングシステムに含まれていないプレインストール済みのクラスレベルのデバイスドライバにおけるデバイスドライバクラスのインタフェースが含まれていない前記複数のクラスレベルのデバイスドライバ用のドライバクラスの単複のインタフェースを備える前記ＵＳＢ互換周辺装置のデフォルトのＵＳＢ構成に対して前記ホストコンピュータを露出又は再露出するステップに応じて、前記ホストコンピュータは、
前記ＵＳＢ互換周辺装置用の製品識別子に一致するカスタムデバイスドライバが前記オペレーティングシステムにインストールされていれば、前記カスタムデバイスドライバをロードし、前記変更コマンドを前記ＵＳＢ互換周辺装置へ送信して、前記デフォルトのＵＳＢ構成から前記代替ＵＳＢ構成へ前記ＵＳＢ構成を変更するステップと、
前記ＵＳＢ互換周辺装置用の製品識別子に一致するカスタムデバイスドライバが前記オペレーティングシステムにインストールされていなければ、前記オペレーティングシステムに含まれているプレインストール済みの複数のクラスレベルのデバイスドライバであって、該デバイスドライバのうちの少なくとも１つが自動実行ルーチンを含む該デバイスドライバ用の前記ドライバクラスの単複のインタフェースのうちの少なくとも１つのインタフェースをロードし、前記自動実行ルーチンを実行して、前記自動実行ルーチンからと、前記自動実行ルーチンによって指示される実行可能なルーチンからとの少なくともいずれかのルーチンからインストールコマンドを前記ＵＳＢ互換周辺装置へ発行し、前記ＵＳＢ互換周辺装置から受信した前記１以上のカスタムデバイスドライバに応じて、前記ホストコンピュータ上に前記１以上のカスタムデバイスドライバをインストールするステップと、を実行することを特徴とする請求項１に記載の方法。
【請求項６】
前記オペレーティングシステムはウィンドウズ(登録商標)オペレーティングシステムを備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記デフォルトのＵＳＢ構成はデフォルトの大容量記憶装置構成を備え、前記代替ＵＳＢ構成はモデム構成を備えることを特徴とする請求項１に記載の方法。
【請求項８】
請求項１に記載の方法を実行するように構成されることを特徴とするＵＳＢ互換周辺装置。
【請求項９】
ＵＳＢ互換周辺装置用の記憶媒体であって、前記記憶媒体の中に組み込まれたコンピュータ可読プログラムコードであって、請求項１に記載の方法を実行するように構成されたコンピュータ可読プログラムコードを含む、コンピュータで使用可能な記憶媒体。
【請求項１０】
ホストコンピュータと接続するように構成されたＵＳＢ互換周辺装置であって、
自動実行ルーチンを含むが、デバイスドライバクラスのインタフェースを備えていないオペレーティングシステムに含まれているプレインストール済みの複数のクラスレベルのデバイスドライバを用いる単複のデバイスドライバクラスのインタフェースを備えているが、前記デバイスドライバクラスのインタフェース用としてプレインストール済みのクラスレベルのデバイスドライバを前記オペレーティングシステムが備えていないデフォルト構成と、
カスタムのデバイスドライバインタフェースを備えた代替ＵＳＢ構成と、
前記ＵＳＢ互換周辺装置がホストコンピュータと接続する際に、前記ホストコンピュータのオペレーティングシステムに対して前記デフォルトのＵＳＢ構成を露出し、かつ、前記デフォルトのＵＳＢ構成から前記代替ＵＳＢ構成へ前記ＵＳＢ互換周辺装置用のＵＳＢ構成を変更し、それによって、前記ＵＳＢ互換周辺装置用の前記デフォルトのＵＳＢ構成は、前記ＵＳＢベンダ固有コマンドに対応する代替ＵＳＢ構成に変更されることをＵＳＢ互換周辺装置に対して示すように構成されたＵＳＢベンダ固有コマンドを含む前記ホストコンピュータからの変更コマンドに応じて、前記ホストコンピュータがＵＳＢ構成に対して露出されるように構成されたコントローラと
を備え、
前記ＵＳＢベンダ固有コマンドは、関連付けられた後続するデータ段が前記ＵＳＢベンダ固有コマンドをＵＳＢ互換周辺装置に特定するベンダ定義情報を含むことを示す、ＵＳＢ互換設定段パケットのヘッダの中に含まれている情報を含むことを特徴とするＵＳＢ互換周辺装置。
【国際調査報告】
2010526388.tif 000011
2010526388.tif 000012
2010526388.tif 000013