(57)【要約】【課題】外部デバイスの省電力化を実現するデバイス制御装置およびデバイス制御方法を提供する。【解決手段】デバイス制御装置は、外部デバイスの接続時に外部デバイスに関する情報を取得・管理し、その後、外部デバイスへの電源供給を停止し、情報処理装置から電源供給開始を含む仮想化開始命令の受信に応じて、外部デバイスに対して電源供給を再開し、情報処理装置と外部デバイスの仮想化制御が行われた後、情報処理装置から電源供給停止を含む仮想化終了命令の受信に応じて、外部デバイスに対して電源供給を停止し、情報処理装置と外部デバイスの仮想化制御の終了が行われる。【選択図】図１
2018073216.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して１以上の情報処理装置と接続されているとともにデバイスとローカル接続されているデバイス制御装置であって、
前記デバイスの接続を検知するデバイス接続検知手段と、
前記デバイスに対して電源供給を開始する電源供給制御手段と、
前記デバイス接続検知手段によって前記接続を検知したデバイスからデバイス情報を取得するデバイス情報取得手段と、
前記デバイス情報取得手段によって取得した前記デバイス情報を管理するデバイス状態管理手段と、
前記デバイス状態管理手段によって前記デバイス情報を管理している状態において前記デバイスに対して電源供給を制御する省電力制御手段と、
を備えることを特徴とするデバイス制御装置。
【請求項２】
前記情報処理装置から前記デバイスへの電源供給開始命令を受信する第１の命令受信手段と、
前記情報処理装置から仮想化開始命令を受信する第２の命令受信手段と、
前記情報処理装置に前記デバイスがローカル接続されたかのように仮想化制御させる仮想化制御手段と、
前記情報処理装置から前記デバイスへの電源供給停止命令を受信する第３の命令受信手段と、
前記情報処理装置から仮想化終了命令を受信する第４の命令受信手段と、
前記デバイスの仮想化制御を終了させる仮想化制御終了手段と、
を更に備え、
前記第１の命令受信手段によって前記情報処理装置から前記電源供給開始命令を受信したことに応じて、前記電源供給制御手段によって前記デバイスへの電源供給を開始した場合、
前記第２の命令受信手段によって前記情報処理装置から前記仮想化開始命令を受信したことに応じて、前記仮想化制御手段によって前記デバイスと前記情報処理装置との仮想化制御を開始する一方、
前記第３の命令受信手段によって前記情報処理装置から前記電源供給停止命令を受信したことに応じて、前記省電力制御手段によって前記デバイスへの電源供給を停止した場合、
前記第４の命令受信手段によって前記情報処理装置から前記仮想化終了命令を受信したことに応じて、仮想化制御終了手段によって前記デバイスの仮想化制御を終了させる
ことを特徴とする請求項１に記載のデバイス制御装置。
【請求項３】
前記デバイス情報取得手段によって取得した前記デバイス情報に基づいて、前記デバイスが省電力機能を備えているか判断する省電力機能判断手段を更に備え、
前記省電力機能判断手段によって前記デバイスが省電力機能を備えていると判断した場合、
前記省電力制御手段によって前記デバイスに対して省電力設定命令を送信して前記デバイスに対する電源供給量の抑制を行う一方、
前記省電力機能判断手段によって前記デバイスが省電力機能を備えていないと判断した場合、
前記省電力制御手段によって前記デバイスに対して電源供給の停止を行う
ことを特徴とする請求項１に記載のデバイス制御装置。
【請求項４】
前記情報処理装置から前記デバイスへの省電力設定命令を受信する第１の命令受信手段と、
前記情報処理装置から仮想化開始命令を受信する第２の命令受信手段と、
前記情報処理装置に前記デバイスがローカル接続されたかのように仮想化制御させる仮想化制御手段と、
前記情報処理装置から前記デバイスへの省電力解除命令を受信する第３の命令受信手段と、
前記情報処理装置から仮想化終了命令を受信する第４の命令受信手段と、
前記デバイスの仮想化制御を終了させる仮想化制御終了手段と、
を更に備え、
前記第１の命令受信手段によって前記情報処理装置から前記省電力設定命令を受信したことに応じて、前記省電力制御手段によって前記デバイスに対して前記省電力設定命令を送信して、前記デバイスに対する電源供給量の抑制を行った場合、
前記第２の命令受信手段によって前記情報処理装置から前記仮想化開始命令を受信したことに応じて、前記仮想化制御手段によって前記デバイスと前記情報処理装置との仮想化制御を開始する一方、
前記第３の命令受信手段によって前記情報処理装置から前記省電力解除命令を受信したことに応じて、前記省電力制御手段によって前記デバイスに対して前記省電力解除命令を送信して、前記デバイスに対する電源供給量の抑制を解除した場合、
前記第４の命令受信手段によって前記情報処理装置から前記仮想化終了命令を受信したことに応じて、仮想化制御終了手段によって前記デバイスの仮想化制御を終了させる
ことを特徴とする請求項３に記載のデバイス制御装置。
【請求項５】
ネットワークを介して１以上の情報処理装置と接続されているとともにデバイスとローカル接続されているデバイス制御装置によって実行されるデバイス制御方法であって、
前記デバイスの接続を検知するデバイス接続検知ステップと、
前記デバイスに対して電源供給を開始する電源供給制御ステップと、
前記デバイス接続検知ステップによって前記接続を検知したデバイスからデバイス情報を取得するデバイス情報取得ステップと、
前記デバイス情報取得ステップで取得した前記デバイス情報を管理するデバイス状態管理ステップと、
前記デバイス状態管理ステップによって前記デバイス情報を管理している状態において前記デバイスに対して電源供給を制御する省電力制御ステップと、
を備えることを特徴とするデバイス制御方法。
【請求項６】
前記情報処理装置から前記デバイスへの電源供給開始命令を受信する第１の命令受信ステップと、
前記情報処理装置から仮想化開始命令を受信する第２の命令受信ステップと、
前記情報処理装置に前記デバイスがローカル接続されたかのように仮想化制御させる仮想化制御ステップと、
前記情報処理装置から前記デバイスへの電源供給停止命令を受信する第３の命令受信ステップと、
前記情報処理装置から仮想化終了命令を受信する第４の命令受信ステップと、
前記デバイスの仮想化制御を終了させる仮想化制御終了ステップと、
を更に備え、
前記第１の命令受信ステップによって前記情報処理装置から前記電源供給開始命令を受信したことに応じて、前記電源供給制御ステップによって前記デバイスへの電源供給を開始した場合、
前記第２の命令受信ステップによって前記情報処理装置から前記仮想化開始命令を受信したことに応じて、前記仮想化制御ステップによって前記デバイスと前記情報処理装置との仮想化制御を開始する一方、
前記第３の命令受信ステップによって前記情報処理装置から前記電源供給停止命令を受信したことに応じて、前記省電力制御ステップによって前記デバイスへの電源供給を停止した場合、
前記第４の命令受信ステップによって前記情報処理装置から前記仮想化終了命令を受信したことに応じて、仮想化制御終了ステップによって前記デバイスの仮想化制御を終了させる
ことを特徴とする請求項５に記載のデバイス制御方法。
【請求項７】
前記デバイス情報取得ステップによって取得した前記デバイス情報に基づいて、前記デバイスが省電力機能を備えているか判断する省電力機能判断ステップを更に備え、
前記省電力機能判断ステップによって前記デバイスが省電力機能を備えていると判断した場合、
前記省電力制御ステップによって前記デバイスに対して省電力設定命令を送信して前記デバイスに対する電源供給量の抑制を行う一方、
前記省電力機能判断ステップによって前記デバイスが省電力機能を備えていないと判断した場合、
前記省電力制御ステップによって前記デバイスに対して電源供給の停止を行う
ことを特徴とする請求項５に記載のデバイス制御方法。
【請求項８】
前記情報処理装置から前記デバイスへの省電力設定命令を受信する第１の命令受信ステップと、
前記情報処理装置から仮想化開始命令を受信する第２の命令受信ステップと、
前記情報処理装置に前記デバイスがローカル接続されたかのように仮想化制御させる仮想化制御ステップと、
前記情報処理装置から前記デバイスへの省電力解除命令を受信する第３の命令受信ステップと、
前記情報処理装置から仮想化終了命令を受信する第４の命令受信ステップと、
前記デバイスの仮想化制御を終了させる仮想化制御終了ステップと、
を更に備え、
前記第１の命令受信ステップによって前記情報処理装置から前記省電力設定命令を受信したことに応じて、前記省電力制御ステップによって前記デバイスに対して前記省電力設定命令を送信して、前記デバイスに対する電源供給量の抑制を行った場合、
前記第２の命令受信ステップによって前記情報処理装置から前記仮想化開始命令を受信したことに応じて、前記仮想化制御ステップによって前記デバイスと前記情報処理装置との仮想化制御を開始する一方、
前記第３の命令受信ステップによって前記情報処理装置から前記省電力解除命令を受信したことに応じて、前記省電力制御ステップによって前記デバイスに対して前記省電力解除命令を送信して、前記デバイスに対する電源供給量の抑制を解除した場合、
前記第４の命令受信ステップによって前記情報処理装置から前記仮想化終了命令を受信したことに応じて、仮想化制御終了ステップによって前記デバイスの仮想化制御を終了させる
ことを特徴とする請求項７に記載のデバイス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された情報処理装置から送られる各種要求を処理するためのデバイス制御装置、およびデバイス制御装置によるデバイス制御方法に関する。
【背景技術】
【０００２】
近年、ネットワークの普及によって、プリンタ、ストレージ、およびスキャナなどの周辺機器を、ネットワーク上のホストコンピュータが共有デバイスとして利用することが行われている。この共有デバイスを利用するシステムにおいて、待機電力の抑制方法がいくつか提案されている。
【０００３】
例えば、サーバコンピュータが、ネットワーク上のホストコンピュータからのコマンド要求に応じて、サーバコンピュータに接続されている周辺機器のバスパワー（デバイス接続ポートのバス電源）を制御することにより無駄な電力消費を抑制する技術がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３１０７９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１は、サーバコンピュータ（デバイス制御装置）が周辺機器（外部デバイス）を制御する際にバス電源を一時的にオンにし、所定時間経過後にオフにする。そのため、サーバコンピュータは起動直後から所定時間経過するまでの間、周辺機器に電源供給を行うため、不要な電力を消費してしまうという課題がある。
【０００６】
上記の課題に鑑みて、本発明は、外部デバイスの省電力化を実現するデバイス制御装置およびデバイス制御装置によるデバイス制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、請求項１に記載のデバイス制御装置は、ネットワークを介して１以上の情報処理装置と接続されているとともにデバイスとローカル接続されているデバイス制御装置であって、前記デバイスの接続を検知するデバイス接続検知手段と、前記デバイスに対して電源供給を開始する電源供給制御手段と、前記デバイス接続検知手段によって前記接続を検知したデバイスからデバイス情報を取得するデバイス情報取得手段と、前記デバイス情報取得手段によって取得した前記デバイス情報を管理するデバイス状態管理手段と、前記デバイス状態管理手段によって前記デバイス情報を管理している状態において前記デバイスに対して電源供給を制御する省電力制御手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、デバイス制御装置の起動直後に必要な情報を取得後、デバイス制御装置は外部デバイスに対する電源供給をオフにする、または、外部デバイスの省電力機能を有効にすることにより省電力化を実現できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。
【図２】図１に示すデバイス制御装置２００が有するデバイス状態管理情報２１６の一例を示す図である
【図３】デバイス制御装置２００における外部デバイス接続時の制御の一例を示すフローチャートである。
【図４】デバイス制御装置２００における仮想化制御開始時の制御の一例を示すフローチャートである。
【図５】デバイス制御装置２００における仮想化制御終了時の制御の一例を示すフローチャートである。
【図６】デバイス制御装置２００における外部デバイスの接続切断時の制御の一例を示すフローチャートである。
【図７】デバイス制御装置２００による外部デバイス３００への電源供給制御について説明するシーケンスである。
【図８】外部デバイス３００が省電力モードを備えている場合にデバイス制御装置２００による電源供給制御について説明するシーケンスである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態によるデバイス制御システムの一例について図面を参照して説明する。
【００１１】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るデバイス制御システムの一例の構成を概略的に示すブロック図である。
【００１２】
図示のデバイス制御システムにおいては、情報処理装置１００がローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）などのネットワークを介してデバイス制御装置２００に接続されている。ネットワークは有線回線または無線回線で構成される。そして、デバイス制御装置２００には、通信インターフェース（例えば、ＵＳＢまたＩＥＥＥ１３９４、および、ＨＤＭＩ（登録商標））によって外部デバイス３００がローカル接続されている。以降の説明では、通信インターフェースをＵＳＢとして説明する。
【００１３】
なお、図１に示すデバイス制御システムにおいては、情報処理装置１００、デバイス制御装置２００、および外部デバイス３００がそれぞれ１つのみ示されているが、情報処理装置１００、デバイス制御装置２００、および外部デバイス３００の台数は図示の例に限定されるものではない。また、デバイス制御装置２００は、例えば、プリンタ又は複合機等のオフィス機器であるが、デバイス制御装置２００はオフィス機器に限定されるものではなく、様々な組込み装置、携帯電話機、又はモバイル端末機器であってもよい。  
【００１４】
また、図１に示すデバイス制御システムでは、デバイス制御装置２００と外部デバイス３００をそれぞれ別体の装置で構成しているが、デバイス制御装置２００を外部デバイス３００のケーシング内に収まるように一体構造としても良い。
【００１５】
＜情報処理装置１００の構成＞
情報処理装置１００は、パーソナルコンピュータ（ＰＣ）等の装置である。ハードウェア構成として、ＣＰＵ１０１、入力部１０２、表示部１０３、メモリ１０４、通信部１０５、および、記憶部１１０を備え、これらハードウェアは内部バスで相互に接続されている。
【００１６】
ＣＰＵ１０１は、情報処理装置１００の全体の制御を司る。入力部１０２は、例えば、キーボードおよびマウスを備えている。表示部１０３として、例えば、液晶モニタが用いられる。メモリ１０４はＲＡＭおよびＲＯＭ等である。通信部１０５はネットワークに接続するためのインターフェースであって、デバイス制御装置２００とデータ送受信を行う。
【００１７】
記憶部１１０には、ソフトウェアであるオペレーティングシステム（以下「ＯＳ」と呼ぶ：不図示）、アプリケーション１１１、デバイスドライバ１１２、仮想化制御部１１３および通信制御部１１４が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリ１０４に読み出されて、ＣＰＵ１０１の制御に従い動作する。
【００１８】
アプリケーション１１１は、デバイスドライバ１１２に対してデータ入出力要求を指示することにより、デバイス制御装置２００に接続された外部デバイス３００を制御するためのソフトウェアである。
【００１９】
デバイスドライバ１１２は、外部デバイス３００を制御するための機能部である。ＯＳまたはアプリケーション１１１からのデータ入出力要求を、外部デバイス３００に応じたデータ形式のデータ（以下「制御コマンド」と呼ぶ）に変換して、当該制御コマンドを仮想化制御部１１３に送る。さらに、デバイスドライバ１１２は制御コマンドに対する応答をアプリケーション１１１に通知する。このデバイスドライバ１１２は一般に、外部デバイス３００を製造したメーカーによって提供されるソフトウェアであって、情報処理装置１００は各デバイスに対応したデバイスドライバ１１２によって外部デバイス３００を制御することができる。
【００２０】
仮想化制御部１１３は、デバイスドライバ１１２から送られた制御コマンド（つまり、データ入出力要求）をＵＳＢデータ形式に準拠したパケットデータ（以下「ＵＳＢデータ」と呼ぶ）に変換し、通信制御部１１４に送る。また、仮想化制御部１１３は通信制御部１１４から送られてくるＵＳＢデータを制御コマンドと同様のデータ形式に変換してデバイスドライバ１１２に送る。
【００２１】
さらに、仮想化制御部１１３は、外部デバイス３００に対するデータ送受信要求に対して、外部デバイス３００が情報処理装置１００に直接的に接続（ローカル接続）されている際と同様の振る舞いをシミュレートする機能（以下「仮想化制御機能」と呼ぶ）を備えている。この仮想化制御機能により、情報処理装置１００は外部デバイス３００の接続状態が、外部デバイス３００をローカル接続した場合と同一の状態であると認識してデータの送受信を行うことができる。なお、仮想化制御部１１３が有する仮想化制御機能によって、情報処理装置１００がローカル接続した場合と同一の状態であると認識した外部デバイス３００を「仮想デバイス」と呼ぶ。
【００２２】
通信制御部１１４は、仮想化制御部１１３から送られるＵＳＢデータとネットワーク（ＬＡＮおよびＷＡＮ）を介してデバイス制御装置２００と通信する際のネットワークパケットとの変換処理を行い、デバイス制御装置２００と情報処理装置１００の間でデータ送受信の制御を行う。また、通信制御部１１４は、仮想化制御部１１３を介してアプリケーション１１１またはデバイスドライバ１１２から送られるデータ送受信要求に応じて、
デバイス制御装置２００とのセッション（接続）を開始し、データの送受信が完了すると、セッションを終了（切断）する。なお、情報処理装置１００とデバイス制御装置２００との間のセッションは、情報処理装置１００が仮想化制御する外部デバイス３００の数だけ生成される。
【００２３】
＜デバイス制御装置２００の構成＞
デバイス制御装置２００は、例えば、プリンタまたは複合機等の周辺機器であって、ハードウェア構成として、ＣＰＵ２０１、入力部２０２、表示部２０３、メモリ２０４、通信部２０５、および、記憶部２１０を備えている。
【００２４】
ＣＰＵ２０１はデバイス制御装置２００全体の制御を司る。入力部２０２は、例えば、操作ボタン、テンキーを備えている。表示部２０３として、例えば、液晶モニタが用いられる。メモリ２０４はＲＡＭおよびＲＯＭ等である。
【００２５】
通信部２０５はネットワークに接続するに接続するためのインターフェースであって、情報処理装置１００とデータ送受信を行う。
【００２６】
記憶部２１０には、ソフトウェアであるＯＳ（不図示）、通信制御部２１１、仮想化制御部２１２、デバイス制御部２１３、電源供給制御部２１４、およびデバイス状態管理部２１５が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリ２０４に読み出されて、ＣＰＵ２０１の制御に従い動作する。
【００２７】
通信制御部２１１は、ＯＳの制御に従ってネットワーク経由で接続されている情報処理装置１００との間のセッション（接続）の開始および終了を制御する。
【００２８】
また、通信制御部２１１は、仮想化制御部２１２から送られるＵＳＢデータとＬＡＮおよびＷＡＮなどのネットワークを介して情報処理装置１００と通信する際のネットワークパケットとの変換処理を行い、デバイス制御装置２００と情報処理装置１００の間でデータ送受信の制御を行う。
【００２９】
仮想化制御部２１２は、外部デバイス３００があたかも情報処理装置１００に直接的に接続（ローカル接続）されているかのように情報処理装置１００へ認識させて制御できるようにするため、情報処理装置１００からのデータ送受信の制御要求に従って（連動して）デバイス制御部２１３の制御を行う。
【００３０】
デバイス制御部２１３は、仮想化制御部２１２の制御に従い、自装置に接続された外部デバイス３００を制御する。
【００３１】
電源供給制御部２１４は、デバイス制御部２１３と連携して、デバイス制御装置２００に接続された外部デバイス３００のバス接続状態の監視、および、バス電源の供給（電源オン）、停止（電源オフ）を制御する。
【００３２】
デバイス状態管理部２１５は、デバイス制御装置２００に接続された外部デバイス３００に関する情報（後述するデバイス状態管理情報２１６）を認識・管理する。
【００３３】
＜外部デバイス３００の構成＞
外部デバイス３００は、個体識別情報３０１および通信Ｉ／Ｆ３０２を備えており、デバイス制御装置２００にＵＳＢインターフェースによって外付けで接続されている。外部デバイス３００の種類によっては、省電力制御部３０３を備えている。
【００３４】
個体識別情報３０１は、外部デバイス３００を識別するための情報であり、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーＩＤ（ＶＩＤ）、機種を識別するために機種毎に割り当てられた製品ＩＤ（ＰＩＤ）、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。
【００３５】
通信Ｉ／Ｆ３０２は、デバイス制御装置２００と通信を行うための機能部である。
【００３６】
省電力制御部３０３は、外部デバイス３００の省電力モード（省電力機能）を制御する。デバイス制御装置２００から省電力モードに設定する制御要求（以下、省電力設定要求）を受信した場合、外部デバイス３００を省電力モードに移行する。デバイス制御装置２００から省電力モードを解除する制御要求（以下、省電力解除要求）を受信した場合、外部デバイス３００の省電力モードを解除する。なお、省電力モードは、外部デバイス３００の未使用時における待機電力の消費を抑制するモードである。
【００３７】
なお、外部デバイス３００は、省電力制御部３０３を備えていない（省電力モードをサポートしていない）場合、デバイス制御装置２００からの省電力設定要求を受信しても何も行わない。
【００３８】
＜デバイス状態管理情報２１６について＞
次に、デバイス制御装置２００が有するデバイス状態管理情報２１６について説明する。
【００３９】
デバイス制御装置２００は、外部デバイス３００のバス電源供給の状態を含む外部デバイス３００に関する情報（デバイス情報）をデバイス制御装置２００から取得し、デバイス状態管理情報２１６に保持(記憶)・管理する。
【００４０】
図２は、図１に示すデバイス状態管理情報２１６の一例を示す図である。デバイス状態管理情報２１６は、デバイス名、ベンダーＩＤ、製品ＩＤ、シリアル番号、仮想化制御状態、省電力状態から構成されている。
【００４１】
デバイス名は、デバイス制御装置２００に接続された外部デバイス３００の名称を示し、主にＵＳＢディスクリプタ情報から取得されるデバイス名称である。なお、デバイス名はＵＳＢディスクリプタ情報から取得するだけでなく、外部デバイス３００を識別できるような情報であればよい。
【００４２】
ベンダーＩＤ、製品ＩＤ、シリアル番号は、前述のとおりである。
【００４３】
仮想化制御状態は、仮想化制御機能の使用状況を示す情報である。情報処理装置１００によって外部デバイス３００の仮想化制御を開始しているときは「開始」となり、外部デバイス３００の仮想化制御を終了しているときは「終了」となる。なお、図２の例示では、外部デバイスＡ、外部デバイスＢ、および外部デバイスＤは仮想化制御の「開始」状態であり、外部デバイスＣと外部デバイスＥは仮想化制御の「終了」状態である。
【００４４】
省電力状態は、デバイス制御装置２００における外部デバイス３００に対する省電力制御の状態を示す情報である。外部デバイス３００を接続したポートのバス電源を供給していない場合は「バス電源停止」となる。外部デバイス３００を接続したポートのバス電源を供給していて、かつ、外部デバイスを省電力モードに設定していない場合は「稼働中」となる。外部デバイス３００を接続したポートのバス電源を供給していて、かつ、外部デバイスを省電力モードに設定している場合は「省電力モード」となる。なお、図２の例示では、外部デバイスＡは「稼働中」の状態であり、外部デバイスＢと外部デバイスＣは「バス電源停止」の状態であり、外部デバイスＤと外部デバイスＥは「省電力モード」の状態である。
【００４５】
＜デバイス制御装置２００における外部デバイス３００接続時の制御＞
図３は、図１に示すデバイス制御装置２００における外部デバイス３００接続時の制御の一例を示すフローチャートである。
【００４６】
デバイス制御装置２００の電源投入時、電源供給制御部２１４は、外部デバイス３００の全接続ポートに対してバスの電源供給を開始する（ステップＳ１０１）。なお、デバイス制御装置２００の接続ポートに外部デバイス３００が接続されていなくとも本処理を行う。
【００４７】
デバイス制御装置２００は外部デバイス３００の接続を検知したか判断する（ステップＳ１０２）。ここで、外部デバイス３００の接続を検知しない場合（ステップＳ１０２でＮｏ）、外部デバイス３００の接続を検知するまで待機する（ステップＳ１０２を繰り返す）。
【００４８】
外部デバイス３００の接続を検知した場合（ステップＳ１０２でＹｅｓ）、外部デバイス３００に関する情報（デバイス名、ベンダーＩＤ、製品ＩＤ、シリアル番号）を取得する。その後、デバイス状態管理部２１５は、取得した外部デバイス３００に関する情報、上述した仮想化制御状態および省電力状態をデバイス状態管理情報２１６に追加する（ステップＳ１０３）。
【００４９】
デバイス制御装置２００は、メモリなどを参照して後述する情報処理装置通知機能の設定を確認する（ステップＳ１０４）。情報処理装置通知機能がオンの場合（ステップＳ１０４でＹｅｓ）は、情報処理装置１００に接続要求を通知する（ステップＳ１０５）。また、情報処理装置通知機能がオフの場合（ステップＳ１０４でＮｏ）は、ステップＳ１０６に進む。
【００５０】
情報処理装置通知機能とは、デバイス制御装置２００のデバイス制御部２１３が情報処理装置１００に対して外部デバイス３００の接続要求または接続切断要求を通知する機能である。デバイス制御部２１３が外部デバイス３００の接続を検知した際に、接続要求を通知し、外部デバイス３００の接続切断を検知した際に、接続切断要求を通知する。
【００５１】
情報処理装置１００は、デバイス制御装置２００から接続要求の通知を受信すると、入力部１０２におけるユーザ操作などを介さずに外部デバイス３００の仮想化制御を開始する。また、デバイス制御装置２００から外部デバイス３００の接続切断要求を受信した場合、外部デバイス３００の仮想化制御を停止する。
【００５２】
また、情報処理装置１００はデバイス制御装置２００に対して情報処理装置通知機能に関する有効（オン）または無効（オフ）の設定を行うことができる。
【００５３】
デバイス制御装置２００のデバイス状態管理部２１５は、デバイス状態管理情報２１６を参照し、外部デバイス３００の省電力優先設定を確認する（ステップＳ１０６）。
【００５４】
省電力優先設定とは、外部デバイス３００の省電力モードを優先するか（省電力優先設定がオン）、あるいは、外部デバイス３００が接続されているポートのバス電源制御を優先するか（省電力優先設定がオフ）の設定である。省電力優先設定は、情報処理装置１００、デバイス制御装置２００の両装置から設定することができる。
【００５５】
なお、電源供給制御部２１４は、外部デバイス３００が接続されているポートのバス電源供給を停止した場合、デバイス制御装置２００から外部デバイス３００が抜去された（物理的な接続の切断が行われた）としても外部デバイス３００の接続切断を検知しない。これは、情報処理装置１００が外部デバイス３００に対して仮想化制御を開始していないためである。
【００５６】
デバイス制御装置２００は、省電力モードに設定した外部デバイス３００がデバイス制御装置２００から物理的に接続切断された場合、外部デバイス３００の物理的な接続切断を検知できる。しかし、外部デバイス３００の接続ポートへの電源供給は必要なため、電力消費の抑制度合は小さい。また、外部デバイス３００の種類によっては省電力モードをサポートしていない（省電力制御部３０３を備えていない）ことがあり電力消費を抑制できないことがある。
【００５７】
従って、本実施形態では、省電力モードを優先するか否かの設定を設け、使用する外部デバイス３００や使用環境によって、省電力モードの設定有無を切り替えることができるようにしている。
【００５８】
ステップＳ１０６の説明に戻る。デバイス制御装置２００のデバイス状態管理部２１５は、外部デバイス３００の省電力優先設定がオンである場合（ステップＳ１０６でＹｅｓ）、デバイス制御部２１３は、外部デバイス３００に省電力設定要求を通知する（ステップＳ１０７）。
【００５９】
デバイス制御装置２００は、外部デバイス３００から省電力設定応答を受信する（ステップＳ１０８）。なお、デバイス制御装置２００は、外部デバイス３００の省電力設定応答を受信しない場合（ステップＳ１０８でＮｏ）、受信するまで待機する（ステップＳ１０８を繰り返す）。
【００６０】
一方、デバイス制御装置２００は、外部デバイス３００から省電力設定応答を受信した場合（ステップＳ１０８でＹｅｓ）、デバイス状態管理部２１５によってデバイス状態管理情報２１６における該当の外部デバイス３００の省電力状態に「省電力モード」を記憶する（ステップＳ１０９）。その後、本制御フローを終了する。
【００６１】
ステップＳ１０６において、デバイス制御装置２００のデバイス状態管理部２１５は、外部デバイス３００の省電力優先設定がオフであると判断した場合（ステップＳ１０６でＮｏ）、電源供給制御部２１４は、外部デバイス３００が接続されているポートのバス電源供給を停止する（ステップＳ１１１）。
【００６２】
デバイス制御装置２００は、電源供給制御部２１４によって外部デバイス３００への電源供給を停止した後、外部デバイス３００の物理的な接続の切断を検知する（ステップＳ１１２）。なお、デバイス制御装置２００は、外部デバイス３００の物理的な接続を検知しない場合（ステップＳ１１２でＮｏ）、外部デバイス３００の物理的な接続を検知するまで待機する（ステップＳ１１２を繰り返す）。
【００６３】
デバイス制御装置２００は、外部デバイス３００の接続切断を検知した場合（ステップＳ１１２でＹｅｓ）、デバイス状態管理部２１５によってデバイス状態管理情報２１６における該当の外部デバイス３００の省電力状態を「バス電源停止」に変更する（ステップＳ１１３）。その後、本制御フローを終了する。
【００６４】
＜デバイス制御装置２００における仮想接続開始時の制御＞
図４は、図１に示すデバイス制御装置２００における仮想化制御開始時の制御の一例を示すフローチャートである。
【００６５】
デバイス制御装置２００は、情報処理装置１００における外部デバイス３００の仮想化制御の開始を検知したか判断する（ステップＳ２０１）。なお、デバイス制御装置２００は、外部デバイス３００の仮想化制御の開始を検知しない場合（ステップＳ２０１でＮｏ）、検知するまで待機する（ステップＳ２０１を繰り返す）。
【００６６】
デバイス制御装置２００は、情報処理装置１００から外部デバイス３００の仮想化制御要求を受信し、情報処理装置１００による外部デバイス３００の仮想化制御の開始を検知した場合（ステップＳ２０１でＹｅｓ）、ステップＳ２０２に進む。
【００６７】
デバイス制御装置２００は、デバイス状態管理情報２１６を参照し、外部デバイス３００の省電力優先設定を確認する（ステップＳ２０２）。
【００６８】
デバイス制御装置２００は、外部デバイス３００の省電力優先設定がオンの場合（ステップＳ２０２でＹｅｓ）、該当の外部デバイス３００に対して省電力解除要求を送信する（ステップＳ２０３）。なお、情報処理装置１００からデバイス制御装置２００を介して外部デバイス３００の仮想化制御を開始するには外部デバイス３００の省電力モード状態を解除する必要がある。そこで、デバイス制御装置２００は、外部デバイス３００に対して省電力解除要求を送信する。
【００６９】
デバイス制御装置２００は、外部デバイス３００が省電力モードをサポート（省電力制御部３０３）している場合、外部デバイス３００から省電力解除応答を受信する（ステップＳ２０４）。なお、デバイス制御装置２００は、外部デバイス３００から省電力解除応答を受信しない場合（ステップＳ２０４でＮｏ）、受信するまで待機する（ステップＳ２０４を繰り返す）。
【００７０】
デバイス制御装置２００は、外部デバイス３００から省電力解除応答を受信した場合（ステップＳ２０４でＹｅｓ）、ステップＳ２０５へ進む。デバイス状態管理部２１５は、デバイス状態管理情報２１６の省電力状態を「稼働中」に、仮想化制御状態を「接続中」にそれぞれ更新して記憶する（ステップＳ２０５）。
【００７１】
デバイス制御装置２００の仮想化制御部２１２は、通信制御部２１１を介して情報処理装置１００に仮想化制御の開始応答を送信する（ステップＳ２０６）。ステップＳ２０６の処理を行った後、本制御フローを終了する。
【００７２】
一方、デバイス制御装置２００は、外部デバイス３００の省電力優先設定がオフの場合（ステップＳ２０２でＮｏ）、電源供給制御部２１４によって外部デバイス３００が接続されているポートのバス電源供給を開始する（ステップＳ２１１）。
【００７３】
デバイス制御部２１３は、外部デバイス３００の接続を検知する（ステップＳ２１２）。なお、デバイス制御装置２００は、外部デバイス３００の接続を検知しない場合（ステップＳ２１２でＮｏ）、外部デバイス３００の接続を検知するまで待機する（ステップＳ２１２を繰り返す）。
【００７４】
デバイス制御部２１３は、外部デバイス３００の接続を検知した場合（ステップＳ２１２でＹｅｓ）、デバイス状態管理部２１５によってデバイス状態管理情報２１６の省電力状態を「稼働中」に、仮想化制御状態を「接続中」にそれぞれ更新して記憶する（ステップＳ２０５）。
【００７５】
デバイス制御装置２００の仮想化制御部２１２は、通信制御部２１１を介して情報処理装置１００に仮想化制御の開始応答を送信する（ステップＳ２０６）。ステップＳ２０６の処理を行った後、本制御フローを終了する。
【００７６】
＜デバイス制御装置２００における仮想化制御終了時の制御＞
図５は、図１に示すデバイス制御装置２００における仮想化制御終了時の制御の一例を示すフローチャートである。
【００７７】
デバイス制御装置２００は、情報処理装置１００における外部デバイス３００の仮想化制御の終了を検知したか判断する（ステップＳ３０１）。なお、デバイス制御装置２００は、情報処理装置１００における外部デバイス３００の仮想化制御の終了を検知しない場合（ステップＳ３０１でＮｏ）、仮想化制御の終了を検知するまで待機する（ステップＳ３０１を繰り返す）。
【００７８】
デバイス制御装置２００は、外部デバイス３００の省電力優先設定を確認する（ステップＳ３０２）。
【００７９】
デバイス制御装置２００は、外部デバイス３００が省電力優先設定である場合（ステップＳ３０２でＹｅｓ）、デバイス制御部２１３は、外部デバイス３００に省電力設定要求を通知する（ステップＳ３０３）。
【００８０】
デバイス制御装置２００は、外部デバイス３００から省電力設定応答を受信する（ステップＳ３０４）。なお、デバイス制御装置２００は、外部デバイス３００の省電力設定応答を受信しない場合（ステップＳ３０４でＮｏ）、受信するまで待機する（ステップＳ３０４を繰り返す）。
【００８１】
デバイス制御装置２００は、外部デバイスから省電力設定応答を受信した場合（ステップＳ３０４でＹｅｓ）、デバイス状態管理部２１５によってデバイス状態管理情報２１６の省電力状態に「省電力モード」を更新・記憶する（ステップＳ３０５）。
【００８２】
デバイス制御装置２００は、情報処理装置１００に対して、仮想化制御の終了に関する応答を送信する（ステップＳ３０６）。ステップＳ３０６の処理を行った後、本制御フローを終了する
【００８３】
一方、デバイス制御装置２００のデバイス状態管理部２１５は、省電力優先設定がオフの場合（ステップＳ３０２でＮｏ）、電源供給制御部２１４によって外部デバイス３００が接続されているポートのバス電源供給を停止する（ステップＳ３１１）。
【００８４】
電源供給制御部２１４は外部デバイス３００が接続されているポートのバス電源供給を停止した後、デバイス制御装置２００は外部デバイス３００の物理的な接続の切断を検知する（ステップＳ３１２）。なお、デバイス制御装置２００は、外部デバイス３００の接続切断を検知しない場合（ステップＳ３１２でＮｏ）、外部デバイス３００の物理的な接続切断を検知するまで待機する（ステップＳ３１２を繰り返す）。
【００８５】
デバイス制御装置２００は、外部デバイス３００の物理的な接続の切断を検知した場合（ステップＳ３１２でＹｅｓ）、デバイス状態管理部２１５によってデバイス状態管理情報２１６の省電力状態に「バス電源停止」を更新・記憶する（ステップＳ３０５）。
【００８６】
デバイス制御装置２００は、情報処理装置１００に対して、仮想化制御の終了に関する応答を送信する（ステップＳ３０６）。ステップＳ３０６の処理を行った後、本制御フローを終了する
【００８７】
＜デバイス制御装置２００における外部デバイス３００の接続切断時の制御＞
図６は、図１に示すデバイス制御装置２００における外部デバイス３００の接続切断時の制御の一例を示すフローチャートである。
【００８８】
デバイス制御装置２００は、外部デバイス３００の接続切断を検知したか判断する（ステップＳ４０１）。なお、デバイス制御装置２００は、外部デバイス３００の接続切断を検知しない場合（ステップＳ４０１でＮｏ）、検知するまで待機する（ステップＳ４０１を繰り返す）。
【００８９】
デバイス制御装置２００は、外部デバイス３００の接続切断を検知した場合（ステップＳ４０１でＹｅｓ）、デバイス状態管理部２１５によってデバイス状態管理情報２１６から該当の外部デバイス３００に関する情報を削除する（ステップＳ４０２）。
【００９０】
デバイス制御装置２００は、情報処理装置通知機能の設定状態を確認する（ステップＳ４０３）。
【００９１】
デバイス制御装置２００は、情報処理装置通知機能がオンの場合（ステップＳ４０３でＹｅｓ）、情報処理装置１００に対して、外部デバイス３００のプラグアウト（接続切断）を通知する（ステップＳ４０４）。ステップＳ４０４の処理を行った後、本制御フローを終了する。
【００９２】
一方、デバイス制御装置２００は、情報処理装置通知機能がオフの場合（ステップＳ４０３でＮｏ）、情報処理装置１００に対して、外部デバイス３００のプラグアウト（接続切断）の通知を行わず、本制御フローを終了する。
【００９３】
＜外部デバイス３００の電源制御シーケンス＞
図７は、デバイス制御装置２００による外部デバイス３００に対する電源供給制御について説明するためのシーケンス図である。なお、デバイス制御装置２００において、上述した情報処理装置通知機能をオンに設定した場合について説明する。
【００９４】
ユーザによって、デバイス制御装置２００の電源が投入されると（ステップＳ５０１）、デバイス制御部２１３は、電源供給制御部２１４に電源供給開始命令を送信する（ステップＳ５０２）。
【００９５】
電源供給制御部２１４は、デバイス制御装置２００が備える全接続ポートにバス電源の供給を開始し（ステップＳ５０３）、外部デバイス３００に対して電源供給を開始する（ステップＳ５０４）。その後、電源供給制御部２１４は、デバイス制御部２１３に対して、電源供給開始通知を送信する（ステップＳ５０５）。
【００９６】
ユーザによって、デバイス制御装置２００に外部デバイス３００が物理的に接続されると（ステップＳ５１１）、デバイス制御部２１３は、外部デバイス３００の接続を検知し（ステップＳ５１２）、デバイス状態管理部２１５および仮想化制御部２１２に外部デバイス３００への電源供給開始および接続通知を送信する（ステップＳ５１３、ステップＳ５１４）。
【００９７】
デバイス状態管理部２１５は、デバイス状態管理情報２１６にデバイス制御装置２００に接続された外部デバイス３００のデバイス情報を記憶する（ステップＳ５１５）。
【００９８】
仮想化制御部２１２は、通信制御部２１１を介して情報処理装置１００の仮想化制御部１１３に接続通知を送信する（ステップＳ５１６）。
【００９９】
仮想化制御部１１３は、ステップＳ５１６で受信した接続通知をデバイスドライバ１１２に送信する（ステップＳ５１７）。
【０１００】
デバイスドライバ１１２は、ステップＳ５１７で受信した接続通知をアプリケーション１１１に送信する（ステップＳ５１８）。
【０１０１】
次に、デバイス制御装置２００は外部デバイス３００に関する接続通知を情報処理装置１００に送信後、省電力化のために、外部デバイス３００に対する電源供給を停止することについて説明する。
【０１０２】
デバイス制御部２１３は、電源供給制御部２１４に電源供給停止命令を送信する（ステップＳ５２１）。
【０１０３】
電源供給制御部２１４は、ステップＳ５２１で送信された電源供給停止命令の受信に応じて、外部デバイス３００が接続されているポートのバス電源供給を停止する（ステップＳ５２２）。これにより、外部デバイス３００は、デバイス制御装置２００から抜去された時（物理的に接続されていない状態を「デバイス接続切断状態」と呼ぶ）と同一の状態となる。その後、電源供給制御部２１４は、デバイス制御部２１３に電源供給停止通知を送信する（ステップＳ５２３）。
【０１０４】
ステップＳ５２２において、外部デバイス３００に対する電源供給停止に伴い、デバイス制御部２１３は、外部デバイス３００が物理的に接続された状態で、かつ、外部デバイス３００の接続切断（プラグアウト）を検知する。その後、デバイス制御部２１３は、仮想化制御部２１２およびデバイス状態管理部２１５に電源供給停止および外部デバイス３００の接続切断に関する通知を送信する（ステップＳ５２４、ステップＳ５２５）。
【０１０５】
デバイス状態管理部２１５は、外部デバイス３００のデバイス状態管理情報２１６の省電力状態を「バス電源停止」に更新して記憶する（ステップＳ５２６）。
【０１０６】
なお、デバイス制御装置２００は、情報処理装置通知機能がオンであっても、外部デバイス３００の接続切断要求を情報処理装置１００に送信しない。これは、「バス電源停止」状態においては、情報処理装置１００が外部デバイス３００に対して仮想化制御を開始していないためである。
【０１０７】
続いて、情報処理装置１００による外部デバイス３００の仮想化制御の開始について説明する。
【０１０８】
入力部１０２を介したユーザ操作により、アプリケーション１１１は、仮想化制御を行う外部デバイス３００を選択し（ステップＳ５３１）、デバイスドライバ１１２に対して電源供給開始を含む仮想化開始要求を送信する（ステップＳ５３２）。
【０１０９】
デバイスドライバ１１２は、ステップＳ１０２でアプリケーション１１１から送信された電源供給開始を含む仮想化開始要求に基づいて、電源供給開始を含む仮想化開始命令を生成し、仮想化制御部１１３に送信する（ステップＳ５３３）。
【０１１０】
仮想化制御部１１３は、通信制御部１１４を介してデバイス制御装置２００の仮想化制御部２１２に対して電源供給開始を含む仮想化開始命令を送信する（ステップＳ５３４）。
【０１１１】
仮想化制御部２１２は、ステップＳ５３４で情報処理装置１００から送信された電源供給開始を含む仮想化開始命令を受信し、デバイス制御部２１３に対して外部デバイス３００の電源供給開始命令を行う（ステップＳ５３５）。
【０１１２】
デバイス制御部２１３は、外部デバイス３００の電源供給開始命令により通知されたバスの接続ポート番号を指定して電源供給開始命令を電源供給制御部２１４に送信する（ステップＳ５３６）。
【０１１３】
電源供給制御部２１４は、指定された接続ポート番号に対してバスの電源供給を開始し（ステップＳ５３７）、外部デバイス３００に電源を供給する（ステップＳ５３８）。これにより、外部デバイス３００は、物理的に挿抜されなくとも、ＵＳＢインターフェースを介してデバイス制御装置２００に新たに挿入された時と同様に、物理的に接続された状態となる。
【０１１４】
電源供給制御部２１４は、デバイス制御部２１３に電源供給開始通知を送信する（ステップＳ５４１）
【０１１５】
デバイス制御部２１３は、電源供給制御部２１４から送信された電源供給開始通知を受信する。その後、デバイス制御部２１３は、外部デバイス３００への電源供給後に外部デバイス３００の接続を検知した場合、外部デバイス３００への電源供給開始および外部デバイス３００の物理的な接続（以下、デバイス接続通知）をデバイス状態管理部２１５および仮想化制御部２１２に通知する（ステップＳ５４２、ステップＳ５４３）。
【０１１６】
仮想化制御部２１２は、外部デバイス３００のデバイス接続通知の受信に応じて、外部デバイス３００の仮想化制御を開始する（ステップＳ５４４）。さらに、デバイス状態管理部２１５に仮想化制御の開始を通知する。
【０１１７】
デバイス状態管理部２１５は、外部デバイス３００のデバイス状態管理情報２１６の省電力状態を「稼働中」に、仮想化制御状態を「開始」にそれぞれ更新して記憶する（ステップＳ５４５）
【０１１８】
仮想化制御部２１２は、通信制御部２１１を介して情報処理装置１００の仮想化制御部１１３に対して電源供給開始を含む仮想化開始通知を送信する（ステップＳ５４６）。
【０１１９】
仮想化制御部１１３は、デバイスドライバ１１２に対して外部デバイス３００の仮想化開始通知を送信する（ステップＳ５４７）。
【０１２０】
デバイスドライバ１１２は、アプリケーション１１１に対して外部デバイス３００の仮想化開始通知を送信する（ステップＳ５４８）。このとき、情報処理装置１００は、外部デバイス３００が情報処理装置１００自身にあたかも物理的に接続されている（ローカル接続されている）かのように認識可能になる。
【０１２１】
次に、情報処理装置１００がデバイス制御装置２００を介して外部デバイス３００を制御する場合について説明する。
【０１２２】
入力部１０２を介したユーザ操作により、アプリケーション１１１は、制御対象とする外部デバイス３００を選択し（ステップＳ５５１）、外部デバイス３００に対する制御要求をデバイスドライバ１１２に対して送信する（ステップＳ５５２）。
【０１２３】
デバイスドライバ１１２は、ステップＳ５５２でアプリケーション１１１から送信された制御要求に基づいて、外部デバイス３００の制御命令を生成し、仮想化制御部１１３に送信する（ステップＳ５５３）。
【０１２４】
仮想化制御部１１３は、デバイスドライバ１１２から送信された制御命令を受信し、デバイス制御装置２００の仮想化制御部２１２に送信する（ステップＳ５５４）。
【０１２５】
仮想化制御部２１２は、仮想化制御部１１３から送信された制御命令を受信し、デバイス制御部２１３に送信する（ステップＳ５５５）。
【０１２６】
デバイス制御部２１３は、仮想化制御部２１２から送信された制御命令を受信し、外部デバイス３００に送信する（ステップＳ５５６）。
【０１２７】
外部デバイス３００は、デバイス制御部２１３から送信された制御命令を受信し、その制御命令に応じた制御を実行し（ステップＳ５５７）、デバイス制御部２１３に制御結果を応答する（ステップＳ５６１）。
【０１２８】
デバイス制御部２１３は、外部デバイス３００の制御結果を受信し、仮想化制御部２１２に送信する（ステップＳ５６２）。
【０１２９】
仮想化制御部２１２は、外部デバイス３００の制御結果を受信し、情報処理装置１００の仮想化制御部１１３に送信する（ステップＳ５６３）。
【０１３０】
仮想化制御部１１３は、外部デバイス３００の制御結果を受信し、デバイスドライバ１１２に送信する（ステップＳ５６４）。
【０１３１】
デバイスドライバ１１２は、外部デバイス３００の制御結果を受信し、アプリケーション１１１に送信する（ステップＳ５６５）。
【０１３２】
ここからは、情報処理装置１００による外部デバイス３００の仮想化制御の終了について説明する。
【０１３３】
まず、入力部１０２を介したユーザ操作により、アプリケーション１１１は、仮想化制御を終了させる外部デバイス３００を選択する（ステップＳ５７１）。例えば、情報処理装置１００の表示部１０３に操作画面を表示させ、ユーザ操作によって、仮想化制御の終了を要求する外部デバイス３００を選択する。
【０１３４】
アプリケーション１１１は、デバイスドライバ１１２に対して外部デバイス３００への電源供給停止を含む仮想化終了要求を送信する（ステップＳ５７２）。
【０１３５】
デバイスドライバ１１２は、仮想化制御部１１３に対して、ステップＳ１０２でアプリケーション１１１から送信された外部デバイス３００への電源供給停止を含む仮想化終了要求に基づいて制御コマンド（電源供給停止を含む仮想化終了命令）を生成し、送信する（ステップＳ５７３）。
【０１３６】
仮想化制御部１１３は、通信制御部１１４を介してデバイス制御装置２００の仮想化制御部２１２に対して電源供給停止を含む仮想化終了命令を送信する（ステップＳ５７４）。
【０１３７】
仮想化制御部２１２は、ステップＳ５７４で情報処理装置１００から送信された電源供給停止を含む仮想化終了命令を受信し、デバイス制御部２１３に対して外部デバイス３００に対する電源供給停止命令を送信する（ステップＳ５７５）。
【０１３８】
デバイス制御部２１３は、電源供給制御部２１４に対して外部デバイス３００の接続ポート番号を指定して電源供給停止命令を送信する（ステップＳ５７６）。
【０１３９】
電源供給制御部２１４は、電源供給停止命令によって指定された接続ポート番号に対してバスの電源供給を停止する（ステップＳ５７７）。これにより、外部デバイス３００は、デバイス制御装置２００から抜去された時（物理的に接続されていない状態「デバイス接続切断状態」）と同一の状態となる。
【０１４０】
電源供給制御部２１４は、ステップＳ５７７により外部デバイス３００のデバイス接続切断状態と同一の状態を検知した場合、デバイス制御部２１３に電源供給停止を通知する（ステップＳ５８１）。
【０１４１】
デバイス制御部２１３は、電源供給制御部２１４から外部デバイス３００のデバイス接続切断状態および電源供給停止の通知を受信すると、仮想化制御部２１２およびデバイス状態管理部２１５に対して外部デバイス３００の電源供給停止およびデバイス接続切断を通知する（ステップＳ５８２、ステップＳ５８３）。
【０１４２】
仮想化制御部２１２は、外部デバイス３００のデバイス接続切断状態および電源供給停止の通知に応じて、外部デバイス３００の仮想化制御を終了する（ステップＳ５８４）。さらに、デバイス状態管理部２１５に仮想化制御の終了を通知する。
【０１４３】
デバイス状態管理部２１５は、仮想化制御部２１２による外部デバイス３００の仮想化制御の終了、および、電源供給制御部２１４による外部デバイス３００に対する電源供給停止を受けて、デバイス状態管理情報２１６を更新する（ステップＳ５８５）。
【０１４４】
その後、仮想化制御部２１２は、デバイス制御装置２００の通信制御部２１１を介して情報処理装置１００の仮想化制御部１１３に対して外部デバイス３００への電源供給停止を含む仮想化終了の通知を送信する（ステップＳ５８６）。
【０１４５】
仮想化制御部１１３は、デバイスドライバ１１２に対して外部デバイス３００の仮想化終了の通知を送信する（ステップＳ５８７）。
【０１４６】
デバイスドライバ１１２は、アプリケーション１１１に対して外部デバイス３００の仮想化終了の通知を行う（ステップＳ５８８）。このとき、情報処理装置１００は、情報処理装置１００自身にあたかも物理的に接続されている（ローカル接続されている）かのように認識している外部デバイス３００（仮想デバイス）の仮想化制御の終了を検知する。
【０１４７】
なお、ステップＳ５８８以降に、再度、情報処理装置１００から外部デバイス３００を制御する場合、ステップＳ５３１〜ステップＳ５８８の処理を繰り返す。
【０１４８】
また、デバイス制御装置２００は、ステップS５７７において、外部デバイス３００の電源供給停止を行っているため、外部デバイス３００の物理的なリセットを行うことが可能となる。
【０１４９】
これにより、情報処理装置１００の仮想化制御の開始のタイミングでデバイス制御装置２００に接続された外部デバイス３００を初期状態から制御することが可能となる。
【０１５０】
＜外部デバイス３００の省電力制御シーケンス＞
次に、外部デバイス３００が省電力機能（省電力モード）を備えている場合、外部デバイス３００の未使用時に省電力モードを設定することにより、電力消費を抑制する点について説明する。
【０１５１】
図８は、外部デバイス３００が省電力モードを備えている場合にデバイス制御装置２００による電源供給制御について説明するためのシーケンス図である。なお、デバイス制御装置２００において、上述した情報処理装置通知機能をオンに設定した場合について説明する。
【０１５２】
ユーザにより、デバイス制御装置２００の電源が投入されると（ステップＳ６０１）、デバイス制御部２１３は、電源供給制御部２１４に電源供給開始命令を送信する（ステップＳ６０２）。
【０１５３】
電源供給制御部２１４は、デバイス制御装置２００が備える全接続ポートにバス電源の供給を開始し（ステップＳ６０３）、外部デバイス３００に対して電源供給を開始する（ステップＳ６０４）。その後、電源供給制御部２１４は、デバイス制御部２１３に対して、電源供給開始通知を送信する（ステップＳ６０５）。
【０１５４】
ユーザによって、デバイス制御装置２００に外部デバイス３００が物理的に接続されると（ステップＳ６１１）、デバイス制御部２１３は、外部デバイス３００の接続を検知し（ステップＳ６１２）、デバイス状態管理部２１５および仮想化制御部２１２に外部デバイス３００への電源供給開始および接続通知を送信する（ステップＳ６１３、ステップＳ６１４）。なお、ステップＳ６１２において、デバイス制御部２１３は、外部デバイス３００の接続時に外部デバイス３００のデバイス情報を取得し、外部デバイス３００が省電力モード（省電力機能）を備えているか判断する。
【０１５５】
デバイス状態管理部２１５は、デバイス状態管理情報２１６にデバイス制御装置２００に接続された外部デバイス３００のデバイス情報を記憶する（ステップＳ６１５）。
【０１５６】
仮想化制御部２１２は、通信制御部２１１を介して情報処理装置１００の仮想化制御部１１３に接続通知を送信する（ステップＳ６１６）。
【０１５７】
仮想化制御部１１３は、ステップＳ６１６で受信した接続通知をデバイスドライバ１１２に送信する（ステップＳ６１７）。
【０１５８】
デバイスドライバ１１２は、ステップＳ６１７で受信した接続通知をアプリケーション１１１に送信する（ステップＳ６１８）。
【０１５９】
次に、デバイス制御装置２００は省電力設定命令の送信によって外部デバイス３００を省電力モードに設定することについて説明する。
【０１６０】
デバイス制御部２１３は、外部デバイス３００に省電力設定命令を送信する（ステップＳ６２１）。
【０１６１】
外部デバイス３００は、ステップＳ６２１で送信された省電力設定命令の受信に応じて、省電力モードを設定する（ステップＳ６２２）。その後、デバイス制御部２１３に省電力設定通知を送信する（ステップＳ６２３）。
【０１６２】
デバイス制御部２１３は、デバイス状態管理部２１５に省電力設定通知を送信する（ステップＳ６２４）。
【０１６３】
デバイス状態管理部２１５は、外部デバイス３００のデバイス状態管理情報２１６の省電力状態を「省電力モード」に更新して記憶する（ステップＳ６２５）。
【０１６４】
デバイス制御部２１３は、外部デバイス３００の省電力モードの設定移行に応じて、電源供給制御部２１４に電源供給調整命令を送信する（ステップＳ６２６）。なお、ステップＳ６２６の電源供給調整命令は、外部デバイス３００の省電力モード移行に伴い、デバイス制御部２１３が電源供給制御部２１４に対してバス電源の供給量を調整（抑制）するための命令である。
【０１６５】
電源供給制御部２１４は、外部デバイス３００の省電力モードに応じた電源供給量を調整し（ステップＳ６２７）、外部デバイス３００に対して調整（抑制）後の電源供給量に応じて、電源供給を行う（ステップＳ６２８）。
【０１６６】
続いて、情報処理装置１００による外部デバイス３００の仮想化制御の開始について説明する。
【０１６７】
入力部１０２を介したユーザ操作により、アプリケーション１１１は、仮想化制御を行う外部デバイス３００を選択し（ステップＳ６３１）、デバイスドライバ１１２に対して省電力解除を含む仮想化開始要求を送信する（ステップＳ６３２）。
【０１６８】
デバイスドライバ１１２は、ステップＳ６３２でアプリケーション１１１から送信された省電力解除を含む仮想化開始要求に基づいて、省電力解除を含む仮想化開始命令を生成し、仮想化制御部１１３に送信する（ステップＳ６３３）。
【０１６９】
仮想化制御部１１３は、通信制御部１１４を介してデバイス制御装置２００の仮想化制御部２１２に対して省電力解除を含む仮想化開始命令を送信する（ステップＳ６３４）。
【０１７０】
仮想化制御部２１２は、ステップＳ１４４で情報処理装置１００から送信された省電力モード解除を含む仮想化開始命令を受信し、デバイス制御部２１３に対して外部デバイス３００の省電力解除命令を行う（ステップＳ６３５）。
【０１７１】
デバイス制御部２１３は、外部デバイス３００の省電力解除命令の受信に応じて、省電力モードを解除する（ステップＳ６３７）。その後、デバイス制御部２１３に省電力解除通知を送信する（ステップＳ６４１）。
【０１７２】
デバイス制御部２１３は、外部デバイス３００から送信された省電力解除通知を受信すると、仮想化制御部２１２およびデバイス状態管理部２１５に通知する（ステップＳ６４２、ステップＳ６４３）。
【０１７３】
仮想化制御部２１２は、外部デバイス３００の省電力解除通知の受信に応じて、外部デバイス３００の仮想化制御を開始する（ステップＳ６４４）。さらに、デバイス状態管理部２１５に仮想化制御の開始を通知する。
【０１７４】
デバイス状態管理部２１５は、外部デバイス３００のデバイス状態管理情報２１６の省電力状態を「稼働中」に、仮想化制御状態を「開始」にそれぞれ更新して記憶する（ステップＳ６４５）
【０１７５】
仮想化制御部２１２は、通信制御部２１１を介して情報処理装置１００の仮想化制御部１１３に対して仮想化開始通知を送信する（ステップＳ６４６）。
【０１７６】
仮想化制御部１１３は、デバイスドライバ１１２に対して外部デバイス３００の仮想化開始通知を送信する（ステップＳ６４７）。
【０１７７】
デバイスドライバ１１２は、アプリケーション１１１に対して外部デバイス３００の仮想化開始通知を送信する（ステップＳ６４８）。このとき、情報処理装置１００は、外部デバイス３００が情報処理装置１００自身にあたかも物理的に接続されている（ローカル接続されている）かのように認識可能になる。
【０１７８】
デバイス制御部２１３は、ステップＳ６３７における外部デバイス３００の省電力モードの解除に応じて、電源供給制御部２１４に電源供給調整命令を送信する（ステップＳ６５１）。なお、ステップＳ６５１の電源供給調整命令は、外部デバイス３００の省電力モードの解除に伴い、デバイス制御部２１３が電源供給制御部２１４に対してバス電源の供給量を調整（増加）するための命令である。
【０１７９】
電源供給制御部２１４は、外部デバイス３００の省電力モードの解除に応じた電源供給量を調整し（ステップＳ６５２）、外部デバイス３００に対して調整（増加）後の電源供給量に応じて、電源供給を行う（ステップＳ６５３）。
【０１８０】
次に、情報処理装置１００がデバイス制御装置２００を介して外部デバイス３００を制御する場合について説明する。
【０１８１】
入力部１０２を介したユーザ操作により、アプリケーション１１１は、制御対象とする外部デバイス３００を選択し（ステップＳ６６１）、外部デバイス３００に対する制御要求をデバイスドライバ１１２に対して送信する（ステップＳ６６２）。
【０１８２】
デバイスドライバ１１２は、ステップＳ６５２でアプリケーション１１１から送信された制御要求に基づいて、外部デバイス３００の制御命令を生成し、仮想化制御部１１３に送信する（ステップＳ６６３）。
【０１８３】
仮想化制御部１１３は、デバイスドライバ１１２から送信された制御命令を受信し、デバイス制御装置２００の仮想化制御部２１２に送信する（ステップＳ６６４）。
【０１８４】
仮想化制御部２１２は、仮想化制御部１１３から送信された制御命令を受信し、デバイス制御部２１３に送信する（ステップＳ６６５）。
【０１８５】
デバイス制御部２１３は、仮想化制御部２１２から送信された制御命令を受信し、外部デバイス３００に送信する（ステップＳ６６６）。
【０１８６】
外部デバイス３００は、デバイス制御部２１３から送信された制御命令を受信し、その制御命令に応じた制御を実行し（ステップＳ６６７）、デバイス制御部２１３に制御結果を応答する（ステップＳ６７１）。
【０１８７】
デバイス制御部２１３は、外部デバイス３００の制御結果を受信し、仮想化制御部２１２に送信する（ステップＳ６７２）。
【０１８８】
仮想化制御部２１２は、外部デバイス３００の制御結果を受信し、情報処理装置１００の仮想化制御部１１３に送信する（ステップＳ６７３）。
【０１８９】
仮想化制御部１１３は、外部デバイス３００の制御結果を受信し、デバイスドライバ１１２に送信する（ステップＳ６７４）。
【０１９０】
デバイスドライバ１１２は、外部デバイス３００の制御結果を受信し、アプリケーション１１１に送信する（ステップＳ６７５）。
【０１９１】
ここからは、情報処理装置１００による外部デバイス３００の仮想化制御の終了について説明する。
【０１９２】
まず、入力部１０２を介したユーザ操作により、アプリケーション１１１は、仮想化制御を終了させる外部デバイス３００を選択する（ステップＳ６８１）。例えば、情報処理装置１００の表示部１０３に操作画面を表示させ、ユーザ操作によって、仮想化制御の終了を要求する外部デバイス３００を選択する。
【０１９３】
アプリケーション１１１は、デバイスドライバ１１２に対して外部デバイス３００への省電力設定を含む仮想化終了要求を送信する（ステップＳ６８２）。
【０１９４】
デバイスドライバ１１２は、仮想化制御部１１３に対して、ステップＳ１０２でアプリケーション１１１から送信された外部デバイス３００への省電力設定を含む仮想化終了要求に基づいて制御コマンド（省電力設定を含む仮想化終了命令）を生成し、送信する（ステップＳ６８３）
【０１９５】
仮想化制御部１１３は、通信制御部１１４を介してデバイス制御装置２００の仮想化制御部２１２に対して省電力設定を含む仮想化終了命令を送信する（ステップＳ６８４）。
【０１９６】
仮想化制御部２１２は、ステップＳ６７４で情報処理装置１００から送信された省電力設定を含む仮想化終了命令を受信し、デバイス制御部２１３に対して外部デバイス３００に対する省電力設定命令を送信する（ステップＳ６８５）。
【０１９７】
デバイス制御部２１３は、外部デバイス３００に対して省電力設定命令を送信する（ステップＳ６８６）。
【０１９８】
外部デバイス３００は、ステップＳ６８６で送信された省電力設定命令の受信に応じて、省電力モードを設定する（ステップＳ６８７）。その後、デバイス制御部２１３に省電力設定通知を送信する（ステップＳ６９１）。
【０１９９】
デバイス制御部２１３は、外部デバイス３００から省電力設定通知を受信すると、仮想化制御部２１２およびデバイス状態管理部２１５に対して外部デバイス３００の省電力設定通知を送信する（ステップＳ６９２、ステップＳ６９３）。
【０２００】
仮想化制御部２１２は、外部デバイス３００の省電力設定通知の受信に応じて、外部デバイス３００の仮想化制御を終了する（ステップＳ６９４）。さらに、デバイス状態管理部２１５に仮想化制御終了を通知する。
【０２０１】
デバイス状態管理部２１５は、仮想化制御部２１２による外部デバイス３００の仮想化制御の終了、および、外部デバイス３００の省電力設定通知の受信に応じて、デバイス状態管理情報２１６を更新する（ステップＳ６９５）。
【０２０２】
その後、仮想化制御部２１２は、デバイス制御装置２００の通信制御部２１１を介して情報処理装置１００の仮想化制御部１１３に対して外部デバイス３００の仮想化終了の通知を送信する（ステップＳ６９６）。
【０２０３】
仮想化制御部１１３は、デバイスドライバ１１２に対して外部デバイス３００の仮想化終了の通知を送信する（ステップＳ６９７）。
【０２０４】
デバイスドライバ１１２は、アプリケーション１１１に対して外部デバイス３００の仮想化終了の通知を行う（ステップＳ６９８）。このとき、情報処理装置１００は、情報処理装置１００自身にあたかも物理的に接続されている（ローカル接続されている）かのように認識している外部デバイス３００（仮想デバイス）の仮想化制御の終了を検知する。
【０２０５】
デバイス制御部２１３は、外部デバイス３００の省電力モードの設定移行に応じて、電源供給制御部２１４に電源供給調整命令を送信する（ステップＳ７０１）。なお、ステップＳ７０１の電源供給調整命令は、外部デバイス３００の省電力モードの移行に伴い、デバイス制御部２１３が電源供給制御部２１４に対してバス電源の供給量を調整（抑制）するための命令である。
【０２０６】
電源供給制御部２１４は、外部デバイス３００の省電力モードに応じた電源供給量を調整し（ステップＳ７０２）、外部デバイス３００に対して調整（抑制）後の電源供給量に応じて、電源供給を行う（ステップＳ７０３）。
【０２０７】
上述のように、本発明の第１の実施形態によれば、デバイス制御装置２００は、外部デバイス３００の接続時に必要な情報を取得・管理し、外部デバイス３００の未使用時には、接続ポートのバス電源供給を停止することで、デバイス制御装置２００の電力消費を抑制することが可能となる。
【０２０８】
また、外部デバイス３００を省電力モードに設定することにより、デバイス制御システムの電力消費を抑制することが可能となる。
【０２０９】
さらに、デバイス制御装置２００は、仮想化制御の終了時に外部デバイス３００の電源供給を停止することで、外部デバイス３００をリセットして次回使用時に初期状態で動作させることが可能となる。
【０２１０】
以上、本発明について上記の各実施形態に基づいて説明したが、本発明は、これらの実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０２１１】
デバイス制御装置２００は、外部デバイス３００との接続ポートを内蔵する形態で説明したが、デバイス制御装置２００に別体のデバイス分岐装置（例：ＵＳＢハブ、不図示）を接続し、このデバイス分岐装置を介してデバイス制御装置２００と外部デバイス３００とを接続しても良い。
【０２１２】
例えば、上記の実施形態の機能の制御方法として、この制御方法をデバイス制御装置に実行させるようにすればよい。また、上述の実施形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０２１３】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア（プログラムコード）を、ネットワークまたは各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。
【０２１４】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
【０２１５】
また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成してもよい。
【０２１６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
【０２１７】
なお、プログラムコードを供給するため、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤやＤＶＤに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
【符号の説明】
【０２１８】
１００：情報処理装置
１１１：アプリケーション
１１２：デバイスドライバ
１１３：仮想化制御部
１１４：通信制御部
２００：デバイス制御装置
２１１：通信制御部
２１２：仮想化制御部
２１３：デバイス制御部
２１４：電源供給制御部
２１５：デバイス状態管理部
３００：外部デバイス
３０１：固体識別情報
３０２：通信Ｉ／Ｆ
３０３：省電力制御部
【図１】
2018073216.tif 000003
【図２】
2018073216.tif 000004
【図３】
2018073216.tif 000005
【図４】
2018073216.tif 000006
【図５】
2018073216.tif 000007
【図６】
2018073216.tif 000008
【図７】
2018073216.tif 000009
【図８】
2018073216.tif 000010