(57)【要約】      （修正有）【課題】ＵＳＢデバイスの利用において、その利便性ゆえに様々な脅威も想定される。そのために、ＵＳＢデバイスを接続する際の利用管理が重要となる。よって、ＵＳＢデバイスのＵＳＢホスト接続に際し、利便性を損なわない接続の管理方法を実現する。【解決手段】ＵＳＢ接続に対応したデバイスとＵＳＢ接続が可能な情報処理装置であって、前記ＵＳＢ接続をした場合にデバイスドライバを有効化するか否かを示すドライバ情報を管理する管理手段と、前記デバイスが有するデバイス情報を取得するデバイス情報取得手段と、前記ドライバ情報と前記デバイス情報とが対応する際、当該ドライバ情報に対応するデバイスドライバを用いて前記デバイスを制御させるように、前記ドライバのセットアップをＵＳＢコアドライバの制御下にて行う設定手段とを有する。【選択図】図１５
2010191717.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ接続に対応したデバイスとＵＳＢ接続が可能な情報処理装置であって、
前記ＵＳＢ接続をした場合にデバイスドライバを有効化するか否かを示すドライバ情報を管理する管理手段と、
前記デバイスが有するデバイス情報を取得するデバイス情報取得手段と、
前記ドライバ情報と前記デバイス情報とが対応する際、当該ドライバ情報に対応するデバイスドライバを用いて前記デバイスを制御させるように、前記ドライバのセットアップをＵＳＢコアドライバの制御下にて行う設定手段と
を有することを特徴とする情報処理装置。
【請求項２】
接続されるデバイスの種類ごとに、ＵＳＢ接続の有効化または無効化の制御を行うＵＳＢホスト接続制御手段と、
前記ＵＳＢホスト接続制御手段によって有効化された前記デバイスの情報を、ドライバ情報として登録する登録手段と
を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ＵＳＢホスト接続制御手段は、当該情報処理装置が有するＵＳＢの物理インタフェースごとに有効化または無効化する制御が更に可能であり、
前記デバイス情報取得手段は、前記ＵＳＢホスト接続制御手段によって有効化されている前記物理インタフェースに対して前記ＵＳＢ接続が行われた場合、前記デバイスのデバイス情報を取得することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
ＵＳＢ接続に対応したデバイスとＵＳＢ接続が可能な情報処理装置の制御方法であって、
前記情報処理装置の管理手段が、前記ＵＳＢ接続をした場合にデバイスドライバを有効化するか否かを示すドライバ情報を管理する管理工程と、
前記情報処理装置のデバイス情報取得手段が、前記デバイスが有するデバイス情報を取得するデバイス情報取得工程と、
前記情報処理装置の設定手段が、前記ドライバ情報と前記デバイス情報とが対応する際、当該ドライバ情報に対応するデバイスドライバを用いて前記デバイスをさせるように、前記ドライバのセットアップをＵＳＢコアドライバの制御下にて行う設定工程と
を有することを特徴とする制御方法。
【請求項５】
コンピュータを、
ＵＳＢ接続した場合にデバイスドライバを有効化するか否かを示すドライバ情報を管理する管理手段と、
デバイスが有するデバイス情報を取得するデバイス情報取得手段と、
前記ドライバ情報と前記デバイス情報とが対応する際、当該ドライバ情報に対応するデバイスドライバを用いて前記デバイスを制御させるように、前記ドライバのセットアップをＵＳＢコアドライバの制御下にて行う設定手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢホスト接続によりハードウェア拡張が可能な情報処理装置及び制御方法及びプログラムに関するものである。
【背景技術】
【０００２】
本技術分野において、ＵＳＢホスト接続は、ＵＳＢメモリやキーボード、マウス、通信用ドングル、プリンタなど、その利用は非常に多種多彩なものとなっている。また、デジタル複合機においても、ＰＣ同様にＵＳＢメモリやキーボード、カードリーダなど、接続するデバイスが増えてきている。これは、汎用的な物理Ｉ／Ｆ（インタフェース）であり、手軽に利用、開発できるという利点がひとつの理由でもある。しかしながら、汎用的な物理Ｉ／Ｆであるがために、セキュリティ面の対策が必要である。例えばＵＳＢメモリによる情報漏洩などが容易に考えられる。また、不用意にＵＳＢデバイスを接続することで、ウィルスなどホスト機器の方に影響をもたらす可能性もあるため、そういった危険性を有するデバイスの接続を排除することも重要である。
【０００３】
従来、このような問題への対策として、ユーザがＵＳＢホストを制御するホストコントローラチップを無効化することが提案されている。例えば一般的なＯＳであるＷｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（登録商標）でも、ＵＳＢホスト接続すべてをコントロールするホストコントローラチップを無効化するために、ホストコントローラドライバの無効化や削除が可能となっている。また、あらゆる種類のＵＳＢデバイスを制御するためのデバイスドライバをユーザがそれぞれ無効化／削除するといった方法もある。また、従来技術として、特許文献１では、ＵＳＢホストデバイスを接続した際に、ＵＳＢプロトコル上に存在する予約ビットを利用して、この情報を元にホスト側でその接続ポートをＤｉｓａｂｌｅする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−６５８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ユーザがホストコントローラチップすべてを一括して無効化する方法だと、例えば内部的にＵＳＢホスト接続をしている場合には、その接続さえ断ってしまうことになるため適切ではない。
【０００６】
また、ユーザが個々のデバイスドライバを無効化する方法だと手間がかかり、加えてセキュリティ的な側面からも一括で無効化することがより多く求められていることから、この方法では利便性に欠ける。
【０００７】
さらに、特許文献１においては、予約ビットに情報を付加する必要があるため、接続するＵＳＢデバイス側での対応も必要となる。すなわち、意図しないデバイスの接続を排除することができないことになり、この方法でもっても適切ではない。
【課題を解決するための手段】
【０００８】
上述した課題の少なくとも一部を解決するために、本発明は以下の構成を有する。ＵＳＢ接続に対応したデバイスとＵＳＢ接続が可能な情報処理装置であって、前記ＵＳＢ接続時にドライバを有効化するか否かを示すドライバ情報を管理する管理手段と、前記デバイスが有するデバイス情報を取得するデバイス情報取得手段と、前記ドライバ情報と前記デバイス情報とが対応する場合、当該ドライバ情報に対応するデバイスドライバを用いて前記デバイスを制御させるように、前記ドライバのセットアップをＵＳＢコアドライバの制御下にて行う設定手段とを有することを特徴とする。
【０００９】
本発明の実施の形態によれば、セキュリティ面においても事前に対策可能で、かつ、システム内部で必要な接続も断つことなく、利便性の高いＵＳＢホスト接続の制御を実現することができる。さらには、同様の仕組みに加えて個々のデバイスドライバに対しても、有効無効の制御が可能となり、より利便性が高いＵＳＢホスト接続を実現可能である。また、同様の仕組みに加えて情報処理装置が有する個々の物理Ｉ／Ｆに対しても有効無効の制御が可能となり、より利便性が高いＵＳＢホスト接続を実現可能である。
【発明の効果】
【００１０】
本発明によれば、デバイスのインタフェース接続の有効化、無効化を適切に管理できる。
【００１１】
また、本発明の別の側面によれば、ＵＳＢホスト接続をシステムとして一括して無効化することができる一方で、有効化が必要なデバイス（例えば内部的に接続が必要なデバイス）は、例外的にそのまま使用可能とすることができる。
【００１２】
また、ＵＳＢデバイス側の対応に関係なく、意図しないデバイスの接続を排除することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態におけるシステム構成の一例を説明した図である。
【図２】本実施形態におけるソフト、ハード含めた階層構造を示した図である。
【図３】本実施形態におけるコアドライバとデバイスドライバ、ＵＳＢデバイスの関係について示した図である。
【図４】本実施形態におけるコアドライバとデバイスドライバ、ＵＳＢデバイスの関係について示した図である。
【図５】本実施形態におけるコアドライバとデバイスドライバ、ＵＳＢデバイスの関係について示した図である。
【図６】本実施形態におけるコアドライバとデバイスドライバ、ＵＳＢデバイスの関係について示した図である。
【図７】本実施形態におけるＵＳＢプロトコル情報について説明した図である。
【図８】本実施形態における操作部の一例を示した図である。
【図９】本実施形態における操作部の一例を示した図である。
【図１０】本実施形態における操作部の一例を示した図である。
【図１１】本実施形態における内部テーブルが有する情報について示した図である。
【図１２】本実施形態におけるフローチャートの一例を説明した図である。
【図１３】本実施形態におけるフローチャートの一例を説明した図である。
【図１４】本実施形態におけるフローチャートの一例を説明した図である。
【図１５】第一の実施形態におけるフローチャートの一例を説明した図である。
【図１６】第二の実施形態における操作部の一例を示した図である。
【図１７】第二の実施形態における操作部の一例を示した図である。
【図１８】第二の実施形態におけるフローチャートの一例を説明した図である。
【図１９】第三の実施形態における操作部の一例を示した図である。
【図２０】第三の実施形態におけるフローチャートの一例を説明した図である。
【発明を実施するための形態】
【００１４】
＜第一の実施形態＞
ＵＳＢホスト接続が無効化された場合でも必要なデバイスを接続可能とする第一の実施形態について説明する。
【００１５】
＜ハードウェア構成＞
まず本実施形態に関わるシステムの構成を、図１を参照しながら説明する。画像形成装置１００は情報処理装置の一例である。リーダー部５１は、原稿画像を光学的に読み取り、画像データに変換する機能を持つ。リーダー部５１は、原稿を読み取るための機能を持つスキャナユニット５３と、原稿用紙を搬送するための機能を持つ原稿給紙ユニット５２から構成される。デバイス構成によっては、原稿給紙ユニット５２を持たないもの（この場合はいわゆる圧板と呼ばれるプラテンガラスに原稿を置き、センサにより読み取る）もあり得る。プリンタ部５５は、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排紙する機能を持つ。プリンタ部５５は複数種の記録紙カセットを持つ給紙ユニット５８と、画像データを記録紙に転写、定着させるマーキングユニット５６、印字された記録紙をソート、ステイプルして機外へ出力する排紙ユニット５７から構成される。制御装置６０は、リーダー部５１、プリンタ部５５と電気的に接続され、リーダー部５１を制御して、原稿の画像データを読込み、プリンタ部５５を制御して画像データを記録用紙に出力してコピー機能を提供する。
【００１６】
操作部７０は液晶表示部と液晶表示部上に張り付けられたタッチパネル入力装置と、複数個のハードキーを有し、ユーザが様々な操作を行うためのユーザＩ／Ｆを提供する。タッチパネルまたはハードキーにより入力された信号は制御装置６０に伝えられ、液晶表示部は制御装置６０から送られてきた画像データを表示するものである。また、リーダー部５１から読み込んだ原稿を文書としてＨＤＤ６５に保存するＢｏｘ機能（文書格納機能）も提供する。このＢｏｘ機能では文書を格納する機能に加え、格納された文書を印刷する機能も備える。また制御部は揮発性メモリ６７や不揮発性メモリ６６とも接続している。一過性のデータは揮発性メモリ６７に、恒久的なデータは不揮発性メモリ６６に格納する。プログラムや、通常システム再起動してもそのデータを保持しておきたい設定値などは不揮発性メモリ６６に格納する。また、制御装置６０はＵＳＢホストコントローラ８０というチップも含む。このＵＳＢホストコントローラ８０がＵＳＢホスト接続の通信すべてを司る。ＵＳＢホストコントローラ８０には、例えばシステム構築者が、ＵＳＢホストＨｕｂ８９を接続し、そのＵＳＢホストＨｕｂ８９に対する接続により、ホストＩ／Ｆ８３、８４、８５を外部に提供する。これが外部的なＵＳＢの物理インタフェースとなる。そうすることで、ユーザがこの物理Ｉ／Ｆに対して、キーボード９３やマルチメディアカードリーダ９４、ＵＳＢメモリ９５などのデバイスを接続可能となり、ハードウェア拡張が可能となる。その他、ＩＣカードリーダや通信ドングルなどのＵＳＢデバイスも同様である。また一方で、ＵＳＢホストＨｕｂ８９が内部ＵＳＢデバイスと接続するケースもある。例えばシステム構築者が、ＵＳＢホストコントローラ８０に対し、外部のＦＡＸ回線３００と接続するＵＳＢ−ＦＡＸボード８２や、画像解析ボード８１を接続する。これにより、システムとしてＦＡＸ機能や画像解析機能を実行することができる。
【００１７】
＜内部構成＞
図２は、制御装置６０、拡張ハードウェア群の構造について示した図である。レイヤ５０１、５０２がソフトウェア層、レイヤ５０３がハードウェア層であり、レイヤ５０１は一般的にユーザスペースやユーザランドなどと呼ばれ、システムに対して特別な権利を持っていない。このレイヤに属するものは外部デバイスを直接制御することができない。レイヤ５０２は一般的にスーパーバイザスペースやカーネルモード、特権モードなどと呼ばれるシステムに対して特別な権利を持つ。このレイヤに属するものは外部デバイスを直接制御できる。
【００１８】
拡張ハードウェア群には、例えばキーボード９３、マルチメディアカードリーダ９４、ＵＳＢメモリ９５、ＵＳＢ−ＦＡＸボード８２、画像解析ボード８１などがある。これらは、図１で示した物理的なＵＳＢホストＩ／Ｆ８３、８４、８５に対し例えばユーザが接続するケース（キーボード９３、マルチメディアカードリーダ９４、ＵＳＢメモリ９５など）と、内部的にシステム構築者が接続するケース（ＵＳＢ−ＦＡＸボード８２、画像解析ボード８１）とがある。このＵＳＢホストＩ／ＦはすべてＵＳＢホストコントローラ８０で制御される。ＵＳＢホストコントローラ８０は、ＵＳＢホストに接続するデバイス（周辺機器）と画像形成装置１００本体とがＵＳＢ通信を行うための通信すべてを司るものである。ＵＳＢホストコントローラ８０は、ＵＳＢ規格１．ｘ、ＵＳＢ規格２．０などそれぞれの規格に準拠した通信を行うことができる。ＵＳＢ規格１．ｘにはＵＨＣＩ（Ｕｎｉｖｅｒｓａｌ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ）やＯＨＣＩ（Ｏｐｅｎ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ）などの種類が存在する。また、ＵＳＢ規格２．０はＥＨＣＩ（Ｅｎｈａｎｃｅｄ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ）という規格が統一標準として認知されている。一般的にはＵＨＣＩ／ＯＨＣＩのどちらか一方とＥＨＣＩの通信をサポートする情報機器がほとんどである。
【００１９】
ソフトウェア層に存在する以下のモジュールは、不揮発性メモリ６６に格納され、ＣＰＵ（不図示）により読み出されて動作する。スーパーバイザスペースには、ＵＳＢホストコントローラドライバ２０１、ＵＳＢホストコアドライバ２０２、ＨＩＤドライバ２０３、ＭａｓｓＳｔｏｒａｇｅドライバ２０４、画像解析ボードドライバ２１１、ＦＡＸドライバ２１２が位置付けられる。ユーザスペースには、ドライバ制御タスク２５０、アプリケーション２２０が位置付けられる。
【００２０】
ＵＳＢホストコントローラドライバ２０１はＵＳＢホストコントローラ８０を制御し、ＵＳＢのプロトコルレベルでの通信を実現する。そして、その上位層にＵＳＢホストコアドライバ２０２（以降コアドライバと呼ぶ）が位置する。そしてさらにその上位層にデバイスドライバ群が位置する。このデバイスドライバは、さらに上位のユーザスペースに存在するアプリケーション２２０がＵＳＢホストデバイスを通信するために必要なソフトウェアであり、例えば以下のようなものが存在する。ＨＩＤドライバ２０３は、キーボードやマウスなどの汎用的なＨＩＤ（Ｈｕｍａｎ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｖｉｃｅ）を制御する。このＨＩＤドライバ２０３は通常、キーイベントやマウスジェスチャなどをイベント形式で上位のアプリケーションに発行する。ＭａｓｓＳｔｏｒａｇｅドライバ２０４は、ＵＳＢメモリやカードデバイスなどの汎用的なストレージデバイスを制御する。このＭａｓｓＳｔｏｒａｇｅドライバ２０４は通常、ＵＳＢメモリなどのストレージデバイスを、ＭａｓｓＳｔｏｒａｇｅドライバ２０４の上位に構築するファイルシステム（不図示）経由でアプリケーションにその機能を提供する。ＦＡＸドライバ２１２は、ベンダ固有なＵＳＢ−ＦＡＸボード８２を制御する。ＦＡＸドライバ２１２は例えば、ＦＡＸ回線３００を介した外部とのＦＡＸ通信を行うために、ＦＡＸ規格に基づいたソフトウェア処理を行う。画像解析ボードドライバ２１１は、ベンダ固有な画像解析ボードを制御する。画像解析ボードドライバ２１１は例えば、画像解析するため、スキャンしたデータを解析するための指示や管理などといったソフトウェア処理を行う。
【００２１】
ここで、特にコアドライバ２０２については、本発明に大きく関わるため詳細に説明する。コアドライバ２０２は以下のような機能を持つ。概してコアドライバ２０２は、デバイスドライバの情報を保持し、接続したデバイスをどのデバイスドライバで扱うかの決定を行う。具体的には例えば、以下のような機能を備える。第一にコアドライバ２０２は、上位モジュールからデバイスドライバの登録を受け取り、デバイスドライバの情報をテーブル形式で保持する。登録はいつでも可能であり、随時テーブルに追加を行う形式を取る。通常テーブルは揮発性メモリ６７に保持する。
【００２２】
第二にコアドライバ２０２は、ＵＳＢデバイスの接続を検知し、接続したＵＳＢデバイスの情報を取得する。通常取得した情報は揮発性メモリ６７に保持する。第三にコアドライバ２０２は、ＵＳＢホストデバイス接続またはデバイスドライバ登録が発生した場合に、前記テーブルと接続したＵＳＢデバイスの情報とを比較する。そして、接続したＵＳＢデバイスをどのデバイスドライバで扱うかを決定する。第四にコアドライバ２０２は、デバイスドライバの削除依頼を受け取り、該当するデバイスドライバの情報をテーブルから削除する。第五にコアドライバ２０２は、ＵＳＢデバイスの取り外しを検知する。第六にコアドライバ２０２は、取り外しが行われたＵＳＢデバイスの扱いをやめる。本発明におけるコアドライバ２０２は特に、第一、二、三の機能に関係する。
【００２３】
また、ドライバ制御タスク２５０においては、デバイスドライバ群をコアドライバ２０２に登録する役割を担う。ドライバ制御タスク２５０は画像形成装置１００のシステムが起動した際に不揮発性メモリ６６からＣＰＵ（不図示）によって読み出され、動作する。
【００２４】
＜デバイスドライバ登録の流れ＞
図３は、ドライバ制御タスク２５０がデバイスドライバ群をコアドライバ２０２に登録する部分について説明した図である。本図は、ＵＳＢホスト接続が有効である場合の説明である。なお以下のモジュールは不揮発性メモリ６６に格納され、ＣＰＵ（不図示）により読み出されて動作する。ＵＳＢホストコントローラドライバ２０１、コアドライバ２０２、ＨＩＤドライバ２０３、ＭａｓｓＳｔｏｒａｇｅドライバ２０４、画像解析ボードドライバ２１１、ＦＡＸドライバ２１２、ドライバ制御タスク２５０が該当する。
【００２５】
ドライバ制御タスク２５０は、デバイスドライバ群のリストを不揮発性メモリ６６に保持している。このリストはＵＳＢホスト有効化時ドライバリストであり、すべてのデバイスドライバが記載されている。このリストには例えばリスト６０１で示したように、ＨＩＤドライバ２０３、ＭａｓｓＳｔｏｒａｇｅドライバ２０４、ＦＡＸドライバ２１２、画像解析ボードドライバ２１１の情報を保持する。このとき、コアドライバ２０２においては、登録した順番にテーブルを構築するが、通常上位モジュール（本発明ではドライバ制御タスク２５０）は、先にベンダ固有ドライバ、後に汎用ドライバを登録するケースが多い。これは、ＵＳＢデバイスを接続した際のコアドライバ２０２の動きとして、テーブルの走査は登録された順に行うため、先に適用したいドライバを先に登録する必要がある。これは、汎用的なドライバを先に登録してしまうと、ベンダ固有ドライバなどの特殊なドライバを使用することができなくなってしまうことに起因する。本実施形態においてはドライバ制御タスク２５０において、ベンダ固有ドライバであるＦＡＸドライバ、画像解析ボードドライバを先に、そして汎用ドライバであるＭａｓｓＳｔｏｒａｇｅドライバ、ＨＩＤドライバの順でリストを保持している。リスト６０２は直値の例であり、ドライバ名が保持されている。また、特にベンダ固有ドライバにおいては、扱うデバイスをより細かく特定するためにＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤを登録するケースが多い。よってドライバ制御タスク２５０においては、これらＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報を登録するため、リスト上にこれらの情報を保持する。これらの保持先は、システム再起動が発生しても永続的に保持できるよう、不揮発性メモリ６６に置いておく。そしてドライバ制御タスク２５０ではこのリストを読み出しコアドライバ２０２に登録を行う。登録を行うと、テーブル６０３のようにコアドライバ２０２内にテーブルを構築する。この際、登録したＦＡＸドライバ２１２、画像解析ボードドライバ２１１、ＭａｓｓＳｔｏｒａｇｅドライバ２０４、ＨＩＤドライバ２０３の順にテーブルが構築される。テーブル６０４に直値の例を記載したが、リスト６０２で挙げた情報がそのままコアドライバ２０２に登録される。
【００２６】
図４は、ＵＳＢデバイス接続時にどのデバイスドライバを扱うかを説明した図である。本図はＵＳＢホスト接続が有効である場合の説明である。なお、以下のモジュールは不揮発性メモリ６６に格納され、ＣＰＵ（不図示）により読み出されて動作する。ここでのモジュールは、ＵＳＢホストコントローラドライバ２０１、画像解析ボードドライバ２１１、ＦＡＸドライバ２１２、コアドライバ２０２、ＨＩＤドライバ２０３、ＭａｓｓＳｔｏｒａｇｅドライバ２０４が該当する。画像解析ボード８１、ＵＳＢ−ＦＡＸボード８２、キーボード９３、ＵＳＢメモリ９５は接続するＵＳＢデバイス、ＵＳＢホストコントローラ８０はＵＳＢの通信を制御するチップである。
【００２７】
ＵＳＢデバイス接続時の動作としては、コアドライバ２０２において、コアドライバ２０２内に保持するテーブルに登録された順番に、その登録情報とＵＳＢデバイスとの情報比較を行う。コアドライバ２０２では、テーブルを順に走査して、接続されたデバイスの情報と合致する情報をテーブル内に見つけたら、その時点でドライバとデバイスの関連付けを行う。またテーブル内に合致する情報が無い場合には、そのＵＳＢデバイスは扱えないことになる。その場合、例えばすべてのデバイスを扱えるドライバを用意しておき、テーブルの最後に登録しておく形をとっても良い。または、ユーザに対しドライバを要求するメッセージを表示しても良い。
【００２８】
本実施形態では、図３において登録したテーブルを用いる。例えば、テーブル６０３においては、ＦＡＸドライバ２１２、画像解析ボードドライバ２１１、ＭａｓｓＳｔｏｒａｇｅドライバ２０４、ＨＩＤドライバ２０３がその順番で登録されている。テーブル６０４はその直値の例である。ＵＳＢデバイス接続時には、コアドライバ２０２において、このテーブルに登録された情報を順に走査する。例えばコアドライバ２０２がテーブル情報の１番目にあるＵＳＢ−ＦＡＸボード８２のクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの値（具体的には、Ｃｌｓ＝０ｘｆｆ、Ｖｅｎｄｏｒ＝００００、ＰｒｏｄＩＤ＝１１１１）を取得する。そしてコアドライバ２０２において、この情報と接続したＵＳＢデバイスのクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報とを比較する。比較した情報が合致した場合はＦＡＸドライバ２１２でこのデバイスを扱う（ＵＳＢ−ＦＡＸボード８２が接続されたときにはここで関連付けて終了する）。合致しない場合はコアドライバ２０２において、テーブル情報の２番目にある画像解析ボード８１のクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの値（具体的には、Ｃｌｓ＝０ｘｆｆ、Ｖｅｎｄｏｒ＝００００、ＰｒｏｄＩＤ＝２２２２）を取得する。
【００２９】
そしてコアドライバ２０２において、この情報と接続したＵＳＢデバイスのクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報とを比較する。比較した情報が合致した場合は画像解析ボードドライバ２１１でこのデバイスを扱う（画像解析ボード８１が接続されたときにはここで関連付けて終了する）。合致しない場合はコアドライバ２０２において、テーブル情報の３番目にあるＭａｓｓＳｔｏｒａｇｅデバイス（ＵＳＢメモリ９５）のクラスの値（具体的にはＣｌｓ＝０ｘ０８）を取得する。そしてコアドライバ２０２において、この情報と接続したＵＳＢデバイスのクラスの情報とを比較する。比較した情報が合致した場合はＭａｓｓＳｔｏｒａｇｅドライバ２０４でこのデバイスを扱う（ＵＳＢメモリ９５が接続されたときにはここで関連付けて終了する）。合致しない場合はコアドライバ２０２において、テーブル情報の４番目にあるＨＩＤデバイス（キーボード９３）のクラスの値（具体的にはＣｌｓ＝０ｘ０３）を取得する。そしてコアドライバ２０２において、この情報と接続したＵＳＢデバイスのクラスの情報とを比較する。比較した情報が合致した場合はＨＩＤドライバ２０３でこのデバイスを扱う（キーボード９３が接続されたときにはここで関連付けて終了する）。ここで合致しなければ、どのドライバにも関連付けは行わずに終了する。このとき、終了せずに、例えばすべてのデバイスに関連付け可能なドライバを用意しておき、テーブルの最後に登録しておく形をとっても良い。こうすることにより、必ず何らかのドライバがデバイスに関連付けられることになる。
【００３０】
以上説明したように、ＵＳＢ接続に対応したデバイスとＵＳＢ接続された情報処理装置の一例である画像形成装置を開示した。そして、コアドライバ２０２は、ＵＳＢ接続時にドライバを有効化するか否かを示すドライバの情報を管理する。そして、デバイスが有するＵＳＢデバイス情報を取得するデバイス情報取得モジュールの一例としてコアドライバ２０２が機能する。
【００３１】
ドライバ情報とデバイス情報とが対応するとき、そのドライバ情報に対応するデバイスドライバを用いてデバイスを制御させるべく、次の設定をコアドライバ２０２は行う。すなわち、デバイスドライバのセットアップをＵＳＢコアドライバの制御下にて行う設定モジュールの一例としてコアドライバ２０２を担う。
【００３２】
図５は、ドライバ制御タスク２５０がデバイスドライバ群をコアドライバ２０２に登録する部分について説明した図である。本図は、ＵＳＢホスト接続が無効である場合の説明である。なお、次のモジュールは不揮発性メモリ６６に格納され、ＣＰＵ（不図示）により読み出されて動作する。該当するモジュールは、ＵＳＢホストコントローラドライバ２０１、コアドライバ２０２、画像解析ボードドライバ２１１、ＦＡＸドライバ２１２、ＨＩＤドライバ２０３、ＭａｓｓＳｔｏｒａｇｅドライバ２０４、ドライバ制御タスク２５０である。ここで、ＨＩＤドライバ２０３、ＭａｓｓＳｔｏｒａｇｅドライバ２０４に関しては無効化されていることとする。
【００３３】
ドライバ制御タスク２５０は、デバイスドライバ群のリストを不揮発性メモリ６６に保持している。このリストはＵＳＢホスト無効化時ドライバリストであり、ＵＳＢホスト無効化時でも使用可能としたいデバイスのデバイスドライバが記載されている。このリストにはＵＳＢ−ＦＡＸボード８２や画像解析ボード８１は内部的にＵＳＢホストを使用しているためこのリストに挙げておく必要がある（ＵＳＢホスト無効化時でも使用可能とする必要がある）。よってこのリストには例えばリスト６１１のようにＦＡＸドライバ２１２、画像解析ボードドライバ２１１の情報を保持する（ＨＩＤドライバ２０３、ＭａｓｓＳｔｏｒａｇｅドライバ２０４の情報は保持しない）。本実施形態においてはドライバ制御タスク２５０において、ＦＡＸドライバ、画像解析ボードドライバの順でリストを保持している。リスト６１２は直値の例であり、ドライバ名が保持されている。また、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報を登録するため、リスト上にこれらの情報を保持する。これらの保持先は、システム再起動が発生しても永続的に保持できるよう不揮発性メモリ６６に保持する。そしてドライバ制御タスク２５０ではこのリストを読み出しコアドライバ２０２に登録を行う。登録を行うと、テーブル６１３のようにコアドライバ２０２内にテーブルを構築する。この際、登録したＦＡＸドライバ、画像解析ボードドライバの順にテーブルが構築される。テーブル６１４に直値の例を記載したが、リスト６１２で挙げた情報がそのまま登録される。
【００３４】
図６は、ＵＳＢデバイス接続時にどのデバイスドライバを扱うかを説明した図である。本図はＵＳＢホスト接続が無効である場合の説明である。なお、次のモジュールは不揮発性メモリ６６に格納され、ＣＰＵ（不図示）により読み出されて動作する。該当するモジュールは、ＵＳＢホストコントローラドライバ２０１、画像解析ボードドライバ２１１、ＦＡＸドライバ２１２、コアドライバ２０２、ＨＩＤドライバ２０３、ＭａｓｓＳｔｏｒａｇｅドライバ２０４である。なお、ＨＩＤドライバ２０３、ＭａｓｓＳｔｏｒａｇｅドライバ２０４は無効化されているものとする。画像解析ボード８１、ＵＳＢ−ＦＡＸボード８２、キーボード９３、ＵＳＢメモリ９５は接続するＵＳＢデバイス、ＵＳＢホストコントローラ８０はＵＳＢの通信を制御するチップである。
【００３５】
ＵＳＢホスト接続時の動作としては、コアドライバ２０２において、コアドライバ２０２内に保持するテーブルに登録された順番に、その登録情報とＵＳＢデバイスとの情報比較を行う。コアドライバ２０２では、テーブルを順に走査して、テーブル内にＵＳＢデバイスと合致する情報を見つけたら、その時点でドライバとデバイスの関連付けを行う。またテーブル内に合致する情報が無い場合には、そのＵＳＢデバイスは扱えないことになる。
【００３６】
本実施形態では、図５において登録したテーブルを用いる。例えば、テーブル６１３には、ＦＡＸドライバ２１２、画像解析ボードドライバ２１１がその順番で登録されている。６１４はその直値の例である。ＵＳＢデバイス接続時には、コアドライバ２０２において、このテーブルに登録された情報を順に走査する。例えばコアドライバ２０２がテーブル情報の１番目にあるＵＳＢ−ＦＡＸボード８２のクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの値（具体的には、Ｃｌｓ＝０ｘｆｆ、Ｖｅｎｄｏｒ＝００００、ＰｒｏｄＩＤ＝１１１１）を取得する。そしてコアドライバ２０２において、この情報と接続したＵＳＢデバイスのクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報とを比較する。比較した情報が合致した場合はＦＡＸドライバ２１２でこのデバイスを扱う（ＵＳＢ−ＦＡＸボード８２が接続したときにはここで関連付けて終了する）。合致しない場合はコアドライバ２０２において、テーブル情報の２番目にある画像解析ボード８１のクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの値（具体的には、Ｃｌｓ＝０ｘｆｆ、Ｖｅｎｄｏｒ＝００００、ＰｒｏｄＩＤ＝２２２２）を取得する。そしてコアドライバ２０２において、この情報と接続したＵＳＢデバイスのクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報とを比較する。比較した情報が合致した場合は画像解析ボードドライバ２１１でこのデバイスを扱う（画像解析ボード８１が接続したときにはここで関連付けて終了する）。ここで合致しなければ、どのドライバにも関連付けは行わずに終了する。例えばこのケースだと、セキュリティ対策でＵＳＢメモリ９５などの使用を制限したい場合などが考えられる。ＵＳＢホスト接続を無効化し、ドライバを登録せず、ＵＳＢメモリを使えない状態にすることができる。
【００３７】
図７は、ＵＳＢデバイス接続時に、コアドライバ２０２がＵＳＢデバイスから取得するＵＳＢプロトコル情報である。本図に示す情報は、画像解析ボード８１、ＵＳＢ−ＦＡＸボード８２、キーボード９３、ＵＳＢメモリ９５などのＵＳＢデバイスを画像形成装置１００と接続した際、コアドライバ２０２が揮発性メモリ６７に保持する情報である。本図では具体的な例として、ＵＳＢメモリ９５を接続した場合の情報を示した。
【００３８】
プロトコル情報６３０にはさまざまな情報が含まれる。本発明に関わる項目として、ＵＳＢデバイスのクラスでは例えば項目６３１のようにＣｌｓ＝０８と示されている。ＶｅｎｄｏｒＩＤやＰｒｏｄｕｃｔＩＤは項目６３２のようにＶｅｎｄｏｒ＝０４ｂｂ、ＰｒｏｄＩＤ＝０ｃ２ａとなっている。またその他の情報として、項目６５０のようにＵＳＢデバイスが物理的にどのポートに接続しているかの情報や、項目６５１のように製品名が含まれていたりする。
【００３９】
さらに、項目６４０にはドライバ名が表示されている。ＵＳＢデバイス接続時には、ここの情報は存在しないが、図４や図６でデバイスドライバとＵＳＢデバイスの関連付けが行われると、このデバイス情報にドライバの情報が埋め込まれる（例えば、Ｄｒｉｖｅｒ＝ｕｓｂ−ｓｔｏｒａｇｅとなる）。
【００４０】
＜操作部＞
次に、図８、図９、図１０は、画像形成装置１００の操作部について示した図である。基本的にはユーザからの画面操作を受けて、操作部ソフトウェア（不図示）が処理を行う（その後、その結果を表示する）。操作部ソフトウェアは不揮発性メモリ６６に保持され、ＣＰＵ（不図示）によって読み出されて動作する。例えば、後述する図１１のような設定値書き換えも操作部ソフトウェアが行う。
【００４１】
図８は、操作部の代表的な表示について説明した図である。トップメニューキー４０１は、トップメニューの画面表示（ログイン画面表示：不図示）に戻るために用意されたキーである。マイポータルキー４０２は、このキーが押下されると例えば特定のログインユーザに関連する情報（そのユーザが投入したジョブの情報など）のみが掲載された画面を表示する。設定キー４０３は環境情報、例えばデバイスが持つ設定値や、アプリケーションやユーザごとの設定値を設定する画面を表示する。ユーザは設定キー４０３を押下することで、後述の図９などで説明するＵＳＢホスト接続の有効化設定の画面も開くことができる。本画面は、機能キー４０４〜４０８やショートカットキー４１１〜４１４を有する。登録キー４１５は、パーソナライズ画面の編集を行うためのキーである。ログアウトキー４１７は、ユーザがユーザログイン状態を解除したいときに使用するキーである。ログアウトキー４１７を押すとトップメニュー（不図示）を表示する。ステータスライン４１８は、例えば実行中のジョブの情報を表示したり、消耗品（トナーなど）警告情報を表示したりするエリアである。システム状況キー４１９は、例えば実行中のジョブリストやジョブログリストの情報が閲覧できる画面を表示するためのキーである。なお、ここで挙げた画面は表示の一例であり、これに限定するものではない。
【００４２】
図９は、図８における設定キー４０３が押下された際に表示されるキーである。ユーザによって設定キーが押下されるとさまざまな環境設定が可能となるが、本実施形態ではその説明は割愛する。例えば図９はＵＳＢ設定の画面であるが、環境設定の階層としては、“環境設定＞外部Ｉ／Ｆ＞ＵＳＢ設定”と階層を辿る。画面表示キー７０１はＵＳＢホストの有効化の設定をする。このキーが押下されると図１０のような画面が開く。閉じるキー７０２は、押下されることによりこの画面を閉じ、図８の画面表示へ戻る。本画面よりユーザからのＵＳＢホスト接続制御の指示を受け付ける。なお、ここで挙げた画面は表示の一例であり、この形式に限定するものではない。
【００４３】
図１０、図１１は、図９でＵＳＢホストの有効化を設定するキーが押下された場合に表示する画面及び内部データを説明した図である。エリア７１１には設定項目を表示し、ユーザによってＯＮ（有効）キー７１２、ＯＦＦ（無効）キー７１３それぞれが押下されると有効化／無効化を設定可能となる。ＯＫキー７１４は有効化／無効化を確定するものであり、キャンセルキー７１５は今回の入力設定をキャンセルするキーである（すなわち、ここで行った変更を確定しない）。ＯＫキー７１４、キャンセルキー７１５が押下されると図９の画面表示へ戻ることになる。また、ＯＫキー７１４が押下されると、図１１で示す内部テーブルの情報も更新される。内部データとしては、テーブル７２０で示したように、画面階層と同様なテーブルを有している。階層情報としては“環境設定＞外部Ｉ／Ｆ＞ＵＳＢ設定”という情報をもち、また、項目７２１で“ＵＳＢホストの有効化＝ＯＮ”という情報を保持している。この項目７２１の情報は、有効化フラグとしてその情報を不揮発性メモリ６６に保持されているが、実際の設定がシステムとして有効になるのはシステムを再起動したときになる。なお、ここで挙げた図１０の画面は表示の一例であり、これに限定するものではない。
【００４４】
＜ＵＳＢホスト有効化フロー＞
図１２は、ＵＳＢホストの使用可否を制御する制御情報であるＵＳＢホスト接続の有効化フラグのＯＮ／ＯＦＦ設定を行う場合のフローチャートである。Ｓ４０１でユーザの指示により、図１０のＵＳＢホストの有効化画面を表示する。Ｓ４０２で図１０におけるＯＮ（有効）キー７１２が押下されたかどうかを判定する。ＯＮ（有効）キー７１２が押下されたらＳ４０３に進み、揮発性メモリ６７にその制御情報を保持する。Ｓ４０２でＯＮ（有効）キー７１２が押下されない場合はＳ４０４に進み、ＯＦＦ（無効）キー７１３が押下されたかどうかを判定する。ＯＦＦ（無効）キー７１３が押下されたらＳ４０５に進み、揮発性メモリ６７に同じく制御情報を保持する。Ｓ４０４でＯＦＦ（無効）キー７１３も押下されない場合はＳ４０１に戻る。Ｓ４０６ではＯＮ（有効）キー７１２またはＯＦＦ（無効）キー７１３の制御情報を確定するか、キャンセルするかを判定する。Ｓ４０６でＯＫキー７１４が押下されると確定すると判定され、Ｓ４０７にて有効化フラグを確定して不揮発性メモリ６６（図１１における７２１）を更新する。Ｓ４０６でキャンセルキー７１５が押下された場合はＳ４０１に戻る。以上の流れでユーザからのＵＳＢホスト接続制御の指示を受け付け、設定を行う。
【００４５】
＜システム起動時処理フロー＞
図１３は、システム起動時の処理に関するフローチャートである。Ｓ５０１でシステムを起動する。すると、Ｓ５０２でドライバ制御タスク２５０がＵＳＢホスト接続の有効化フラグを参照する。ここでいう有効化フラグとは、図１０、１１で説明した有効化のＯＮ／ＯＦＦの設定を指す。Ｓ５０３で有効化フラグがＯＮだと判定されるとＳ５０４ですべてのデバイスドライバをコアドライバ２０２に登録する。例えば本実施形態ではＦＡＸドライバ２１２、画像解析ボードドライバ２１１、ＭａｓｓＳｔｏｒａｇｅドライバ２０４、ＨＩＤドライバ２０３などである。Ｓ５０３で有効化フラグがＯＦＦだと判定されると、Ｓ５０５では予め登録したデバイスドライバのみをコアドライバ２０２に登録する。例えば本実施形態では、ＦＡＸドライバ２１２と画像解析ボードドライバ２１１のみを登録することになる。ここで、例えばＵＳＢ−ＦＡＸボード８２や画像解析ボード８１については、汎用ドライバでなくベンダ固有ドライバになる。よって、図３のようにクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報とドライバの情報をセットで登録する。具体的には、ＦＡＸデバイスであればＣｌｓ＝０ｘｆｆ、Ｖｅｎｄｏｒ＝００００、ＰｒｏｆＩＤ＝１１１１、Ｄｒｉｖｅｒ＝ｕｓｂ−ｆａｘとなる。一方で、ＭａｓｓＳｔｏｒａｇｅデバイスやＨＩＤデバイスは、汎用ドライバを使用できるため、クラスとドライバ情報のみの登録でよい（具体的には、ＭａｓｓＳｔｏｒａｇｅデバイスであればＣｌｓ＝０ｘ０８、Ｄｒｉｖｅｒ＝ｕｓｂ−ｓｔｏｒａｇｅとなる）。ドライバの情報はドライバ情報の一例である。
【００４６】
＜ＵＳＢデバイス接続検知時処理フロー＞
図１４は、ＵＳＢデバイス（例えばキーボードやＵＳＢメモリ、ＦＡＸなど）の接続時の処理に関するフローチャートである。Ｓ６０１でユーザがＵＳＢデバイスを接続するか、またはＵＳＢデバイス接続状態でシステムを起動する。その後Ｓ６０２でコアドライバ２０２がデバイス接続を検知する。Ｓ６０３ではコアドライバ２０２が、接続されたＵＳＢデバイスのデバイス情報取得を行う。ここで取得できる情報は、図７で説明したプロトコル情報に含まれる。Ｓ６０４では、コアドライバ２０２がコアドライバ内のテーブルを走査し、取得したＵＳＢデバイス情報とテーブル内の情報とを比較する。Ｓ６０５では、取得したデバイス情報とテーブル内の情報とが合致するかどうかを判定する。合致した場合は、Ｓ６０６でコアドライバ２０２が接続したＵＳＢデバイス情報と合致したテーブル情報にあるドライバ情報とを関連付けて、デバイスを使用できるようにする。Ｓ６０５でどの情報とも合致しなかったと判定した場合は、関連付けずに処理を終了する。ＵＳＢデバイス情報は、デバイス情報の一例である。
【００４７】
＜ＵＳＢデバイス接続検知時処理フロー（詳細）＞
図１５は、図１４のフローチャートで示した処理をより詳細化したものである。Ｓ１６０１でユーザがＵＳＢデバイスを接続するかまたは、ＵＳＢデバイス接続状態でシステムを起動する。その後Ｓ１６０２でコアドライバ２０２がデバイス接続を検知する。Ｓ１６０３ではコアドライバ２０２が、接続されたＵＳＢデバイスのデバイス情報取得を行う。ここで取得できる情報は、図７で説明したプロトコル情報に含まれる。Ｓ１６０４以降で、コアドライバ２０２が、コアドライバ２０２内のテーブルを走査し取得したＵＳＢデバイス情報と比較して関連付けを行う処理までについて説明する。本実施形態では、ＦＡＸデバイスや画像解析ボードなどを一例として挙げて説明するが、これらに限ったものではなく、ＵＳＢインタフェースを有するデバイスであれば本発明は適用可能である。
【００４８】
Ｓ１６０４では、コアドライバ２０２がテーブル情報の１番目にあるＵＳＢ−ＦＡＸボード８２のクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの値（例えばＣｌｓ＝０ｘｆｆ、Ｖｅｎｄｏｒ＝００００、ＰｒｏｄＩＤ＝１１１１）を取得する。そしてＳ１６０５でこの情報と、図７のプロトコル情報で示したようなＵＳＢデバイスのクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報とを比較する。そしてＳ１６０６にてこれらの情報が合致するか否かを判定する。合致した場合はＳ１６０７に進み、コアドライバ２０２において、接続したＵＳＢデバイス情報に、合致したテーブル情報に含まれるドライバ情報（この場合はＦＡＸドライバ２１２の情報）を関連付ける。関連付けを行うことで、接続したＵＳＢデバイスをこのＦＡＸドライバ２１２で扱えるようにできる。そしてフローを終了する。
【００４９】
Ｓ１６０６で登録したＵＳＢ−ＦＡＸボード８２の情報と合致しなかった場合はＳ１６０８に進み、次のテーブル情報との比較に進む。Ｓ１６０８では、コアドライバ２０２がテーブル情報の２番目にある画像解析ボード８１のクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの値（例えばＣｌｓ＝０ｘｆｆ、Ｖｅｎｄｏｒ＝００００、ＰｒｏｄＩＤ＝２２２２）を取得する。そしてＳ１６０９でこの情報と、図７のプロトコル情報で示したようなＵＳＢデバイスのクラス、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報とを比較する。そしてＳ１６１０でこれらの情報が合致するか否かを判定する。合致した場合はＳ１６１１に進み、コアドライバ２０２において、接続したＵＳＢデバイス情報に、合致したテーブル情報に含まれるドライバ情報（この場合は画像解析ボードドライバ２１１の情報）を関連付ける。関連付けを行うことで、接続したＵＳＢデバイスをこの画像解析ボードドライバ２１１で扱えるようにできる。そしてフローを終了する。Ｓ１６１０で登録した画像解析ボード８１の情報と合致しなかった場合はＳ１６１２に進み、次のテーブル情報との比較に進む。Ｓ１６１２では、コアドライバ２０２がテーブル情報の３番目にあるＭａｓｓＳｔｏｒａｇｅデバイス（マルチメディアカードリーダ９４／ＵＳＢメモリ９５）のクラスの値（例えばＣｌｓ＝０ｘ０８）を取得する。そしてＳ１６１３にてこの情報と、図７のプロトコル情報で示したようなＵＳＢデバイスのクラスの情報を比較する。そしてＳ１６１４でこれらの情報が合致するか否かを判定する。合致した場合はＳ１６１５に進み、コアドライバ２０２において、接続したＵＳＢデバイス情報に合致したテーブル情報に含まれるドライバ情報（この場合はＭａｓｓＳｔｏｒａｇｅドライバ２０４の情報）を関連付ける。関連付けを行うことで、接続したＵＳＢデバイスをこのＭａｓｓＳｔｏｒａｇｅドライバ２０４で扱えるようにできる。そしてフローを終了する。
【００５０】
Ｓ１６１４で登録したＭａｓｓＳｔｏｒａｇｅデバイス（マルチメディアカードリーダ９４／ＵＳＢメモリ９５）の情報と合致しなかった場合はＳ１６１６に進み、次のテーブル情報との比較に進む。Ｓ１６１６では、コアドライバ２０２がテーブル情報の４番目にあるＨＩＤデバイス（キーボード９３）のクラスの値（例えばＣｌｓ＝０ｘ０３）を取得する。そしてＳ１６１７でこの情報と、図７のプロトコル情報で示したようなＵＳＢデバイスのクラスの情報を比較する。そしてＳ１６１８でこれらの情報が合致するか否かを判定する。合致した場合はＳ１６１９に進み、コアドライバ２０２において、接続したＵＳＢデバイス情報に、合致したテーブル情報に含まれるドライバ情報（この場合はＨＩＤドライバ２０３の情報）を関連付ける。関連付けを行うことで、接続したＵＳＢデバイスをこのＨＩＤドライバ２０３で扱えるようにできる。そしてフローを終了する。Ｓ１６１８で登録したＨＩＤデバイス（キーボード９３）の情報と合致しなかった場合は、処理を終了する。この場合、走査したテーブル内に扱えるドライバが存在しなかったため、デバイスとドライバの関連付けができず、接続したＵＳＢデバイスは使用できないことになる。
【００５１】
以上の処理を行うことにより、ＵＳＢホスト接続をシステムとして一括して無効化することができる。また、ＵＳＢデバイス側の対応に関係なく、意図しないデバイスの接続を排除することが可能となる。
【００５２】
＜第二の実施形態＞
ＵＳＢホスト接続が無効化された場合でも使用可能とするデバイスを接続可能としつつ、ＵＳＢホスト接続が有効化された場合にさらに個々のデバイスごとに有効化／無効化を設定可能とする第二の実施形態について説明する。本実施形態では説明が概ね第一の実施形態と重複するため、差分のみの説明とする。図１６、１７の操作部表示についてもその処理については第一の実施形態と同様である。
【００５３】
＜操作部＞
図１６は、第一の実施形態で述べた図８の設定キー４０３が押下された際に表示される画面表示及びキーである。特に管理者が操作可能なすべてのＵＳＢデバイスの設定画面である。設定キーが押下されるとさまざまな環境設定が可能となるが本実施形態ではその説明は割愛する。図１６はＵＳＢ管理者設定の画面の例であるが、環境設定の階層としては、“環境設定＞外部Ｉ／Ｆ＞ＵＳＢ設定＞ＵＳＢ管理者設定”と階層を辿る。画面表示／キー８０１はＵＳＢホストの有効化を設定する。画面表示／キー８０２はＵＳＢ−ＦＡＸボード８２の有効化を、画面表示／キー８０３は画像解析ボード８１の有効化を、画面表示／キー８０４はＵＳＢＭａｓｓＳｔｏｒａｇｅデバイス（マルチメディアカードリーダ９４／ＵＳＢメモリ９５など）の有効化を、画面表示／キー８０５はＵＳＢＨＩＤデバイス（キーボード９３など）の有効化を設定可能であることを示す。これらのキーが押下されると第一の実施形態で述べた図１０のような画面が開き有効／無効を設定可能である。また、閉じるキー８０６を押下すると、この画面を閉じ図８の画面表示へ戻ることになる。なお、本画面は表示の一例であり、この形式に限定するものではない。
【００５４】
図１７は、第一の実施形態で示した図８の設定キー４０３が押下された際に表示される画面及びキーである。ここでは、一般者が操作可能な特定のＵＳＢデバイスの設定画面を示している。管理者のようにすべての操作が可能ではなく、一部の機能にのみ設定が可能となっている。設定キーが押下されるとさまざまな環境設定ができるが本実施形態ではその詳細な説明は割愛する。図１７はＵＳＢ一般者設定の画面であるが、環境設定の階層としては、“環境設定＞外部Ｉ／Ｆ＞ＵＳＢ設定＞ＵＳＢ一般者設定”と階層を辿る。画面表示／キー８１４はＵＳＢＭａｓｓＳｔｏｒａｇｅデバイス（マルチメディアカードリーダ９４／ＵＳＢメモリ９５など）の有効化を、画面表示／キー８１５はＵＳＢＨＩＤデバイス（キーボード９３など）の有効化を設定可能であることを示す。これらのキーが押下されると第一の実施形態で述べた図１０のような画面が開き有効無効を設定可能である。また閉じるキー８１６を押下すると、この画面を閉じ、図８の画面表示へ戻ることになる。本画面についても表示の一例であり、この形式に限定するものではない。
【００５５】
＜システム起動時処理フロー＞
図１８は、システム起動時の処理に関するフローチャートである。Ｓ７０１でシステムが起動する。すると、Ｓ７０２でドライバ制御タスクがＵＳＢホスト接続の有効化フラグを参照する。ここでいう有効化フラグとは、第一の実施形態における図１０、１１で説明した有効化のＯＮ／ＯＦＦの設定である。Ｓ７０３で有効化フラグがＯＦＦだと判定されるとＳ７０４では予め登録したデバイスドライバのみをコアドライバ２０２に登録する。例えば本実施形態では、ＦＡＸドライバ２１２と画像解析ボードドライバ２１１のみを登録することになる。Ｓ７０３で有効化フラグがＯＮだと判定されると、Ｓ７０５に進み、以降個々のデバイスのフラグを判定する処理に移る。Ｓ７０５ではＳ７０５では、ＦＡＸデバイスの有効化フラグがＯＦＦであると判定した場合、Ｓ７０６に進みＦＡＸドライバ２１２を登録しないようドライバ制御タスク内で情報を保持する。その後、Ｓ７０８へ進む。Ｓ７０５でＦＡＸデバイスの有効化フラグがＯＮだと判定した場合、Ｓ７０７に進み、ＦＡＸドライバ２１２を登録するようドライバ制御タスク内で情報を保持する。その後、Ｓ７０８へ進む。
【００５６】
続いてＳ７０８では、画像解析ボードデバイスの有効化フラグがＯＦＦであると判定した場合、Ｓ７０９に進み、画像解析ボードドライバを登録しないようドライバ制御タスク内で情報を保持する。その後、Ｓ７１１へ進む。Ｓ７０８で画像解析デバイスの有効化フラグがＯＮであると判定した場合、Ｓ７１０に進み、画像解析ボードドライバ２１１を登録するようドライバ制御タスク内で情報を保持する。その後、Ｓ７１１へ進む。Ｓ７１１では、ＭａｓｓＳｔｏｒａｇｅデバイスの有効化フラグがＯＦＦであると判定した場合、Ｓ７１２へ進み、ＭａｓｓＳｔｏｒａｇｅドライバ２０４を登録しないようドライバ制御タスク内で情報を保持する。その後、Ｓ７１４へ進む。Ｓ７１１でＭａｓｓＳｔｏｒａｇｅデバイスの有効化フラグがＯＮであると判定すると、Ｓ７１３へ進み、ＭａｓｓＳｔｏｒａｇｅドライバ２０４を登録するようドライバ制御タスク内で情報を保持する。その後、Ｓ７１４へ進む。Ｓ７１４では、ＨＩＤデバイスの有効化フラグがＯＦＦであると判定した場合、Ｓ７１５へ進み、ＨＩＤドライバ２０３を登録しないようドライバ制御タスク内で情報を保持する。Ｓ７１４でＨＩＤデバイスの有効化フラグがＯＮであると判定すると、Ｓ７１６へ進み、ＨＩＤドライバを登録するようドライバ制御タスク内で情報を保持する。そしてＳ７１７において、コアドライバ２０２に登録するとして保持しておいた情報に基づいて、コアドライバ２０２にデバイスドライバ群の情報を登録して終了する。
【００５７】
以上により、ＵＳＢホスト接続をシステムとして一括して無効化することができる一方で、ＵＳＢデバイスに対し個別に有効化／無効化の設定をすることが可能となる。また、ＵＳＢデバイス側の対応に関係なく、意図しないデバイスの接続を排除することが可能となる。
【００５８】
＜第三の実施形態＞
ＵＳＢホスト接続が無効化された場合においても、使用するデバイスを接続可能とするため、物理的なＵＳＢホストＩ／Ｆごとに有効化／無効化を設定可能とする第三の実施形態について説明する。本実施形態では説明が概ね第一の実施形態と重複するため、ここでは差分のみの説明とする。図１９の操作部表示についてもその処理については第一の実施形態と同様である。
【００５９】
図１９は、第一の実施形態で示した図８の設定キー４０３が押下された際に表示される画面及びキーの例である。特に管理者が操作可能な、すべてのＵＳＢホストＩ／Ｆの設定画面である。設定キーが押下されるとさまざまな環境設定ができるが本実施形態ではその説明は割愛する。図１９はＵＳＢ管理者設定の画面であるが、環境設定の階層としては、“環境設定＞外部Ｉ／Ｆ＞ＵＳＢ設定＞ＵＳＢ管理者設定”と階層を辿る。画面表示／キー８２１はＵＳＢホストの有効化を設定するための項目を示す。画面表示／キー８２２、８２３、８２４、８２５はそれぞれ当該情報処理装置が有する物理的なＵＳＢポート１、２、３、４の有効化を設定可能である。このポート名については、例えば「本体横ポート」などのようにユーザがわかりやすい表現にしても良い。それぞれのキーを押下することにより、各ポートに対する設定画面へと遷移する。閉じるキー８２６を押下することにより、この画面を閉じ、図８の画面表示へ戻ることになる。なお、ここで示した設定画面は一例であり、上記に述べた機能が実現できれば、どのような形式でも構わない。また、第三の実施形態は、第一または第二の実施形態と組み合わせても良く、これによっても前述した階層や画面表示を変更してもかまわない。
【００６０】
＜デバイス接続時の処理フロー＞
図２０は、ＵＳＢデバイス（例えばキーボードやＵＳＢメモリ、ＦＡＸなど）接続時の処理に関するフローチャートである。Ｓ８０１でユーザがＵＳＢデバイスを接続するかまたは、ＵＳＢデバイス接続状態でシステムを起動する。その後Ｓ８０２でコアドライバ２０２がＵＳＢデバイスの接続を検知する。Ｓ８０３ではドライバ制御タスクが、各ポートの使用の有効化フラグを参照する。次にＳ８０４では、図７で説明したプロトコル情報に含まれるＵＳＢデバイスが接続されたポート情報を取得する。Ｓ８０５において、Ｓ８０３で取得した有効化フラグとポート情報とを比較し、Ｓ８０６で接続中のポートが使用可能かどうかを判定する。接続中のポートが使用不可能（有効化フラグＯＦＦ）であった場合は、本処理を終了する。使用可能（有効化フラグＯＮ）であった場合は、Ｓ８０８へ進む。Ｓ８０８において、コアドライバ２０２で、コアドライバ内のテーブルを走査し、取得したデバイス情報とテーブル内の情報とを比較して、Ｓ８０９でデバイス情報に合致するかどうかを判定する。合致した場合は、Ｓ８１０へ進み、コアドライバ２０２は、接続したＵＳＢデバイスのデバイス情報とテーブル内のドライバ情報とを関連付けて、デバイスを使用できるようにし処理を終了する。Ｓ８０９において、どのドライバ情報とも合致しないと判定した場合は、処理を終了する。
【００６１】
以上により、当該情報処理装置が有する個々のＵＳＢの物理Ｉ／Ｆごとに、有効／無効の制御が可能となり、ユーザの意図するより利便性が高いＵＳＢホスト接続を実現可能である。
【００６２】
＜備考＞
なお本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダー、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００６３】
また本発明の目的は、前述の実施形態の機能を実現するプログラムを記録した記録媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても達成される。この場合、記憶媒体から読み出された実行可能なプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体およびプログラムを記憶した記憶媒体は本発明を構成することになる。
【００６４】
また、本発明には、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【００６５】
また、発明の実施の形態は、本発明を中核として構成される装置又は方法を説明している。このため本実施形態には本発明の本質的部分を加えて付加的な構成要件も記載されている。すなわち発明の実施の形態において説明した装置又は方法の構成要件を備えることは、本発明を成立させるための十分条件ではあるものの、必要条件ではない。
【符号の説明】
【００６６】
５１  リーダー装置
５２  原稿給紙ユニット
５３  スキャナユニット
５５  プリンタ装置
５６  マーキングユニット
５７  排紙ユニット
５８  給紙ユニット
６０  制御装置
６５  ＨＤＤ
６６  不揮発性メモリ
６７  揮発性メモリ
７０  操作部
８０  ＵＳＢホストコントローラ
【図１】
2010191717.tif 000003
【図２】
2010191717.tif 000004
【図３】
2010191717.tif 000005
【図４】
2010191717.tif 000006
【図５】
2010191717.tif 000007
【図６】
2010191717.tif 000008
【図７】
2010191717.tif 000009
【図８】
2010191717.tif 000010
【図９】
2010191717.tif 000011
【図１０】
2010191717.tif 000012
【図１１】
2010191717.tif 000013
【図１２】
2010191717.tif 000014
【図１３】
2010191717.tif 000015
【図１４】
2010191717.tif 000016
【図１５】
2010191717.tif 000017
【図１６】
2010191717.tif 000018
【図１７】
2010191717.tif 000019
【図１８】
2010191717.tif 000020
【図１９】
2010191717.tif 000021
【図２０】
2010191717.tif 000022