(57)【特許請求の範囲】
【請求項１】
プリンタドライバ及びローカル通信ポートを備え、前記ローカル通信ポートを介して通信するように構成された第１の画像処理装置のファームウェア、及び前記プリンタドライバと通信可能な第２の画像処理装置のファームウェアを更新する更新アプリケーションを実行する情報処理装置であって、
前記ローカル通信ポートに接続された前記第１の画像処理装置を示す第１の情報を取得
する第１の取得手段と、
前記プリンタドライバと通信可能な前記第２の画像処理装置を示す第２の情報を取得する第２の取得手段と、
前記情報処理装置のプリンタドライバが、Ｖ３プリンタドライバである場合、前記第１の情報及び前記第２の情報に基づいて更新対象のファームウェアを有する画像処理装置を更新候補として決定する決定手段とを備え、
前記決定手段は、前記情報処理装置のプリンタドライバがＶ４プリンタドライバである場合、前記第１の取得手段によって前記第１の情報を取得することなく前記第２の情報を用いて前記更新候補を決定することを特徴とする情報処理装置。
【請求項２】
前記第１の情報が示す前記第１の画像処理装置及び前記第２の情報が示す前記第２の画像処理装置のうち前記更新候補を前記情報処理装置の画面に表示する表示制御を行う表示制御手段を更に備えることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記ローカル通信ポートは、USB（Universal Serial Bus）通信ポートであることを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記表示制御手段によって前記更新候補が表示された前記画面においてユーザから入力された情報に基づき、ファームウェアを更新させる画像処理装置を選択する選択手段を更に備えることを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記第２の情報は、前記プリンタドライバの情報であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第１の画像処理装置は、前記プリンタドライバがインストールされていない装置であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
プリンタドライバ及びローカル通信ポートを備え、前記ローカル通信ポートを介して通信するように構成された第１の画像処理装置のファームウェア、及び前記プリンタドライバと通信可能な第２の画像処理装置のファームウェアを更新する更新アプリケーションを実行する情報処理装置の制御方法において、
前記ローカル通信ポートに接続された前記第１の画像処理装置を示す第１の情報を取得
する第１の取得ステップと、
前記プリンタドライバと通信可能な前記第２の画像処理装置を示す第２の情報を取得する第２の取得ステップと、
前記情報処理装置のプリンタドライバが、Ｖ３プリンタドライバである場合、前記第１の情報及び前記第２の情報に基づいて更新対象のファームウェアを有する画像処理装置を更新候補として決定する決定ステップとを有し、
前記決定ステップは、前記情報処理装置のプリンタドライバがＶ４プリンタドライバである場合、前記第１の取得ステップにて前記第１の情報を取得することなく前記第２の情報を用いて前記更新候補を決定することを特徴とする情報処理装置の制御方法。
【請求項８】
前記第１の情報が示す前記第１の画像処理装置及び前記第２の情報が示す前記第２の画像処理装置のうち前記更新候補を前記情報処理装置の画面に表示する表示制御を行う表示制御ステップを更に有することを特徴とする請求項７記載の情報処理装置の制御方法。
【請求項９】
前記ローカル通信ポートとは、USB（Universal Serial Bus）通信ポートであることを特徴とする請求項７又は８記載の情報処理装置の制御方法。
【請求項１０】
前記更新候補が表示された前記画面においてユーザから入力された情報に基づき、ファームウェアを更新させる画像処理装置を選択する選択ステップを更に有することを特徴とする請求項８記載の情報処理装置の制御方法。
【請求項１１】
前記第２の情報は、前記プリンタドライバの情報であることを特徴とする請求項７乃至１０のいずれか１項に記載の情報処理装置の制御方法。
【請求項１２】
前記第１の画像処理装置は、前記プリンタドライバがインストールされていない装置であることを特徴とする請求項７乃至１１のいずれか１項に記載の情報処理装置の制御方法の制御方法。
【請求項１３】
プリンタドライバ及びローカル通信ポートを備え、前記ローカル通信ポートを介して通信するように構成された第１の画像処理装置のファームウェア、及び前記プリンタドライバと通信可能な第２の画像処理装置のファームウェアを更新する更新アプリケーションを実行する情報処理装置の制御方法をコンピュータに実行させるプログラムにおいて、
前記情報処理装置の制御方法は、
前記ローカル通信ポートに接続された前記第１の画像処理装置を示す第１の情報を取得
する第１の取得ステップと、
前記プリンタドライバと通信可能な前記第２の画像処理装置を示す第２の情報を取得する第２の取得ステップと、
前記情報処理装置のプリンタドライバが、Ｖ３プリンタドライバである場合、前記第１の情報及び前記第２の情報に基づいて更新対象のファームウェアを有する画像処理装置を更新候補として決定する決定ステップとを有し、
前記決定ステップは、前記情報処理装置のプリンタドライバがＶ４プリンタドライバである場合、前記第１の取得ステップにて前記第１の情報を取得することなく前記第２の情報を用いて前記更新候補を決定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
情報処理装置としてのパーソナルコンピュータ（ＰＣ）にインストールされ、且つＰＣに接続された画像処理装置としてのＭＦＰのファームウェアを更新する更新アプリケーションが知られている。ユーザによって更新アプリケーションが起動されると、ＰＣではファームウェアが更新されるＭＦＰを更新候補として表示する。このとき、更新アプリケーションは、ＰＣにインストールされたプリンタドライバモジュールとデータ通信可能なＭＦＰのリストの中から更新されるファームウェアを有するＭＦＰを更新候補として選定する第１の選定を行う。また、更新アプリケーションはＰＣのＵＳＢポートに接続されたＭＦＰの中から更新されるファームウェアを有するＭＦＰを更新候補として選定する第２の選定を行う。
【０００３】
ここで、例えば、更新されるファームウェアを有するＭＦＰが、プリンタドライバモジュールとデータ通信可能であって且つＵＳＢポートに接続される場合、当該ＭＦＰは、第１の選定及び第２の選定のいずれにおいても更新候補として選定される。その結果、同一のＭＦＰが更新候補として重複して表示されるという不具合が発生する。これに対応して、更新アプリケーションは、第２の選定において、ＵＳＢポートに接続されたＭＦＰのうちプリンタドライバモジュールとデータ通信可能なＭＦＰを更新候補として選定しない。このとき、更新アプリケーションは、プリンタドライバモジュール及びＵＳＢポートが接続されている旨を示す接続情報に基づいてプリンタドライバモジュールとデータ通信可能なＭＦＰを特定する。具体的に、更新アプリケーションは、ＭＦＰが或るＵＳＢポートに接続されているとき、当該ＵＳＢポート及びプリンタドライバモジュールが接続されている旨を示す接続情報が存在すれば、当該ＭＦＰはプリンタドライバモジュールとデータ通信可能であるとみなす。そして、更新アプリケーションは、当該ＭＦＰを第２の選定において更新候補として選定しない。
【０００４】
ところで、プリンタドライバモジュールとして従来のＯＳ（Operating System）に対応するＶｅｒｓｉｏｎ３のプリンタドライバモジュール（以下、単に「Ｖ３ドライバ」という。）が用いられている。Ｖ３ドライバでは、Ｖ３ドライバに設けられるランゲージモニタモジュールがＰＣ及びＵＳＢポートに接続されたＭＦＰ間のデータ通信を制御する。近年では、Ｗｉｎｄｏｗｓ８以降のＯＳに対応するプリンタドライバモジュールとしてＶｅｒｓｉｏｎ４のプリンタドライバモジュール（以下、単に「Ｖ４ドライバ」という。）が開発され、Ｖ３ドライバからＶ４ドライバへのアップデートが検討されている。
【０００５】
ところが、Ｖ４ドライバはランゲージモニタモジュールを備えないため、Ｖ３ドライバをＶ４ドライバへ単にアップデートするだけでは、ランゲージモニタモジュールが行うようなＰＣ及びＭＦＰの間のデータ通信を実現することができない。これに対応して、ＰＣはＭＦＰの仮想デバイスモジュールをインストールし、仮想デバイスモジュールによってＰＣ及びＵＳＢポートに接続されたＭＦＰの間のデータ通信を実現する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−０１１７９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、Ｖ４ドライバを備えるＰＣは、Ｖ４ドライバ及び仮想デバイスモジュールが接続されている旨を示す接続情報を管理するものの、Ｖ４ドライバ及びＵＳＢポートが接続されている旨を示す接続情報を管理していない。そのため、更新アプリケーションは、第２の選定において、接続情報に基づいてＵＳＢポートに接続されたＭＦＰのうちＶ４ドライバとデータ通信可能なＭＦＰを特定することができない。具体的に、ＭＦＰが或るＵＳＢポートに接続されているとき、例え、接続情報が存在していても、当該ＵＳＢポートがＶ４ドライバと接続されているかが不明であるため、当該ＭＦＰはＶ４ドライバとデータ通信可能であるとみなすことができない。その結果、更新されるファームウェアを有するＭＦＰが、プリンタドライバモジュールとデータ通信可能であって且つＵＳＢポートに接続される場合、当該ＭＦＰが、第１の選定及び第２の選定のいずれにおいても更新候補として選定されることがある。すなわち、プリンタドライバモジュールの種別によっては更新候補が重複して表示されるという不具合が発生してしまうという問題が生じる。
【０００８】
本発明の目的は、プリンタドライバモジュールの種別に関わらず更新候補が重複して表示されるのを防止することができる情報処理装置、その制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の情報処理装置は、プリンタドライバ及びローカル通信ポートを備え、前記ローカル通信ポートを介して通信するように構成された第１の画像処理装置のファームウェア、及び前記プリンタドライバと通信可能な第２の画像処理装置のファームウェアを更新する更新アプリケーションを実行する情報処理装置であって、前記ローカル通信ポートに接続された前記第１の画像処理装置を示す第１の情報を取得
する第１の取得手段と、前記プリンタドライバと通信可能な前記第２の画像処理装置を示す第２の情報を取得する第２の取得手段と、前記情報処理装置のプリンタドライバが、Ｖ３プリンタドライバである場合、前記第１の情報及び前記第２の情報に基づいて更新対象のファームウェアを有する画像処理装置を更新候補として決定する決定手段とを備え、前記決定手段は、前記情報処理装置のプリンタドライバがＶ４プリンタドライバである場合、前記第１の取得手段によって前記第１の情報を取得することなく前記第２の情報を用いて前記更新候補を決定することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、プリンタドライバモジュールの種別に関わらず更新候補が重複して表示されるのを防止することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係る更新アプリケーションモジュールがインストールされた情報処理装置としてのＰＣを含む通信システムの構成を概略的に示す構成図である。
【図２】図１のＰＣのハードウェアの構成を概略的に示すブロック図である。
【図３】図１における更新アプリケーションモジュールの構成を概略的に示すブロック図である。
【図４】図１のＰＣで実行される更新制御処理の手順を示すフローチャートである。
【図５】図２の表示部で表示される設定画面の一例を示す図である。
【図６】従来の更新候補選定処理の手順を示すフローチャートである。
【図７】図６のステップＳ６０１の第１の選定処理の手順を示すフローチャートである。
【図８】図６のステップＳ６０２の第２の選定処理の手順を示すフローチャートである。
【図９】図１のＰＣ１０１にインストールされたＶ４ドライバモジュールを含むソフトウェアモジュールを説明するための図である。
【図１０】図９のＶ４ドライバモジュールの構成を概略的に示すブロック図である。
【図１１】図９の仮想デバイスサービスモジュールの構成を概略的に示すブロック図である。
【図１２】本実施の形態における更新候補選定処理の手順を示すフローチャートである。
【図１３】図２の表示部で表示される設定画面の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面を参照しながら詳述する。
【００１３】
図１は、本発明の実施の形態に係る更新アプリケーションモジュール１１１がインストールされた情報処理装置としてのＰＣ１０１を含む通信システム１００の構成を概略的に示す構成図である。
【００１４】
図１において、通信システム１００は、ＰＣ１０１及び画像処理装置としてのＭＦＰ１０２，１０３，１０４を備える。ＰＣ１０１はＭＦＰ１０２とＬＡＮケーブル１１２を介して接続され、また、ＰＣ１０１はＭＦＰ１０３，１０４のそれぞれと後述する図２のＵＳＢポート２０８，２０９を介して接続されている。なお、図１において、実線矢印は印刷を実行するための印刷データの通信を示し、点線矢印は印刷データ以外のデータの通信を示す。
【００１５】
図１において、ＰＣ１０１はソフトウェアモジュール１０５を備え、ＰＣ１０１に接続されたＭＦＰ１０２〜１０４の各ファームウェアの更新処理を行う。ソフトウェアモジュール１０５は、アプリケーションモジュール１０６、Ｖ３ドライバモジュール１０７、標準スプーラモジュール１０９、ステータスウィンドウモジュール１１０、及び更新アプリケーションモジュール１１１を備える。Ｖ３ドライバモジュール１０７はランゲージモニタモジュール１０８を備える。ソフトウェアモジュール１０５の各処理は、後述するＣＰＵ２０１がＲＯＭ２０４やＨＤＤ２０５に格納されたプログラムを実行することによって行われる。
【００１６】
アプリケーションモジュール１０６はＶ３ドライバモジュール１０７と通信可能なＭＦＰ１０２，１０３で実行される印刷の開始の指示を受け付け、該指示を受け付けた旨を示す指示コマンドをＶ３ドライバモジュール１０７に送信する。Ｖ３ドライバモジュール１０７は、アプリケーションモジュール１０６から受信した指示コマンドを管理し、該指示コマンドに基づいて印刷データを生成する。ランゲージモニタモジュール１０８はＰＣ１０１に接続されたＭＦＰ１０２〜１０４のうちＶ３ドライバモジュール１０７と通信可能なＭＦＰとの通信制御を行う。本実施の形態では、ＰＣ１０１の図示しないＷｉｎｄｏｗｓＯＳがプリンタドライバ関連情報を管理する。プリンタドライバ関連情報はＰＣ１０１にインストールされているプリンタドライバモジュールのバージョン情報やプリンタドライバモジュールと通信可能なＭＦＰを示すドライバ対応機種リスト等を含む。以下では、ＭＦＰ１０２，１０３がＶ３ドライバモジュール１０７と通信可能なＭＦＰであり、ＭＦＰ１０４がＶ３ドライバモジュール１０７と通信不可能なＭＦＰであることを前提とする。つまり、ＰＣ１０１はＶ３ドライバモジュール１０７により、ＭＦＰ１０２〜１０４のうちＭＦＰ１０２，１０３にのみ印刷データ等を送信してＭＦＰ１０２，１０３における各処理の実行を制御する。標準スプーラモジュール１０９は上記ＷｉｎｄｏｗｓＯＳの印刷用スプーラである。標準スプーラモジュール１０９はＶ３ドライバモジュール１０７で生成された印刷データを一時的に格納し、格納された印刷データを格納した順にランゲージモニタモジュール１０８を介してＭＦＰ１０２，１０３に出力する。
【００１７】
ステータスウィンドウモジュール１１０は、ＭＦＰ１０２，１０３の印刷の実行状況（ステータス）の表示制御を行う。更新アプリケーションモジュール１１１はＰＣ１０１に接続されたＭＦＰ１０２〜１０４のファームウェアの更新処理を制御する。更新アプリケーションモジュール１１１はファームウェアの更新用データ及び当該更新用データに対応する更新データ対応機種リストを管理する。また、更新アプリケーションモジュール１１１は、ＰＣ１０１に接続されたＭＦＰのうち更新候補としてのＭＦＰの一覧情報を後述する図２の表示部２１０に表示させ、ユーザによって選択されたＭＦＰの更新処理を行う。更新アプリケーションモジュール１１１は、ＭＦＰ１０２，１０３等のようにＶ３ドライバモジュール１０７と通信可能なＭＦＰに対してランゲージモニタモジュール１０８を介して更新処理を行う。一方、更新アプリケーションモジュール１１１はＭＦＰ１０４等のようにＶ３ドライバモジュール１０７と通信不可能なＭＦＰに対してランゲージモニタモジュール１０８を介さずに直接更新処理を行う。
【００１８】
図２は、図１のＰＣ１０１のハードウェアの構成を概略的に示すブロック図である。
【００１９】
図２において、ＰＣ１０１は、ＣＰＵ２０１、ＲＡＭ２０２、ＮＶＭＥＭ（Non Volatile Memory）２０３、ＲＯＭ２０４、ＨＤＤ２０５、及びＬＡＮＩ／Ｆ２０６を備える。また、ＰＣ１０１はＵＳＢＩ／Ｆ２０７、少なくとも１つ、例えば、２つのＵＳＢポート２０８，２０９、及び表示部２１０を備える。ＣＰＵ２０１、ＲＡＭ２０２、ＮＶＭＥＭ２０３、ＲＯＭ２０４、ＨＤＤ２０５、ＬＡＮＩ／Ｆ２０６、ＵＳＢＩ／Ｆ２０７、及び表示部２１０はシステムバス２１１を介して互いに接続されている。ＵＳＢＩ／Ｆ２０７はＵＳＢポート２０８，２０９とそれぞれ接続されている。
【００２０】
ＣＰＵ２０１は、ＰＣ１０１全体を統括的に制御し、ＲＯＭ２０４に格納されたプログラムを実行してソフトウェアモジュール１０５等の処理を実行する。ＲＡＭ２０２はＣＰＵ２０１の作業領域として用いられ、また、ＲＡＭ２０２は各データの一時格納領域として用いられる。ＮＶＭＥＭ２０３は不揮発性メモリであり、設定情報等を格納する。ＲＯＭ２０４は不揮発性メモリであり、ＣＰＵ２０１が実行するプログラムを格納する。ＨＤＤ２０５は各データを格納する。ＬＡＮＩ／Ｆ２０６はＬＡＮケーブル１１２を介して接続されたＭＦＰ１０２とデータ通信を行う。ＵＳＢＩ／Ｆ２０７はＵＳＢポート２０８，２０９のそれぞれを介して接続されたＭＦＰ１０３，１０４とデータ通信を行う。本実施の形態では、ＵＳＢポート２０８に接続されたＭＦＰ１０３がＶ３ドライバモジュール１０７と通信可能なＭＦＰである場合、ＷｉｎｄｏｗｓＯＳがＶ３ドライバモジュール１０７及びＵＳＢポート２０８が接続されている旨を示す内部接続情報を管理する。表示部２１０は各設定を行う設定画面を表示し、例えば、更新アプリケーションモジュール１１１の制御により、更新候補となるＭＦＰの一覧情報を含む後述する図５の設定画面５０１を表示する。
【００２１】
図３は、図１における更新アプリケーションモジュール１１１の構成を概略的に示すブロック図である。
【００２２】
図３において、更新アプリケーションモジュール１１１は更新処理制御モジュール３０１、ユーザインターフェースモジュール３０２、情報保持モジュール３０３、及び更新データ保持モジュール３０４を備える。
【００２３】
更新処理制御モジュール３０１は各ＭＦＰ１０２〜１０４のファームウェアの更新処理を制御する。ユーザインターフェースモジュール３０２は後述する図５の設定画面５０１の表示制御や、当該設定画面５０１によって入力された各設定の受け付けを行う。情報保持モジュール３０３はファームウェアの更新用データに対応する更新データ対応機種リストを保持し、更新データ保持モジュール３０４はファームウェアの更新用データを保持する。
【００２４】
図４は、図１のＰＣ１０１で実行される更新制御処理の手順を示すフローチャートである。
【００２５】
図４の処理は、ＣＰＵ２０１がＲＯＭ２０４やＨＤＤ２０５に格納されたプログラムを実行することによって行われ、ユーザによって更新アプリケーションモジュール１１１の起動が指示された場合を前提とする。
【００２６】
図４の処理では、まず、ＣＰＵ２０１は後述する図１２の更新候補選定処理を行って（ステップＳ４０１）、ＰＣ１０１に接続されたＭＦＰのうちファームウェアの更新候補となるＭＦＰを選定する。次いで、ＣＰＵ２０１は選定されたＭＦＰの一覧情報を含む図５の設定画面５０１を表示部２１０に表示する（ステップＳ４０２）。
【００２７】
設定画面５０１はプリンタ名５０２及びポート名５０３を含む。プリンタ名５０２は選定されたＭＦＰを示す情報である。例えば、選定されたＭＦＰがＶ３ドライバモジュール１０７と通信可能なＭＦＰ１０２，１０３である場合、プリンタ名５０２にはＭＦＰ１０２，１０３の機種名が表示される。一方、選定されたＭＦＰがＶ３ドライバモジュール１０７と通信不可能なＭＦＰ１０４である場合、プリンタ名５０２にはＶ３ドライバモジュール１０７と通信可能なＭＦＰと区別する表示、例えば、「ＵＳＢ接続デバイス」が表示される。ポート名５０３は選定された各ＭＦＰの接続先を示す情報である。例えば、選定されたＭＦＰがＬＡＮケーブル１１２を介して接続されたＭＦＰ１０２である場合、ポート名５０３には該ＭＦＰ１０２のＩＰアドレスが表示される。一方、選定されたＭＦＰがＵＳＢポート２０８，２０９に接続されたＭＦＰ１０３，１０４である場合、ポート名５０３には該ＵＳＢポート２０８，２０９を示す情報として「ＵＳＢ００１」や「ＵＳＢ００２」が表示される。ユーザは表示された更新候補の中から所望する１つのＭＦＰを選択し、ＰＣ１０１は選択されたＭＦＰの更新処理を行う。
【００２８】
次いで、ＣＰＵ２０１はユーザによって設定画面５０１の設定が行われたことを検知すると、ユーザによって入力された入力情報を確認し（ステップＳ４０３）、ユーザによって更新候補の中からＭＦＰが選択されたか否かを判別する（ステップＳ４０４）。
【００２９】
ステップＳ４０４の判別の結果、更新候補の中からＭＦＰが選択されないとき、ＣＰＵ２０１はステップＳ４０３の処理に戻る。一方、ステップＳ４０４の判別の結果、更新候補の中からＭＦＰが選択されたとき、ＣＰＵ２０１は選択されたＭＦＰの更新処理を開始する（ステップＳ４０５）。具体的に、ＣＰＵ２０１は、更新候補の中から、例えば、ＭＦＰ１０２が選択された場合、ＭＦＰ１０２に更新処理を開始する旨を示す開始通知を送信する。ＣＰＵ２０１は開始通知の送信が完了した後にＭＦＰ１０２のファームウェアの更新用データをＭＦＰ１０２に送信する。その後、ＣＰＵ２０１はＭＦＰ１０２から更新用データの適用の完了又は失敗のいずれかを示す実行結果通知を受信するまで待機する。実行結果通知を受信すると、ＣＰＵ２０１は受信された実行結果通知に基づいて更新処理の実行結果を表示部２１０に表示し（ステップＳ４０６）、本処理を終了する。
【００３０】
次に、本実施の形態における更新候補選定処理を説明する前に、従来の更新候補選定処理について説明する。
【００３１】
図６は、従来の更新候補選定処理の手順を示すフローチャートである。
【００３２】
図６において、まず、ＣＰＵ２０１は後述する図７の第１の選定処理を実行し（ステップＳ６０１）、プリンタドライバ関連情報が示すＭＦＰの中から更新候補を選定する。次いで、ＣＰＵ２０１は後述する図８の第２の選定処理を実行し（ステップＳ６０２）、後述するＵＳＢポートの接続情報が示すＭＦＰの中から更新候補を選定し、図４のステップＳ４０２の処理を行う。
【００３３】
図７は、図６のステップＳ６０１の第１の選定処理の手順を示すフローチャートである。
【００３４】
図７において、まず、ＣＰＵ２０１はＷｉｎｄｏｗｓＯＳに問い合わせを行ってインストール済みのプリンタドライバモジュールを示すプリンタドライバリストを取得する（ステップＳ７０１）。次いで、ＣＰＵ２０１は取得されたプリンタドライバリストに含まれる全てのプリンタドライバモジュールの選定処理を完了したか否かを判別する（ステップＳ７０２）。
【００３５】
ステップＳ７０２の判別の結果、プリンタドライバリストに含まれるいずれかのプリンタドライバモジュールの選定処理を完了しないとき、ＣＰＵ２０１はプリンタドライバリストから選定処理を完了していない一のプリンタドライバモジュールを選択する。ＣＰＵ２０１はＷｉｎｄｏｗｓＯＳに問い合わせを行い、該一のプリンタドライバモジュールのプリンタドライバ関連情報を取得する（ステップＳ７０３）。プリンタドライバ関連情報はプリンタドライバモジュールのバージョン情報や該プリンタドライバモジュールと通信可能な機種名を示すドライバ対応機種リスト等を含む。次いで、ＣＰＵ２０１はプリンタドライバ関連情報から更新されるファームウェアを有するＭＦＰを特定したかを判別する（ステップＳ７０４）。具体的に、ＣＰＵ２０１はプリンタドライバ関連情報に含まれるドライバ対応機種リスト及び情報保持モジュール３０３に保持される更新データ対応機種リストを比較する。ＣＰＵ２０１は、ドライバ対応機種リストが示すＭＦＰのうち更新データ対応機種リストが示すＭＦＰと対応、例えば、一致するＭＦＰを更新されるファームウェアを有するＭＦＰと特定する。
【００３６】
ステップＳ７０４の判別の結果、プリンタドライバ関連情報から更新されるファームウェアを有するＭＦＰを特定したとき、ＣＰＵ２０１は当該ＭＦＰを更新候補として選定し（ステップＳ７０５）、ステップＳ７０２の処理に戻る。一方、ステップＳ７０４の判別の結果、プリンタドライバ関連情報から更新されるファームウェアを有するＭＦＰを特定しないとき、ステップＳ７０２の処理に戻る。すなわち、図７の処理では、プリンタドライバ関連情報に基づいてＰＣ１０１のプリンタドライバモジュールと通信可能なＭＦＰに対する選定処理が行われる。
【００３７】
ステップＳ７０２の判別の結果、プリンタドライバリストに含まれる全てのプリンタドライバモジュールの選定処理を完了したとき、ＣＰＵ２０１は本処理を終了する。
【００３８】
図８は、図６のステップＳ６０２の第２の選定処理の手順を示すフローチャートである。
【００３９】
図８において、まず、ＣＰＵ２０１はＵＳＢポート２０８，２０９等のＰＣ１０１に設けられるＵＳＢポートを示すＵＳＢポートリストを取得する（ステップＳ８０１）。次いで、ＣＰＵ２０１は取得されたＵＳＢポートリストに含まれる全てのＵＳＢポートの接続情報の確認を完了したか否かを判別する（ステップＳ８０２）。ＵＳＢポートの接続情報は該ＵＳＢポート及びプリンタドライバモジュール、例えば、Ｖ３ドライバモジュール１０７が接続されている旨を示す内部接続情報や、ＵＳＢポートに接続されたＭＦＰを示す外部接続情報を含む。
【００４０】
ステップＳ８０２の判別の結果、取得されたＵＳＢポートリストに含まれる全てのＵＳＢポートの接続情報の確認を完了したとき、ＣＰＵ２０１は本処理を終了する。一方、ステップＳ８０２の判別の結果、取得されたＵＳＢポートリストに含まれるいずれかのＵＳＢポートの接続情報の確認を完了しないとき、ＣＰＵ２０１は取得されたＵＳＢポートリストから接続情報の確認を完了していない一のＵＳＢポートを選択する。その後、ＣＰＵ２０１は選択された一のＵＳＢポートの接続情報を取得する（ステップＳ８０３）。次いで、ＣＰＵ２０１は一のＵＳＢポートに接続されたＭＦＰがプリンタドライバモジュールと通信可能であるか否かを判別する（ステップＳ８０４）。ここで、プリンタドライバモジュールと通信可能なＭＦＰに対する選定は既に図７の処理で実行されている。例えば、更新されるファームウェアを有するＭＦＰが、プリンタドライバモジュールと通信可能であって且つ一のＵＳＢポートに接続される場合、当該ＭＦＰは、ステップＳ７０５及び後述するステップＳ８０８のいずれにおいても更新候補として選定される。その結果、同一のＭＦＰが更新候補として重複して表示されるという不具合が発生する。これに対応して、図８の処理では、一のＵＳＢポートに接続されたＭＦＰのうちプリンタドライバモジュールと通信可能なＭＦＰを更新候補として選定しないように後述するステップＳ８０８を行う前にステップＳ８０４の判別処理を行う。ステップＳ８０４では、例えば、ＷｉｎｄｏｗｓＯＳから一のＵＳＢポート及びプリンタドライバモジュールが接続されている旨を示す内部接続情報を取得した場合、ＣＰＵ２０１は一のＵＳＢポートに接続されたＭＦＰがプリンタドライバモジュールと通信可能であると判別する。一方、ＷｉｎｄｏｗｓＯＳから一のＵＳＢポート及びプリンタドライバモジュールが接続されている旨を示す内部接続情報を取得しない場合、ＣＰＵ２０１は一のＵＳＢポートに接続されたＭＦＰがプリンタドライバモジュールと通信不可能であると判別する。
【００４１】
ステップＳ８０４の判別の結果、一のＵＳＢポートに接続されたＭＦＰがプリンタドライバモジュールと通信可能であるとき、ＣＰＵ２０１は当該一のＵＳＢポートに接続されたＭＦＰを更新候補に選定せず（ステップＳ８０５）、ステップＳ８０２の処理に戻る。
【００４２】
ステップＳ８０４の判別の結果、一のＵＳＢポートに接続されたＭＦＰがプリンタドライバモジュールと通信不可能であるとき、ＣＰＵ２０１は一のＵＳＢポートの接続情報から該一のＵＳＢポートに接続されたＭＦＰを特定する（ステップＳ８０６）。次いで、ＣＰＵ２０１は特定されたＭＦＰが更新されるファームウェアを有するＭＦＰであるかを判別する（ステップＳ８０７）。具体的に、一のＵＳＢポートに接続されたＭＦＰが更新データ対応機種リストが示すＭＦＰと対応、例えば、一致する場合、ＣＰＵ２０１は一のＵＳＢポートに接続されたＭＦＰが更新されるファームウェアを有するＭＦＰであると判別する。一方、一のＵＳＢポートに接続されたＭＦＰが更新データ対応機種リストが示すＭＦＰと対応、例えば、一致しない場合、ＣＰＵ２０１は一のＵＳＢポートに接続されたＭＦＰが更新されるファームウェアを有しないＭＦＰであると判別する。
【００４３】
ステップＳ８０７の判別の結果、一のＵＳＢポートに接続されたＭＦＰが更新されるファームウェアを有するＭＦＰであるとき、ＣＰＵ２０１は該ＭＦＰを更新候補に選定し（ステップＳ８０８）、ステップＳ８０２の処理に戻る。一方、ステップＳ８０７の判別の結果、一のＵＳＢポートに接続されたＭＦＰが更新されるファームウェアを有しないＭＦＰであるとき、ＣＰＵ２０１は該ＭＦＰを更新候補に選定しない（ステップＳ８０９）。すなわち、図８の処理では、ＵＳＢポートの接続情報に基づいてＰＣ１０１のＵＳＢポートに接続されたＭＦＰに対する選定処理が行われる。その後、ＣＰＵ２０１はステップＳ８０２の処理に戻る。
【００４４】
次に、ＰＣ１０１に図９のＶ４ドライバモジュール９０２を含むソフトウェアモジュール９０１がインストールされた場合について説明する。
【００４５】
図９は、図１のＰＣ１０１にインストールされたＶ４ドライバモジュール９０２を含むソフトウェアモジュール９０１を説明するための図である。
【００４６】
ソフトウェアモジュール９０１は、その構成、作用が上述したソフトウェアモジュール１０５と基本的に同じであり、プリンタドライバモジュールのバージョンが異なる点でソフトウェアモジュール１０５と異なるため、以下、重複した構成、作用については説明を省略し、異なる構成、作用について説明を行う。
【００４７】
図９において、ＰＣ１０１はソフトウェアモジュール９０１を備える。ソフトウェアモジュール９０１は、図１のアプリケーションモジュール１０６、標準スプーラモジュール１０９、及び更新アプリケーションモジュール１１１の他に、Ｖ４ドライバモジュール９０２、ステータスウィンドウモジュール９０３、設定アプリケーションモジュール９０４、及び仮想デバイスサービスモジュール９０５を備える。
【００４８】
Ｖ４ドライバモジュール９０２はアプリケーションモジュール１０６から受信した指示コマンドを管理し、該指示コマンドに基づいて印刷データを生成する。本実施の形態では、図示しないＷｉｎｄｏｗｓＯＳに問い合わせてプリンタドライバモジュールのバージョン情報を取得可能である。Ｖ４ドライバモジュール９０２は該Ｖ４ドライバモジュール９０２と通信可能なＭＦＰ１０２，１０３と仮想デバイスサービスモジュール９０５を介してデータ通信を行う。ステータスウィンドウモジュール９０３はＲＰＣ（ＲｅｍｏｔｅＰｒｏｃｅｄｕｒｅ Ｃａｌｌ）クライアント機能を有する。ステータスウィンドウモジュール９０３はＲＰＣクライアント機能を用いて仮想デバイスサービスモジュール９０５と通信を行ってＭＦＰ１０２，１０３の印刷の実行状況（ステータス）の表示制御を行う。設定アプリケーションモジュール９０４は仮想デバイスサービスモジュール９０５の各設定情報を管理する。仮想デバイスサービスモジュール９０５は、Ｖ４ドライバモジュール９０２、標準スプーラモジュール１０９、及びステータスウィンドウモジュール９０３に対し、物理的に各ＭＦＰ１０２，１０３のように振る舞うエミュレータである。仮想デバイスサービスモジュール９０５はＷｉｎｄｏｗｓネットワーク機能を利用してＶ４ドライバモジュール９０２、標準スプーラモジュール１０９、及びステータスウィンドウモジュール９０３の各々とデータ通信を行う。
【００４９】
図１０は、図９のＶ４ドライバモジュール９０２の構成を概略的に示すブロック図である。
【００５０】
図１０において、Ｖ４ドライバモジュール９０２は、ＵＩ制御モジュール１００１、印刷設定管理モジュール１００２、及び双方向通信モジュール１００３を備える。また、Ｖ４ドライバモジュール９０２は印刷データ生成モジュール１００４、ＰＤＬ（Page Description Language）変換モジュール１００５、及びデバイスＩ／Ｆモジュール１００６を備える。Ｖ４ドライバモジュール９０２の各処理は、ＣＰＵ２０１がＲＯＭ２０４に格納されたプログラムを実行することによって行われる。
【００５１】
ＵＩ制御モジュール１００１は印刷対象となる画像データや印刷設定情報等を設定する印刷設定画面の表示を制御する。印刷設定管理モジュール１００２は印刷設定画面で設定可能な設定項目の組合せを管理する。双方向通信モジュール１００３はＲＰＣクライアント機能を有し、仮想デバイスサービスモジュール９０５とデータ通信を行う。印刷データ生成モジュール１００４は指示コマンドに基づいてレンダリングを行ってＸＰＳ（XML Paper Specification）形式の中間データを生成する。ＰＤＬ変換モジュール１００５はＸＰＳ形式の中間データをＭＦＰ１０２，１０３で読み込み可能なＰＤＬ形式の印刷データに変換する。デバイスＩ／Ｆモジュール１００６は変換されたＰＤＬ形式の印刷データを標準スプーラモジュール１０９に送信する。
【００５２】
図１１は、図９の仮想デバイスサービスモジュール９０５の構成を概略的に示すブロック図である。
【００５３】
図１１において、仮想デバイスサービスモジュール９０５は、複数の仮想デバイスモジュールを備え、各仮想デバイスモジュールは各ＭＦＰに対応して設けられる。仮想デバイスサービスモジュール９０５は仮想デバイスの登録や削除を受け付ける機能を有し、新たな仮想デバイスの登録を受け付けた場合、ＰＣ１０１の受信ポート番号と新たな仮想デバイスとを対応付けする。受信ポート番号と新たな仮想デバイスとの対応付けに関する情報として、ＷｉｎｄｏｗｓＯＳはＶ４ドライバモジュール９０２と仮想デバイスサービスモジュール９０５が接続されている旨を示す内部接続情報を管理する。ＰＣ１０１は、仮想デバイスサービスモジュール９０５に複数の仮想デバイスを有する場合、異なる受信ポート番号に各仮想デバイスを対応付けする。本実施の形態では、仮想デバイスサービスモジュール９０５は、一例として、ＭＦＰ１０２，１０３に対応して２つの仮想デバイスモジュール１１００，１１０１を備える場合を前提とする。具体的に、仮想デバイスモジュール１１００がＭＦＰ１０２に対応し、仮想デバイスモジュール１１０１がＭＦＰ１０３に対応する。仮想デバイスサービスモジュール９０５の各処理は、ＣＰＵ２０１がＲＯＭ２０４に格納されたプログラムを実行することによって行われる。なお、本実施の形態では、仮想デバイスモジュール１１００，１１０１は同様の構成を有するため、以下、一例として、仮想デバイスモジュール１１００を用いて説明する。
【００５４】
仮想デバイスモジュール１１００は、受信モジュール１１０２、ＲＰＣサーバモジュール１１０３、仮想デバイススプーラモジュール１１０４、仮想デバイスランゲージモニタモジュール１１０５、及びポートモニタモジュール１１０６を備える。
【００５５】
受信モジュール１１０２は、標準スプーラモジュール１０９から、ＭＦＰ１０２に送信する印刷データを、仮想デバイスモジュール１１００に対応付けされた受信ポート番号を介して受信する。ＲＰＣサーバモジュール１１０３はステータスウィンドウモジュール９０３や双方向通信モジュール１００３等のＲＰＣ機能を有する各モジュールとデータ通信を行う。仮想デバイススプーラモジュール１１０４は受信モジュール１１０２によって受信された印刷データを格納する。また、仮想デバイススプーラモジュール１１０４は格納された印刷データの印刷データ特定情報を生成する。印刷データ特定情報は、ＰＣ１０１の装置名、印刷の実行を指示したユーザ名、及び印刷指示データに含まれる画像データのデータ名等を含む。仮想デバイスランゲージモニタモジュール１１０５は仮想デバイスモジュール１１００におけるデータ通信を制御する。例えば、仮想デバイスランゲージモニタモジュール１１０５は、ＭＦＰ１０２への印刷データの送信を制御し、ＭＦＰ１０２からの当該ＭＦＰ１０２の印刷状況情報の受信を制御する。また、仮想デバイスランゲージモニタモジュール１１０５はＭＦＰ１０２の印刷状況情報をステータスウィンドウモジュール１１０へ送信する制御を行う。ポートモニタモジュール１１０６はＵＳＢポート２０８と接続されたＭＦＰ１０２とデータ通信を行う。
【００５６】
仮想デバイスモジュール１１０１においても、同様に、受信モジュール１１０２が標準スプーラモジュール１０９から、ＭＦＰ１０３に送信する印刷データを仮想デバイスモジュール１１０１に対応付けされた受信ポート番号を介して受信する。仮想デバイスモジュール１１０１は、受信された印刷データを仮想デバイススプーラモジュール１１０４で一時的に格納し、格納された印刷データをポートモニタモジュール１１０６からＭＦＰ１０３に送信する。また、仮想デバイスモジュール１１０１はポートモニタモジュール１１０６によってＭＦＰ１０３の印刷状況情報等を当該ＭＦＰ１０３から受信する。
【００５７】
ここで、Ｖ３ドライバモジュール１０７がインストールされたＰＣ１０１では、更新されるファームウェアを有するＭＦＰが、プリンタドライバモジュールと通信可能であって且つＵＳＢポート２０８に接続されたＭＦＰ１０３である場合、ステップＳ８０４の判別処理により、該ＭＦＰ１０３が重複して更新候補として選定されることはない。
【００５８】
一方、Ｖ４ドライバモジュール９０２がインストールされたＰＣ１０１では、Ｖ４ドライバモジュール９０２及び仮想デバイスサービスモジュール９０５が接続されている旨を示す内部接続情報が管理されるものの、Ｖ４ドライバモジュール９０２及びＵＳＢポート２０８が接続されている旨を示す内部接続情報が管理されていない。そのため、ステップＳ８０４の判別処理において、内部接続情報に基づいてＵＳＢポート２０８に接続されたＭＦＰ１０３がＶ４ドライバと通信可能であると判別することができない。具体的に、ＭＦＰ１０３がＵＳＢポート２０８に接続されているとき、例え、内部接続情報が存在していても、当該ＵＳＢポート２０８がＶ４ドライバモジュール９０２と接続されているかが不明である。そのため、当該ＭＦＰ１０３はＶ４ドライバモジュール９０２と通信可能であると判別することができない。その結果、更新されるファームウェアを有するＭＦＰがＭＦＰ１０３である場合、当該ＭＦＰ１０３が、ステップ７０５及びステップＳ８０８のいずれにおいても更新候補として選定されることがある。すなわち、プリンタドライバモジュールの種別によっては更新候補が重複して表示されるという不具合が発生してしまうという問題が生じる。
【００５９】
これに対応して、本実施の形態では、Ｖ４ドライバモジュール９０２がインストールされているか否かに基づいて更新候補の選定方法を切り替える。
【００６０】
図１２の処理は、本実施の形態における更新候補選定処理の手順を示すフローチャートである。
【００６１】
図１２において、まず、ＣＰＵ２０１は、ＷｉｎｄｏｗｓＯＳに問い合わせを行い、ＰＣ１０１のプリンタドライバモジュールのうち更新されるファームウェアを有するＭＦＰのプリンタドライバモジュールのプリンタドライバ関連情報を取得する。次いで、ＣＰＵ２０１は取得されたプリンタドライバ関連情報から該プリンタドライバモジュールのバージョン情報を取得する（ステップＳ１２０１）。次いで、ＣＰＵ２０１は取得されたバージョン情報がＶｅｒｓｉｏｎ４、つまり、更新されるファームウェアを有するＭＦＰのプリンタドライバモジュールがＶ４ドライバモジュール９０２であるか否かを判別する（ステップＳ１２０２）。
【００６２】
ステップＳ１２０２の判別の結果、更新されるファームウェアを有するＭＦＰのプリンタドライバモジュールがＶ４ドライバモジュール９０２でないとき、ＣＰＵ２０１は図７の第１の選定処理を実行する（ステップＳ１２０３）。次いで、ＣＰＵ２０１は図８の第２の選定処理を実行する（ステップＳ１２０４）。すなわち、本実施の形態では、更新されるファームウェアを有するＭＦＰのプリンタドライバモジュールがＶ４ドライバモジュール９０２以外である場合、プリンタドライバ関連情報及びＵＳＢポートの接続情報に基づいて更新候補を選定する。その後、ＣＰＵ２０１は本処理を終了する。
【００６３】
ステップＳ１２０２の判別の結果、更新されるファームウェアを有するＭＦＰのプリンタドライバモジュールがＶ４ドライバモジュール９０２であるとき、ＣＰＵ２０１は図７の第１の選定処理を実行する（ステップＳ１２０５）。すなわち、本実施の形態では、更新されるファームウェアを有するＭＦＰのプリンタドライバモジュールがＶ４ドライバモジュール９０２である場合、プリンタドライバ関連情報のみに基づいて更新候補を選定する。その後、ＣＰＵ２０１は図４のステップＳ４０２の処理を行う。ステップＳ４０２では、プリンタドライバ関連情報及びＵＳＢポートの接続情報が示すＭＦＰのうち選定されたＭＦＰのみを含む設定画面１３０１が表示部２１０に表示される。
【００６４】
上述した図１２の処理によれば、プリンタドライバモジュールがＶ４ドライバモジュールである場合、プリンタドライバ関連情報のみに基づいて更新候補が選定される。ここで、プリンタドライバモジュールがＶ４ドライバモジュール９０２である場合、プリンタドライバ関連情報及びＵＳＢポートの接続情報が示すＭＦＰに同一のＭＦＰが含まれると、当該同一のＭＦＰが重複して更新候補として選定されることがある。これに対応して、本実施の形態では、プリンタドライバモジュールがＶ４ドライバモジュール９０２である場合、プリンタドライバ関連情報のみに基づいて更新候補が選定される。これにより、プリンタドライバモジュールがＶ４ドライバモジュール９０２である場合、同一のＭＦＰが更新候補として重複して表示されるのを防止することができる。また、プリンタドライバモジュールがＶ４ドライバモジュール９０２以外である場合、プリンタドライバ関連情報及びＵＳＢポートの接続情報に基づいて更新候補が選定される。ここで、プリンタドライバモジュールがＶ４ドライバモジュール９０２以外である場合、プリンタドライバ関連情報及びＵＳＢポートの接続情報に同じＭＦＰが含まれても、該同じＭＦＰが重複して更新候補として選定されることはない。すなわち、プリンタドライバ関連情報及びＵＳＢポートの接続情報に基づいて更新候補が選定されても、更新候補が重複して表示されることはない。これにより、プリンタドライバモジュールの種別に関わらず更新候補が重複して表示されるのを防止することができる。
【００６５】
また、上述した図１２の処理では、プリンタドライバ関連情報及びＵＳＢポートの接続情報が示すＭＦＰのうち選定された更新候補のみが表示部２１０に表示されるので、ユーザが不適切なＭＦＰを更新対象として選択することを確実に防止することができる。
【００６６】
以上、本発明について、上述した実施の形態を用いて説明したが、本発明は上述した実施の形態に限定されるものではない。
【００６７】
例えば、ステップＳ８０４において、プリンタドライバ関連情報及びＵＳＢポートの接続情報に基づいてＰＣ１０１のＵＳＢポートに接続されたＭＦＰがＰＣ１０１のプリンタドライバモジュールと通信可能であるか否かを判別してもよい。具体的に、ＵＳＢポートの接続情報が示すＭＦＰがプリンタドライバ関連情報に含まれるドライバ対応機種リストが示すＭＦＰと対応、例えば、一致する場合、ＵＳＢポートに接続されたＭＦＰがプリンタドライバモジュールと通信可能であると判別する。一方、ＵＳＢポートの接続情報が示すＭＦＰがドライバ関連情報に含まれるドライバ対応機種リストが示すＭＦＰと対応、例えば、一致しない場合、ＵＳＢポートに接続されたＭＦＰがプリンタドライバモジュールと通信不可能であると判別する。これにより、Ｖ４ドライバモジュール９０２がインストールされた場合等のように、Ｖ４ドライバモジュール９０２及びＵＳＢポートが接続されている旨を示す内部接続情報を管理することができない場合であっても、ＵＳＢポートに接続されたＭＦＰのうちＶ４ドライバモジュール９０２と通信可能なＭＦＰを容易に特定することができる。
【００６８】
本発明は、上述の実施の形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６９】
１０１  ＰＣ
１０２，１０３，１０４  ＭＦＰ
１０７  Ｖ３ドライバモジュール
１１１  更新アプリケーションモジュール
９０２  Ｖ４ドライバモジュール
【図１】
0006755706.tif 000002
【図２】
0006755706.tif 000003
【図３】
0006755706.tif 000004
【図４】
0006755706.tif 000005
【図５】
0006755706.tif 000006
【図６】
0006755706.tif 000007
【図７】
0006755706.tif 000008
【図８】
0006755706.tif 000009
【図９】
0006755706.tif 000010
【図１０】
0006755706.tif 000011
【図１１】
0006755706.tif 000012
【図１２】
0006755706.tif 000013
【図１３】
0006755706.tif 000014