(57)【要約】【課題】ある周辺機器に対し、バージョンが相異なる複数のデバイスドライバが存在するような場合でも、インストールすべきバージョンのデバイスドライバが自動的に正しく選択され、デバイスドライバの組み込み作業にかかるユーザの負担を軽減させること。【解決手段】使用する周辺機器を選択し（Ｓ４０１）、選択した周辺機器に対応するデバイスドライバに複数のバージョンがある場合（Ｓ４０２，ｙｅｓ）、その周辺機器におけるコントローラのバージョン情報を取得し（Ｓ４０３）、複数のバージョンのデバイスドライバから、取得したバージョン情報に対応したデバイスドライバを組み込む（Ｓ４０４）。【選択図】　図４
2004094794.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に組み込まれたデバイスドライバを用いて所定の周辺機器の動作を制御する情報処理装置であって、
使用する周辺機器を選択する選択手段と、
選択した周辺機器に対応するデバイスドライバに複数のバージョンがある場合に、前記周辺機器におけるコントローラのバージョン情報を取得する取得手段と、
前記複数のバージョンのデバイスドライバから、前記取得手段で取得した前記周辺機器におけるコントローラのバージョン情報に対応するデバイスドライバを前記記憶装置に組み込む組込み手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
更に、
前記取得手段で取得した前記周辺機器におけるコントローラのバージョン情報に対応するデバイスドライバが、その周辺機器における最新のものであるか否かを判断する判断手段と、
前記判断手段による判断結果が否であるときは、前記組込み手段に、更に新しいバージョンのデバイスドライバも前記記憶装置に組み込ませるよう制御する第１の制御手段と、
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
更に、
前記周辺機器におけるコントローラのバージョンアップがなされたことを検知する検知手段と、
前記検知手段の検知結果に応じて、前記組込み手段に、前記バージョンアップがされた前記コントローラのバージョンに対応するデバイスドライバを前記記憶手段に組み込ませるよう制御する第２の制御手段と、
を備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
情報処理装置に、所定の周辺機器の動作を制御するためのデバイスドライバを組み込む方法であって、
使用する周辺機器を選択する選択ステップと、
選択した周辺機器に対応するデバイスドライバに複数のバージョンがある場合に、前記周辺機器におけるコントローラのバージョン情報を取得する取得ステップと、
前記複数のバージョンのデバイスドライバから、前記取得ステップで取得した前記周辺機器におけるコントローラのバージョン情報に対応するデバイスドライバを前記記憶装置に組み込む組込みステップと、
を有することを特徴とする方法。
【請求項５】
コンピュータに所定の周辺機器の動作を制御するためのデバイスドライバを組み込むために、そのコンピュータに、
使用する周辺機器を選択する選択ステップ、
選択した周辺機器に対応するデバイスドライバに複数のバージョンがある場合に、前記周辺機器におけるコントローラのバージョン情報を取得する取得ステップ、
前記複数のバージョンのデバイスドライバから、前記取得ステップで取得した前記周辺機器におけるコントローラのバージョン情報に対応するデバイスドライバを前記記憶装置に組み込む組込みステップ、
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタの動作を制御するための情報処理装置、その情報処理装置へのプリンタドライバの組み込み方法、ならびにプログラムに関する。
【０００２】
【従来の技術】
周辺機器を接続したコンピュータにデバイスドライバをインストールする方法としては例えば、ウィザード機能（組み込みを簡便にするために設けたガイド機能）により、インストールしようとするデバイスドライバの名称をユーザが選択し、それに応じてインストール方法、あるいは、プラグ・アンド・プレイ（周辺機器や拡張カードなどをコンピュータに接続した際に、デバイス・ドライバの組み込みおよび設定を自動的に行う機能）により、デバイスＩＤに対応したデバイスドライバを自動的にインストールする方法、がある。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のプラグ・アンド・プレイは、デバイスＩＤが異なる周辺機器に対してしか有効に機能しないという問題がある。例えば、障害対応や機能アップ等の理由により周辺機器のコントローラがバージョンアップされた場合で、かつ、この修正がその周辺機器のデバイスドライバにまで影響を与えるような場合には、デバイスＩＤは同じであるため、必要とされるデバイスドライバが正しくインストールされないという問題があった。
【０００４】
また、周辺機器のコントローラのバージョン情報は、ユーザにとっては一般に関心の薄い情報であるため、あるバージョンのコントローラに対応したデバイスドライバをウィザードからユーザが正しく選択することは難しいことが多く、ユーザにとっては使い勝手を著しく損なわせるものであった。
【０００５】
そこで、本発明は、ある周辺機器に対し、バージョンが相異なる複数のデバイスドライバが存在するような場合でも、インストールすべきバージョンのデバイスドライバが自動的に正しく選択され、デバイスドライバの組み込み作業にかかるユーザの負担を軽減させることを目的とする。
【０００６】
【課題を解決するための手段】
上記の目的を達成するために、例えば本発明の情報処理装置は、次の構成を備える。すなわち、記憶装置に組み込まれたデバイスドライバを用いて所定の周辺機器の動作を制御する情報処理装置であって、使用する周辺機器を選択する選択手段と、選択した周辺機器に対応するデバイスドライバに複数のバージョンがある場合に、前記周辺機器におけるコントローラのバージョン情報を取得する取得手段と、前記複数のバージョンのデバイスドライバから、前記取得手段で取得した前記周辺機器におけるコントローラのバージョン情報に対応するデバイスドライバを前記記憶装置に組み込む組込み手段と、を備えることを特徴とする。
【０００７】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。本実施形態では、コンピュータの周辺機器としてプリンタを用い、印刷システムを構成する。コンピュータは、記憶装置に組み込まれたデバイスドライバとしてのプリンタドライバ（プリンタの制御プログラム）を用いてプリンタの動作を制御する。もちろん、プリンタは周辺機器の一例であり、本発明はデバイスドライバを介して制御されるあらゆる周辺機器（スキャナ、光ディスク装置等）を用いたシステムに適用することができる。
【０００８】
図１は本発明の実施形態に係る印刷システムの構成を示すブロック図である。この印刷システムは、ホストコンピュータ３０００と、その周辺機器としてのプリンタ１５００が互いに通信可能に接続された構成である。なお、本発明の機能が実行されるのであれば、単体の機器であってもよいし、複数の機器からなるシステムであっても、ＬＡＮ、ＷＡＮ等のネットワークを介して接続され処理が行われるシステムであってもよい。
【０００９】
ホストコンピュータ３０００は、外部記憶装置（例えばハードディスクドライブ）１１に記憶された文書処理プログラム等のアプリケーションに基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、このＣＰＵ１がシステムバス４に接続された各デバイスを統括的に制御する。また、外部記憶装置１１は、上記した文書処理プログラム等のアプリケーションの他、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）、プリンタ１５００の制御プログラムであるプリンタドライバ等を記憶する。また、ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能し、ＲＯＭ３は、ブートプログラム等を記憶している。
【００１０】
キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。７はディスクコントローラ（ＤＫＣ）で、外部記憶装置１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インターフェース（インターフェース）２１を介してプリンタ１５００に接続されて、プリンタ１５００の通信制御処理を実行する。
【００１１】
なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行うことができる。
【００１２】
プリンタ１５００は、大きく分けて、印刷のための機構を有する印刷部（プリンタエンジン）１７と、印刷部１７の動作を制御するコントローラ１００を備える。具体的には、コントローラ１００は、ＣＰＵ１２により、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。ＲＯＭ１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ＲＯＭ１３のデータ用ＲＯＭには、外部メモリ１４がない場合には、ホストコンピュータ上で利用される情報等が記憶されている。
【００１３】
ＣＰＵ１２は入力部１８を介してホストコンピュータ３０００との通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知することができる。ＲＡＭ１９は、ＣＰＵ１２の主メモリや、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ領域、ＮＶＲＡＭ等に用いられる。外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶したり、展開した印刷データのスプール用として使われる。また、２２は操作部で、操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００１４】
また、前述した外部メモリ１４は１個に限らず、複数個備えられ、内蔵フォントを加えたオプションカード、展開した印刷データのスプール用メモリ、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部記憶装置を複数接続できるように構成されていてもよい。更に、図示しないＮＶＲＡＭを有し、操作部２２からのプリンタモード設定情報を記憶するようにしてもよい。
【００１５】
図２は、ホストコンピュータ３０００における典型的な印刷処理に係る機能構成を示す図である。アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部記憶装置１１に保存されたファイルとして存在し、実行される場合にＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされ実行されるプログラムモジュールである。また、アプリケーション２０１およびプリンタドライバ２０３は、不図示のＣＤ−ＲＯＭ、あるいは不図示のネットワークを経由して外部記憶装置１１に追加することが可能となっている。外部記憶装置１１に保存されているアプリケーション２０１はＲＡＭ２にロードされて実行されるが、このアプリケーション２０１からプリンタ１５００に対して印刷を行う際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００１６】
グラフィックエンジン２０２は、プリンタごとに用意されたプリンタドライバ２０３を同様に外部記憶装置１１からＲＡＭ２にロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。そして、アプリケーション２０１から受取るＧＤＩ（Ｇｒａｐｈｉｃ　Ｄｅｖｉｃｅ　Ｉｎｔｅｒｆａｃｅ）関数からＤＤＩ（Ｄｅｉｃｅ　Ｄｒｉｖｅｒ　Ｉｎｔｅｒｆａｃｅ）関数に変換して、プリンタドライバ２０３へＤＤＩ関数を出力する。プリンタドライバ２０３は、グラフィックエンジン２０２から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Ｐａｇｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）に変換する。変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経てインタフェース２１経由でプリンタ１５００へ印刷データとして出力される仕組みになっている。
【００１７】
本実施形態の印刷システムは更に、図３に示すように、アプリケーション２０１からの印刷データを一旦中間コードデータでスプールする構成を有している。
【００１８】
図３は、図２のシステムを拡張したもので、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、一旦中間コードからなるスプールファイル３０３を生成する構成をとる。図２のシステムでは、アプリケーション２０１が印刷処理から開放されるのはプリンタドライバ２０３がグラフィックエンジン２０２からのすべての印刷命令をプリンタの制御コマンドへ変換し終わった時点である。これに対して、図３のシステムでは、スプーラ３０２がすべての印刷命令を中間コードデータに変換し、スプールファイル３０３に出力した時点である。通常、後者の方が短時間で済む。また、図３で示すシステムにおいては、スプールファイル３０３の内容を加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを１ページに縮小して印刷する等、アプリケーションの持たない機能を実現することができる。
【００１９】
これらの目的のために、図２のシステムに対し、図３の如く中間コードデータでスプールするようシステムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ２０３が提供するウインドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ２上あるいは外部記憶装置１１上に保管する。
【００２０】
以下、図３の詳細を説明する。図に示す通り、この拡張された処理方式では、グラフィックエンジン２０２からの印刷命令をディスパッチャ３０１が受け取る。ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令が、アプリケーション２０１からグラフィックエンジン２０２へ発行された印刷命令の場合には、ディスパッチャ３０１は外部記憶装置１１に格納されているスプーラ３０２をＲＡＭ２にロードし、プリンタドライバ２０３ではなくスプーラ３０２へ印刷命令を送付する。
【００２１】
スプーラ３０２は受け取った印刷命令を中間コードに変換してスプールファイル３０３に出力する。また、スプーラ３０２は、プリンタドライバ２０３に設定されている印刷データに関する加工設定をプリンタドライバ２０３から取得してスプールファイル３０３に保存する。なお、スプールファイル３０３は外部記憶装置１１上にファイルとして生成するが、ＲＡＭ２上に生成するようにしても構わない。更にスプーラ３０２は、外部記憶装置１１に格納されているスプールファイルマネージャ３０４をＲＡＭ２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成状況を通知する。その後、スプールファイルマネージャ３０４は、スプールファイル３０３に保存された印刷データに関する加工設定の内容に従って印刷を行えるかどうかを判断する。
【００２２】
スプールファイルマネージャ３０４がグラフィックエンジン２０２を利用して印刷を行えると判断した際には、外部記憶装置１１に格納されているデスプーラ３０５をＲＡＭ２にロードし、デスプーラ３０５に対して、スプールファイル３０３に記述された中間コードの印刷処理を行うように指示する。
【００２３】
デスプーラ３０５はスプールファイル３０３に含まれる中間コードをスプールファイル３０３に含まれる加工設定内容に従って加工し、もう一度グラフィックエンジン２０２経由で出力する。
【００２４】
ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令がデスプーラ３０５からグラフィックエンジン２０２へ発行された印刷命令の場合には、ディスパッチャ３０１はスプーラ３０２ではなく、プリンタドライバ２０３に印刷命令を送る。
【００２５】
プリンタドライバ２０３はプリンタ制御コマンドを生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。
【００２６】
図４は、実施形態におけるプリンタウィザードを用いたプリンタドライバのインストール処理を示すフローチャートである。なお、本明細書において、プリンタドライバの「インストール」とは、プリンタドライバを外部記憶装置１１に単に記憶させることをいうのではなく、対応するプリンタを動作させることができるような設定状態で外部記憶装置１１に組み込むことをいう。また、プリンタウィザードは一般にはＯＳにより提供されるが、各ベンダーから提供される独自のウィザードでもよい。
【００２７】
まず、プリンタウィザードを立ち上げて、ここから使用するプリンタを選択する（ステップＳ４０１）。
【００２８】
次に、選択されたプリンタに対応するプリンタドライバに複数のバージョンが存在するかどうかのチェックを行い（ステップＳ４０２）、ここで存在しない場合には、選択されたプリンタに対応するプリンタドライバを通常の方法でインストールする（ステップＳ４０５）。一方、ステップＳ４０２で、選択されたプリンタに対応するプリンタドライバに複数のバージョンが存在すると判断されたときは、ＳＮＭＰなどの双方向通信が可能なネットワークを介してプリンタのコントローラのバージョン情報を取得し（ステップＳ４０３）、そして、取得したバージョン情報に対応したプリンタドライバをインストールする（ステップＳ４０４）。
【００２９】
以下、ステップＳ４０２，Ｓ４０３，Ｓ４０４の処理を具体的に説明する。
【００３０】
ステップＳ４０２の判断は、例えば外部記憶装置１１に記憶されている、図６に示すような構造の、プリンタのモデル名（デバイスＩＤ）、プリンタのコントローラのバージョン情報、および対応するプリンタドライバをそれぞれ対応付けて記述したドライバテーブルに基づいて行う。
【００３１】
図６によれば、例えば、Ｇａｎｏｎ　Ｒ２１０というモデル名（デバイスＩＤ）のプリンタのコントローラには、バージョン１．ｘ、２．ｘ、３．ｘのバージョンがある。このとき、バージョン１．ｘと２．ｘは、コントローラの内部的な障害対応、もしくは機能アップ等によるものであり、プリンタドライバには影響を与えないバージョンアップであるが、バージョン３．ｘはプリンタドライバに影響を与えるバージョンアップだったとする。ここでいうプリンタドライバに影響を与えるバージョンアップとは、例えば印字領域の変更など、コントローラのバージョンアップに伴って、プリンタドライバの修正も必要とされるものをさす。そのため、バージョン１．ｘとバージョン２．ｘとでは使用すべきプリンタドライバは同一でよく、バージョン２．ｘとバージョン３．ｘとでは使用すべきプリンタドライバが異なることになる。つまり、図７に示すように、モデルＧａｎｏｎ　Ｒ２１０のプリンタに対応するプリンタドライバは２種類ある。
【００３２】
このような仮定のもとで、ステップＳ４０３で、取得したバージョンが２．ｘと判断されると、ステップＳ４０４では、コントローラのバージョン２．ｘと対応したＧａｎｏｎ　Ｒ２１０　ＰＣＬ−１（バージョン１．ｘにも対応する）をインストールする。また、取得したバージョンが３．ｘと判断されると、コントローラのバージョン３．ｘに対応したＧａｎｏｎ　Ｒ２１０　ＰＣＬ−２をインストールすることになる。
【００３３】
同様に、Ｇａｎｏｎ　Ｒ３３０−４００というモデル名のプリンタのコントローラの場合も、バージョン１．ｘ、２．ｘ、３．ｘの３種類のバージョンがあり、それぞれのバージョンアップがプリンタドライバに影響を与えるバージョンアップだったとする。つまり、図８に示すように、モデルＧａｎｏｎ　Ｒ３３０−４００のプリンタに対応するプリンタドライバは３種類ある。
【００３４】
このような仮定のもとで、ステップＳ４０３で取得したバージョンが２．ｘと判断されると、ステップＳ４０４では、コントローラのバージョン２．ｘに対応したＧａｎｏｎ　Ｒ３３０−４００　ＰＣＬ−２をインストールする。また、取得したバージョンナンバーが３．ｘと判断されると、コントローラのバージョン３．ｘに対応したＧａｎｏｎ　Ｒ３３０−４００　ＰＣＬ−３をインストールすることになる。
【００３５】
次に、Ｇａｎｏｎ　Ｒ６０５−６０５Ｐというモデル名のプリンタの例を説明する。このプリンタのコントローラは、バージョン１．ｘと２．ｘの２種類のバージョンを有する。このバージョンアップはプリンタドライバに影響を与えないバージョンアップだったとする。そうするとこの場合は、図９に示すように、対応するプリンタドライバは１種類である。したがって、このステップＳ４０１でモデルＧａｎｏｎ　Ｒ６０５−６０５Ｐが選択されたときは、ステップＳ４０２で対応するプリンタドライバは１バージョンしか存在しないと判断され、ステップＳ４０５に進んで通常の方法でプリンタドライバのインストールが行われる。
【００３６】
図５は、実施形態におけるプラグ・アンド・プレイによるプリンタドライバのインストール処理を示すフローチャートである。
【００３７】
まず、ホストコンピュータが新規のプリンタをプラグ・アンド・プレイのハードウエア検索により見つけだすと、ホストコンピュータはプリンタのデバイスＩＤを取得する（ステップＳ５０１）。そして、上述のようにドライバテーブルを参照して、取得したデバイスＩＤに対応したプリンタドライバに複数のバージョンが存在するかどうかのチェックを行う（ステップＳ５０２）。ここで、存在しないと判断されると、取得したデバイスＩＤに対応したプリンタドライバを通常の方法でインストールする（ステップＳ５０５）。
【００３８】
一方、ステップＳ５０２で、複数のバージョンが存在すると判断された場合には、ＳＮＭＰなどの双方向通信が可能なネットワークを介してプリンタのコントローラのバージョン情報を取得する（ステップＳ５０３）。そして、図６のようなドライバテーブルを参照して、コントローラのバージョンに対応したプリンタドライバのインストールを行う（ステップＳ５０４）。
【００３９】
以上の処理により、選択されたプリンタ、または、接続されたプリンタに対し、バージョンが異なる複数のプリンタドライバが存在するかどうかが検査され、複数のプリンタドライバが存在するときは、そのプリンタのコントローラのバージョンを取得し、そのコントローラのバージョンに応じたプリンタドライバを自動的に選択するようにしたので、プリンタドライバのインストールにかかるユーザの負担を軽減させることができる。
【００４０】
ところで、上述のようにコントローラのバージョンに対応したプリンタドライバだけのインストールを行うのではなく、コントローラのバージョンアップを考慮に入れて、あらかじめ最新のコントローラに対応したプリンタドライバをインストールしておくことも可能である。この方法に従えば、後日コントローラのバージョンアップがされたとしても、ユーザーは別途プリンタドライバのインストールを行わなくてもよくなり、インストール作業を省くことができるようになる。
【００４１】
図１０は、コントローラのバージョンアップを考慮に入れたプリンタドライバのインストール処理を示すフローチャートである。
【００４２】
まず、プリンタウィザードを立ち上げて、ここから使用するプリンタを選択する（ステップＳ１００１）。
【００４３】
次に、選択されたプリンタに対応するプリンタドライバに複数のバージョンが存在するかどうかのチェックを行い（ステップＳ１００２）、ここで存在しない場合には、選択されたプリンタに対応するプリンタドライバを通常の方法でインストールする（ステップＳ１００７）。一方、ステップＳ１００２で、選択されたプリンタに対応するプリンタドライバに複数のバージョンが存在すると判断されたときは、ＳＮＭＰなどの双方向通信が可能なネットワークを介してプリンタのコントローラのバージョン情報を取得する（ステップＳ１００３）。
【００４４】
次に、図６に示したようなドライバテーブルを参照して、取得したコントローラのバージョン情報に対応するプリンタドライバが、そのプリンタで最新のものであるか否かを判断する（ステップＳ１００４）。例えば、図６を参照すると、Ｇａｎｏｎ　Ｒ３３０−４００というモデル名のプリンタのコントローラは３種類のバージョンがあるが、ステップＳ１００３で取得されたコントローラのバージョン情報に対応するプリンタドライバが、最新のバージョン３．ｘに対応するもの（すなわち、Ｇａｎｏｎ　Ｒ３３０−４００　ＰＣＬ−３）であるか否かを判断する。
【００４５】
ここで、取得したコントローラのバージョン情報に対応するプリンタドライバが、そのプリンタで最新のものであると判断されたときは、その最新のプリンタドライバだけをインストールする（ステップＳ１００５）。一方、取得したコントローラのバージョン情報に対応するプリンタドライバが、そのプリンタで最新でないと判断されたときは、取得したコントローラのバージョンに対応したプリンタドライバをインストールするとともに、それより新しいコントローラのバージョンに対するプリンタドライバも、内部的にインストールする（ステップＳ１００６）。「内部的にインストールする」とは、例えば、コントローラが機能拡張のためにバージョンアップし、それがドライバの機能に大きな影響を与え、その機能を実現するためには新規にドライバモジュール（ＤＬＬ）を作成する必要がある場合、上記のようなコントローラのバージョンアップを考慮して、事前にインストールすることをいう。
【００４６】
このステップＳ１００６の処理が行われた後において、コントローラがバージョンアップされた場合、プリンタは、そのコントローラのバージョン情報を、任意のタイミングでホストコンピュータに通知する。ここで行うバージョン情報の通知のタイミングは、ユーザーがプリンタドライバのグラフィックユーザーインタフェースから指示を行ったときでもよい。
【００４７】
ホストコンピュータがコントローラのバージョン情報を取得した結果、現在インストールされているプリンタドライバより新しいバージョンのプリンタドライバが内部的に保持されていると判断すると、任意のタイミングで、例えば、“コントローラがバージョンアップされました。対応する新しいプリンタドライバをインストールします。Ｙｅｓ　ｏｒ　Ｃａｎｃｅｌ”とのメッセージを表示する。
【００４８】
ここで、Ｙｅｓが選択された場合は、古いプリンタドライバを削除して、新しいプリンタドライバを自動的にインストールする。
【００４９】
以上の処理により、コントローラのバージョンアップに対応したプリンタドライバの自動バージョンアップが行えるようになるので、コントローラのバージョンアップに伴うプリンタドライバの更新作業からユーザを解放することができるようになる。
【００５０】
（他の実施形態）
以上、本発明の実施形態を詳述したが、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタ等）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【００５１】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（図４、図５、図１０のいずれかに示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムを読み出して実行することによっても達成される場合を含む。
【００５２】
したがって、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００５３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００５４】
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ等）、光磁気ディスク、磁気テープ、メモリカード等がある。
【００５５】
その他、プログラムの供給方法としては、インターネットを介して本発明のプログラムをファイル転送によって取得する態様も含まれる。
【００５６】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介して暗号化を解く鍵情報を取得させ、その鍵情報を使用することで暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００５７】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現され得る。
【００５８】
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００５９】
【発明の効果】
以上説明したように、本発明によれば、ある周辺機器に対し、バージョンが相異なる複数のデバイスドライバが存在するような場合でも、インストールすべきバージョンのデバイスドライバが自動的に正しく選択され、デバイスドライバの組み込み作業にかかるユーザの負担を軽減させることができる。
【図面の簡単な説明】
【図１】実施形態に係る印刷システムの構成を示すブロック図である。
【図２】実施形態におけるホストコンピュータの典型的な印刷処理に係る機能構成を示す図である。
【図３】実施形態におけるホストコンピュータの典型的な印刷処理に係る機能構成をより詳細に示す図である。
【図４】実施形態におけるプリンタウィザードを用いたプリンタドライバのインストール処理を示すフローチャートである。
【図５】実施形態におけるプラグ・アンド・プレイによるプリンタドライバのインストール処理を示すフローチャートである。
【図６】実施形態におけるドライバテーブルの構造例を示す図である。
【図７】実施形態におけるプリンタとプリンタドライバとの対応関係を示す図である。
【図８】実施形態におけるプリンタとプリンタドライバとの対応関係を示す図である。
【図９】実施形態におけるプリンタとプリンタドライバとの対応関係を示す図である。
【図１０】実施形態におけるコントローラのバージョンアップを考慮に入れたプリンタドライバのインストール処理を示すフローチャートである。
【図１】
2004094794.tif 000003
【図２】
2004094794.tif 000004
【図３】
2004094794.tif 000005
【図４】
2004094794.tif 000006
【図５】
2004094794.tif 000007
【図６】
2004094794.tif 000008
【図７】
2004094794.tif 000009
【図８】
2004094794.tif 000010
【図９】
2004094794.tif 000011
【図１０】
2004094794.tif 000012