(57)【要約】【課題】デバイスドライバを適切にインストール可能とする。【解決手段】情報処理装置は、デバイスドライバのインストールを許可するデバイスのモデルを格納するセーフリストを管理する管理手段と、デバイスドライバが所定の構造のデバイスドライバであるか否かを判定する第１の判定手段と、デバイスドライバが特定の条件を満たすか否かを判定する第２の判定手段と、インストール対象のデバイスドライバが所定の構造のデバイスドライバであると判定され、かつ、デバイスドライバが特定の条件を満たすと判定され、かつ、デバイスドライバに対応するデバイスのモデルがセーフリストに含まれる場合に、デバイスドライバのインストール処理を実行する制御手段と、を有する。【選択図】図５
2017134763.tif 000002
【特許請求の範囲】
【請求項１】
デバイスドライバのインストールを許可するデバイスのモデルを格納するセーフリストを管理する管理手段と、
デバイスドライバが所定の構造のデバイスドライバであるか否かを判定する第１の判定手段と、
デバイスドライバが特定の条件を満たすか否かを判定する第２の判定手段と、
インストール対象のデバイスドライバが前記第１の判定手段により前記所定の構造のデバイスドライバであると判定され、かつ、該デバイスドライバが前記第２の判定手段により前記特定の条件を満たすと判定され、かつ、該デバイスドライバに対応するデバイスのモデルが前記セーフリストに含まれる場合に、該デバイスドライバのインストール処理を実行する制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、インストール対象のデバイスドライバが前記第１の判定手段により前記所定の構造のデバイスドライバではないと判定された場合に、該デバイスドライバのインストール処理を実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、インストール対象のデバイスドライバが前記第１の判定手段により前記所定の構造のデバイスドライバであると判定され、かつ、該デバイスドライバが前記第２の判定手段により前記特定の条件を満たさないと判定された場合に、該デバイスドライバのインストール処理を実行する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記制御手段は、インストール対象のデバイスドライバが前記第１の判定手段により前記所定の構造のデバイスドライバであると判定され、かつ、該デバイスドライバが前記第２の判定手段により前記特定の条件を満たすと判定され、かつ、該デバイスドライバに対応するデバイスのモデルが前記セーフリストに含まれない場合に、該デバイスドライバのインストール処理を実行しない
ことを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記管理手段は、前記情報処理装置にインストール済みの前記所定の構造のデバイスドライバに対応するデバイスの情報に基づいて、前記セーフリストを作成する
ことを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記管理手段は、前記情報処理装置で動作するオペレーティングシステム（ＯＳ）において予め定義されるリストに基づいて、前記セーフリストを作成する
ことを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項７】
前記管理手段は、前記情報処理装置にインストール済みの前記所定の構造のデバイスドライバに対応するデバイスのモデルのリストから、該情報処理装置にインストール済みの前記所定の構造ではないデバイスドライバに対応するデバイスのモデルを削除することにより、前記セーフリストを作成する
ことを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項８】
前記制御手段は、前記所定の構造のデバイスドライバでありかつ前記特定の条件を満たすデバイスドライバをインストールする場合、該デバイスドライバのインストールに先立って前記特定の条件を満たさない仮デバイスドライバをインストールする
ことを特徴とする請求項５乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記制御手段は、前記デバイスドライバが、前記情報処理装置にインストール済みの前記所定の構造ではないデバイスドライバに対応するデバイスのモデルと同一のモデルに対応する場合、前記仮デバイスドライバのインストールに先立って前記所定の構造ではないデバイスドライバをアンインストールする
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記特定の条件は、デバイスドライバの作成日が特定日以降である
ことを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１１】
前記特定の条件は、デバイスドライバが前記情報処理装置で動作するオペレーティングシステム（ＯＳ）の特定のモジュールを利用することである
ことを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１２】
前記デバイスドライバは、プリンタドライバ又はファックスドライバである
ことを特徴とする請求項１乃至１１の何れか１項に記載の情報処理装置。
【請求項１３】
情報処理装置の制御方法であって、
インストール対象のデバイスドライバが所定の構造のデバイスドライバであるか否かを判定する第１の判定工程と、
前記デバイスドライバが特定の条件を満たすか否かを判定する第２の判定工程と、
前記デバイスドライバが前記第１の判定工程により前記所定の構造のデバイスドライバであると判定され、かつ、該デバイスドライバが前記第２の判定工程により前記特定の条件を満たすと判定され、かつ、該デバイスドライバに対応するデバイスのモデルが所与のセーフリストに含まれる場合に、該デバイスドライバのインストール処理を実行する制御工程と、
を含むことを特徴とする制御方法。
【請求項１４】
デバイスドライバをインストールするプログラムであって、
インストール先のオペレーティングシステム（ＯＳ）が、所定の構造のデバイスドライバのインストール制限を有しているか否かを判定する判定手段、
前記インストール制限を有していると判定された前記ＯＳに対して、前記所定の構造のデバイスドライバでありかつ特定の条件を満たすデバイスドライバをインストールする場合、該デバイスドライバのインストールに先立って前記特定の条件を満たさない仮デバイスドライバをインストールする制御手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置におけるデバイスドライバのインストール制御に関するものである。
【背景技術】
【０００２】
ＰＣ等の情報処理装置では各種プログラムを実行することで、様々な処理を行うことができる。例えば、プリンタ等の画像処理装置へ送信される印刷データを生成するためのプログラムとしてプリンタドライバが存在する。ところで、プログラムの中には、オペレーティングシステム（以下、ＯＳ）の一部を構成するモジュールに依存して動作するものも存在する。このようなプログラムにおいては、例えば、仕様（印刷フレームワークなど）の大幅な変更を伴うＯＳの更新に際して正常に動作しなくなる場合がある。そこで、特許文献１では、ＯＳの更新により動作不可能になったプリンタドライバを、動作可能なバージョンのプリンタドライバに更新する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１２８８３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ＯＳベンダは、更新後のＯＳで利用される印刷フレームワークに基づく新構造のプリンタドライバへの移行を促すため、更新前のＯＳに基づく旧構造のプリンタドライバについてはインストールを制限することが考えられる。そのため、プリンタベンダが旧構造のプリンタドライバの機能修正版を作成した場合であっても、当該機能修正版のプリンタドライバのインストールは制限されてしまうことが想定される。
【０００５】
本発明は、上記の問題点を鑑みてなされたものであり、デバイスドライバの適切なインストール制御を可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の問題点を解決するため、本発明に係る情報処理装置は以下の構成を備える。すなわち、情報処理装置は、デバイスドライバのインストールを許可するデバイスのモデルを格納するセーフリストを管理する管理手段と、デバイスドライバが所定の構造のデバイスドライバであるか否かを判定する第１の判定手段と、デバイスドライバが特定の条件を満たすか否かを判定する第２の判定手段と、インストール対象のデバイスドライバが前記第１の判定手段により前記所定の構造のデバイスドライバであると判定され、かつ、該デバイスドライバが前記第２の判定手段により前記特定の条件を満たすと判定され、かつ、該デバイスドライバに対応するデバイスのモデルが前記セーフリストに含まれる場合に、該デバイスドライバのインストール処理を実行する制御手段と、を有する。
【発明の効果】
【０００７】
本発明によれば、デバイスドライバの適切なインストール制御を可能とする技術を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態における印刷システムの全体構成を示す図である。
【図２】情報処理装置のハードウェア構成を示すブロック図である。
【図３】画像処理装置のハードウェア構成を示すブロック図である。
【図４】印刷システムに含まれる各装置の機能構成を示す図である。
【図５】第１実施形態におけるＯＳ側の処理の流れを示すフローチャートである。
【図６】インストールプログラムの構造を示す図である。
【図７】第１実施形態におけるインストーラ側の処理の流れを示すフローチャートである。
【図８】第２実施形態におけるＯＳ側の処理の流れを示すフローチャートである。
【図９】第２実施形態におけるインストーラ側の処理の流れを示すフローチャートである。
【図１０】第３実施形態におけるＯＳ側の処理の流れを示すフローチャートである。
【図１１】第３実施形態におけるインストールプログラムの構造を示す図である。
【図１２】第３実施形態におけるインストーラ側の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１０】
（第１実施形態）
本発明に係る情報処理装置の第１実施形態として、画像処理装置（プリンタ）と情報処理装置（ＰＣ）とを含む印刷システムを例に挙げて以下に説明する。
【００１１】
＜前提技術＞
背景技術で述べたように、ＰＣ上で動作するオペレーティングシステム（ＯＳ）の更新において、印刷フレームワークの大幅な変更を伴う場合がある。その際、ＯＳベンダは、更新後のＯＳにおいて、更新前のＯＳで利用される印刷フレームワークに基づく旧構造のプリンタドライバを、更新後のＯＳで利用される印刷フレームワークに基づく新構造のプリンタドライバと共に利用可能にすることがある。ただし、新構造のプリンタドライバへの移行を促すため、旧構造のプリンタドライバについては特定の条件に該当するか否かに基づいてインストールを制限することが考えられる。例えば、旧構造のプリンタドライバが特定の日付以降に作成されたものである場合に、当該プリンタドライバのインストールを制限することが考えられる。
【００１２】
一方、プリンタベンダは、過去にリリースしたプリンタドライバに不具合があった場合など、それらの修正のために機能修正版のプリンタドライバを作成することがある。しかしながら、上述のようなインストール制限が存在する場合、ユーザは、特定日以降に作成された機能修正版の旧構造のプリンタドライバについてはＯＳにインストールして利用することが出来ないことになる。すなわち、上述の特定日以降、プリンタベンダは、過去にリリースしたプリンタドライバの機能修正版を提供することが実質的に出来なくなってしまうことになる。
【００１３】
そこで、第１実施形態では、更新後のＯＳにおいて上述のようなインストール制限が存在する場合においても、旧構造のプリンタドライバの機能修正版を適切にインストール可能とする仕組みについて説明する。なお、以下の説明では、デバイスドライバ（以下では単にドライバとも呼ぶ）としてプリンタドライバを例として説明を行うが、他のデバイスドライバであってもよい。
【００１４】
＜システム構成＞
図１は、第１実施形態における印刷システムの全体構成を示す図である。画像処理装置１０１と情報処理装置１０２はネットワーク１００を介して接続されている。ネットワーク１００は、イーサネット（登録商標）のような有線ＬＡＮ、Ｗｉ−Ｆｉ準拠無線ＬＡＮのような無線ネットワークである。なお、ユニバーサルシリアルバス（ＵＳＢ）のようなローカル接続でもよい。
【００１５】
情報処理装置１０２にはＯＳおよび各種アプリケーションがインストールされている。このシステムにおいて、ユーザは、情報処理装置１０２からアプリケーションを利用して印刷ジョブを生成し、画像処理装置１０１に送信する。情報処理装置１０２が一般的なＰＣに代表される情報機器である場合、アプリケーションを介して作成したデータからプリンタドライバを介して印刷データを生成し、生成した印刷データを画像処理装置１０１へ送信する構成が考えられる。
【００１６】
図２は、情報処理装置１０２のハードウェア構成を示すブロック図である。入力装置２０６は、ユーザが情報処理装置を操作するためのキーボードやマウスあるいはタッチパネルに相当する。表示装置２０７は、ユーザが情報処理装置１０２を操作するためのディスプレイに相当する。なお、タッチパネルディスプレイのように表示装置２０７の一部または全部が入力装置２０６を兼ねている構成もある。
【００１７】
記憶装置２０５は、大容量のデータを保存するための不揮発性のハードディスクに代表される記憶媒体に相当し、アプリケーションやデータの読み書きが行われる。ネットワーク装置２０８は、ネットワーク１００に接続され、他の機器と通信を行うための機能部である。
【００１８】
情報処理装置１０２を起動するための初期プログラムや情報処理装置１０２の各モジュールを制御するための基本的なプログラムはＲＯＭ２０３に保存されている。また、ＯＳやアプリケーションは記憶装置２０５に保存されている。
【００１９】
情報処理装置１０２は、電源が投入されると、まずＲＯＭ２０３に保存されているコンピュータを起動するためのプログラムを実行する。続いて、当該プログラムは、記憶装置２０５に保存されているＯＳをＲＡＭ２０２にロードし、制御権をＯＳに渡す。情報処理装置１０２のＯＳは、必要なモジュールやドライバを記憶装置２０５からＲＡＭ２０２に読み込む。さらに、情報処理装置１０２のＯＳは、ユーザの指示により、必要なアプリケーションを記憶装置２０５からＲＡＭ２０２に読み込み、実行する。
【００２０】
図３は、画像処理装置１０１のハードウェア構成を示すブロック図である。ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３、記憶装置３０５、表示装置３０７、ネットワーク装置３０８は、情報処理装置１０２における対応する構成と同様であるため説明は省略する。なお、画像処理装置は、例えば、プリンタやファクシミリである。なお、ファクシミリである場合は、プリンタドライバをファックスドライバと読み替えるとよい。
【００２１】
入力装置３０６は、テンキーや各種ボタン、タッチパネルディスプレイ等で構成される。印刷装置３０４は、印刷ジョブに含まれる印刷データをＲＡＭ３０２にロードし、印刷を実行して印刷物を出力する。
【００２２】
図４は、印刷システムに含まれる各装置の機能構成（ソフトウェア構成）を示す図である。各装置の後述の各機能部が通信部４０１および４１１を介して通信することにより、印刷システムを形成している。
【００２３】
画像処理装置４００は、通信部４０１、印刷部４０２、入出力制御部４０３を備える。通信部４０１はネットワーク１００を介して他の機器との通信を実現する。印刷部４０２は、画像処理装置１０１内の印刷ジョブを実行し、印刷物の出力を実現する。入出力制御部４０３は、入力装置３０６からの入力情報や、表示装置３０７への出力情報の制御を実現する。
【００２４】
情報処理装置４１０は、通信部４１１、ジョブ作成部４１２、入出力制御部４１３を備える。通信部４１１は、ネットワーク１００を通じて他の機器との通信を実現する。ジョブ作成部４１２は、画像処理装置１０１が解釈可能な印刷データを印刷ジョブとして作成することを実現する。入出力制御部４１３は、入力装置２０６からの入力情報や、表示装置２０７への出力情報の制御を実現する。
【００２５】
＜プリンタドライバ＞
ジョブ作成部４１２は、例えばプリンタドライバとして実現される。すなわち、プリンタドライバは、アプリケーションからの指示に基づいて、画像処理装置１０１が解釈可能な印刷データを印刷ジョブとして作成する。
【００２６】
ところで、プリンタドライバの備える属性として、ページ記述言語の種類や、バージョン情報、といったものがある。また、プリンタドライバには、特定機種用ドライバあるいは汎用ドライバ、といったものがある。これらの属性の差異により、そのプリンタドライバを構成するモジュールの構造に違いが生じることがある。
【００２７】
また、これらの属性の概念とは別に、プリンタドライバのアーキテクチャの概念がある。例えば、アーキテクチャは、ＯＳ上で印刷を実現するための印刷フレームワークに相当する。以下の説明においては、古いアーキテクチャに基づくドライバを「旧構造のプリンタドライバ」、新しいアーキテクチャに基づくドライバを「新構造のプリンタドライバ」、と呼ぶ。
【００２８】
＜情報処理装置の動作＞
ＯＳにプリンタドライバをインストールする際の流れを、ＯＳ側の処理とプリンタドライバのインストーラ側の処理に分けて説明する。以下の説明では、上述の前提技術で説明したように、ＯＳにおいて、旧構造のプリンタドライバが特定の日付（特定日）以降に作成されたものである場合に、当該プリンタドライバのインストールを制限するよう構成されている形態について説明する。
【００２９】
＜ＯＳ側の処理＞
図５は、第１実施形態におけるＯＳ側の処理の流れを示すフローチャートである。
【００３０】
Ｓ５０１では、ＯＳは、プリンタドライバのインストール指示を受ける。なお、プリンタドライバのインストール指示は、後述のプリンタドライバのインストールプログラムに含まれるインストーラを介して受ける場合の他、ＯＳの提供するプリンタドライバの追加の仕組みを介して受ける場合がある。
【００３１】
Ｓ５０２では、ＯＳは、インストール対象のプリンタドライバが旧構造のプリンタドライバであるか新構造のプリンタドライバであるかの情報を取得する。プリンタドライバの構造に関する情報は、例えば、プリンタドライバに含まれるソフトウェアのインストール用の設定が記述されたシステム定義ファイルを確認することで取得できる。Ｓ５０３では、ＯＳは、インストール対象のプリンタドライバの構造が旧構造であるか否かを判断する。プリンタドライバの構造が旧構造でない（すなわち、新構造である）場合、Ｓ５０４に進み、プリンタドライバの構造が旧構造である場合、Ｓ５１１に進む。
【００３２】
Ｓ５０４では、ＯＳは、インストール対象のプリンタドライバは制限対象ではないため、新構造のプリンタドライバのインストール処理を行い、処理を終了する。
【００３３】
Ｓ５１１では、ＯＳは、インストール対象のプリンタドライバの作成日を取得する。なお、プリンタドライバの作成日は、例えば、当該プリンタドライバをインストールするための設定情報が記述されたシステム定義ファイルを確認することで取得することができる。Ｓ５１２では、ＯＳは、Ｓ５１１で取得したインストール対象のプリンタドライバが所定の条件を満たすか否かを判定する。ここでは、プリンタドライバの作成日が、特定日以降であるか否かを判断する。なお、当該特定日は、例えば、ＯＳにおいて、旧構造のプリンタドライバのインストールを制限することを目的として予め設定された日付／日時である。インストール対象のプリンタドライバの作成日が特定日以降でない場合、Ｓ５１３の処理に進み、特定日以降である場合、Ｓ５２１の処理に進む。
【００３４】
Ｓ５１３では、ＯＳは、インストール対象のプリンタドライバは制限対象ではないため、旧構造のプリンタドライバのインストール処理を行い、処理を終了する。
【００３５】
Ｓ５２１では、ＯＳは、インストール済みの１以上の旧構造のプリンタドライバに対応するプリンタ（デバイス）のモデルの情報を取得し、モデルのリストを作成し格納／管理する。後述するように、作成されたリストは、インストールを許可するプリンタドライバに対応するモデルのセーフリストとして用いられる。ここでは、プリンタドライバに対応するモデルは、プリントキュー作成時にＯＳに登録されたプリンタの型番であるとして説明する。
【００３６】
Ｓ５２２では、ＯＳは、インストール対象のプリンタドライバに対応するモデルの情報を取得する。尚、Ｓ５２２において取得するプリンタドライバのモデルは、追加するプリントキュー（すなわち、特定のモデル）に限定したものであってもよいし、そのプリンタドライバに対応する全てのモデルであってもよい。Ｓ５３１では、ＯＳは、Ｓ５２２で取得したモデルが、Ｓ５２１で作成したリストに含まれるか否かを判断する。Ｓ５２２で取得したモデルがＳ５２１で作成したリストに含まれる場合、Ｓ５４１に進む。一方、Ｓ５２１で作成したリストに含まれない場合、Ｓ５４２に進む。なお、Ｓ５２２において、プリンタドライバに対応する全てのモデルを取得した場合、Ｓ５２１で作成したリストに全てのモデルが含まれる場合のみ「真」と判定してもよいし、当該リストに少なくとも１つのモデルが含まれる場合に「真」と判定してもよい。
【００３７】
Ｓ５４１では、ＯＳは、旧構造のプリンタドライバのインストール処理を行う。すなわち、インストール対象の旧構造のプリンタドライバはＳ５２１で作成されたセーフリストに含まれるものであるため、インストールを許可する。一方、Ｓ５４２では、ＯＳは、インストール対象の旧構造のプリンタドライバはインストール制限の対象であるため、ＯＳは旧構造のプリンタドライバのインストール処理を行わない。
【００３８】
上述のＯＳ側の処理により、インストール対象のプリンタドライバが旧構造のドライバでありかつ作成日が特定日以降である場合であっても、対応するモデルがセーフリストに含まれる場合には、インストール処理は許可されることになる。一方、セーフリストにも含まれないモデルの旧構造のプリンタドライバについては、インストールを制限することが可能となる。
【００３９】
＜インストールプログラムの構造＞
図６は、プリンタドライバのインストールプログラムの構造を示す図である。インストールプログラム６００は、インストール制御を行うインストーラ６０１、及び、２つのプリンタドライバ（実プリンタドライバ６１１、仮プリンタドライバ６１２）を含む。
【００４０】
インストーラ６０１は、実プリンタドライバ６１１（実デバイスドライバ）と仮プリンタドライバ６１２（仮デバイスドライバ）に対して選択的なインストール操作が可能な仕組みを持つ。尚、インストーラ６１１と実プリンタドライバ６１１および仮プリンタドライバ６１２の間の、インストールプログラム６００内におけるフォルダ構成については、必ずしも図６に示すような親子関係である必要はない。
【００４１】
実プリンタドライバ６１１は、インストール対象の旧構造のプリンタドライバであり、ここでは、作成日は特定日以降のものであるとする。また、仮プリンタドライバ６１２は、実プリンタドライバ６１１と同じモデルに対応した旧構造のプリンタドライバであり、ここでは、作成日は特定日より前のものである。たとえば、仮プリンタドライバ６１２が実プリンタドライバ６１１の以前の（古い）バージョンである場合、このような関係が満たされる。
【００４２】
＜インストーラ側の処理＞
図７は、第１実施形態におけるインストーラ側の処理の流れを示すフローチャートである。
【００４３】
Ｓ７０１では、インストーラ６０１は、インストール先のＯＳの情報を取得する。Ｓ７０２では、インストーラ６０１は、インストール先のＯＳが、旧構造のプリンタドライバのインストールに関する制限を有するＯＳか否かを判断する。具体的には、取得されたＯＳの情報から、このような制限に対応するＯＳのバージョンを示す情報や、このような制限が有効となっていることを示す情報が参照できた場合に、制限を有するＯＳであると判断される。旧構造のプリンタドライバのインストールに関する制限を有するＯＳでない場合、Ｓ７０４の処理に進む。一方、旧構造のプリンタドライバのインストールに関する制限を有するＯＳである場合、Ｓ７１１の処理に進む。なお、Ｓ７０２の判断に際して、実プリンタドライバ６１１のインストールを実行してみて、その処理に失敗した際に、前述の制限を有するＯＳであると判断してもよい。
【００４４】
Ｓ７０４では、インストール先のＯＳは旧構造のプリンタドライバのインストールに関する制限がない。そのため、インストーラ６０１は、直接、実プリンタドライバ６１１のインストール処理を行い、処理を終了する。
【００４５】
Ｓ７１１では、インストール先のＯＳは旧構造のプリンタドライバのインストールに関する制限がある（すなわち、作成日が特定日以降のプリンタドライバは制限される）。そこで、インストーラ６０１は、インストール制限されない仮プリンタドライバ６１２のインストール処理を行う。その後、Ｓ７１２では、インストーラ６０１は、実プリンタドライバ６１１のインストール処理を行う。
【００４６】
上述のインストーラ側の処理により、インストール対象のプリンタドライバ（実プリンタドライバ）が旧構造のドライバでありかつ作成日が特定日以降である場合であっても、インストールを行うことが可能となる。
【００４７】
以上説明したとおり第１実施形態によれば、ＯＳによって旧構造のプリンタドライバのインストールが制限された環境であっても、旧構造のプリンタドライバの機能修正版のインストールを可能とする仕組みを提供することが出来る。
【００４８】
（第２実施形態）
第２実施形態では、予めＯＳにより定義されたセーフリストを参照する方法について説明する。すなわち、第１実施形態のように動的に作成されるセーフリストではなく、所与のセーフリストを用いる形態について説明する。なお、システム内の各装置の構成については第１実施形態と同様であるので説明は省略する。
【００４９】
＜情報処理装置の動作＞
＜ＯＳ側の処理＞
図８は、第２実施形態におけるＯＳ側の処理の流れを示すフローチャートである。なお、セーフリストの生成（Ｓ８２１）の処理のみが第１実施形態（図５のＳ５２１）と異なり、他の処理は第１実施形態と同様である。そのため、Ｓ８２１のみ詳細に説明し、他の処理については説明を省略する。
【００５０】
Ｓ８２１では、ＯＳは、予め定義されたモデルのリストを参照して、インストールを許可するモデルのリスト（セーフリスト）を作成し格納／管理する。。例えば、プリンタベンダが、機能修正版のプリンタドライバを特定日以降に作成する可能性があるモデルに関する情報を、予めＯＳベンダに提供することにより実現可能である。なお、ＯＳベンダが、機能修正版のプリンタドライバの作成が予想されるモデルを、既存のプリンタドライバから選択的に抽出することによりリストを作成してもよい。
【００５１】
このようなセーフリストをＯＳ側に予め用意しておくことにより、第１実施形態と同様に、インストール制限対象のプリンタドライバであっても、対応するモデルがセーフリストに含まれる場合には、インストール処理は許可されることになる。一方、セーフリストにも含まれないモデルの旧構造のプリンタドライバについては、インストールを制限することが可能となる。
【００５２】
＜インストーラ側の処理＞
図９は、第２実施形態におけるインストーラ側の処理の流れを示すフローチャートである。なお、プリンタドライバのインストールプログラムの構造は第１実施形態（図６）と同様であるため説明は省略する。またＳ９０３の処理が第１実施形態（図６）に対して追加されたものであり、他の処理は第１実施形態と同様である。そのため、Ｓ９０３のみ詳細に説明し、他の処理については説明を省略する。
【００５３】
Ｓ９０１で取得したＯＳが旧構造のプリンタドライバのインストールに関する制限を有するＯＳである場合、Ｓ９０３では、インストーラ６０１は、インストール対象のモデルがＯＳの持つセーフリストに含まれるか否かを判断する。ＯＳの持つリストに含まれる場合、Ｓ９０４に進み、含まれない場合、Ｓ９１１に進む。すなわち、Ｓ９０３では、セーフリストの参照に基づき、実プリンタドライバのインストールに先立って仮プリンタドライバをインストールするか否かを選択する。
【００５４】
上述のようにインストーラがセーフリストを参照する仕組みとすることにより、インストール制限対象から除外するプリンタドライバをより適切に判定することが可能となる。
【００５５】
以上説明したとおり第２実施形態によれば、ＯＳによって旧構造のプリンタドライバのインストールが制限された環境であっても、旧構造のプリンタドライバの機能修正版のインストールを可能とする仕組みを提供することが出来る。
【００５６】
（第３実施形態）
第３実施形態では、ＯＳの持つ旧構造のプリンタドライバのインストールに関する制限が、新構造のプリンタドライバの有無により影響される場合について説明する。すなわち、新構造のプリンタドライバがインストールされている場合においても、旧構造のプリンタドライバの機能修正版のインストールを可能とする形態について説明する。なお、システム内の各装置の構成については第１実施形態と同様であるので説明は省略する。
【００５７】
＜情報処理装置の動作＞
＜ＯＳ側の処理＞
図１０は、第３実施形態におけるＯＳ側の処理の流れを示すフローチャートである。なお、Ｓ１０２２の処理が第１実施形態（図５）に対して追加されたものであり、他の処理は第１実施形態と同様である。そのため、Ｓ１０２２及び、Ｓ１０２２により影響を受ける処理のみ詳細に説明し、他の処理については説明を省略する。
【００５８】
Ｓ１０２２では、ＯＳは、既にＯＳにインストールされている新構造のプリンタドライバに対応するモデルの情報を取得し、それらをＳ１０２１で作成したリストから削除する。すなわち、この処理は、新構造のプリンタドライバが既にＯＳにインストールされているものについては、旧構造のプリンタドライバのインストールを制限するためのリストを生成するためのものである。
【００５９】
Ｓ１０３１では、ＯＳは、Ｓ１０２３で取得したモデルが、Ｓ１０２２で生成されたリストに含まれるか否かを判断する。Ｓ１０２２で生成されたリストに含まれる場合、Ｓ１０４１の処理に進み、Ｓ１０２２で生成されたリストに含まれない場合、Ｓ１０４２の処理に進む。
【００６０】
上述のＯＳ側の処理により、新構造のプリンタドライバがインストール済みのモデルと同一のモデルに対応する旧構造のプリンタドライバについては、インストールを制限することが可能となる。
【００６１】
＜インストールプログラムの構造＞
図１１は、第３実施形態におけるインストールプログラムの構造を示す図である。インストールプログラムは、インストーラ１１０１、及び、３つのプリンタドライバ（実プリンタドライバ１１１１、仮プリンタドライバ１１１２、新構造プリンタドライバ１１２１）を含む。
【００６２】
インストーラ１１０１は、実プリンタドライバ１１１１と仮プリンタドライバ１１１２と新構造プリンタドライバ１１２１に対して選択的にインストール操作を実行可能に構成されている。尚、インストーラ１１１１と３つのプリンタドライバの間のフォルダ構成については、必ずしも図１１に示すような親子関係である必要はない。
【００６３】
実プリンタドライバ１１１１は、インストール対象の旧構造のプリンタドライバであり、ここでは、作成日はＯＳによって設定された特定日以降であることを想定する。一方、仮プリンタドライバ１１１２は、実プリンタドライバ１１１１と同じモデルに対応した旧構造のプリンタドライバであり、作成日はＯＳによって設定された特定日より前であることを想定する。また、新構造プリンタドライバ１１２１は、実プリンタドライバ１１１１と同じモデルに対応した新構造のプリンタドライバである。
【００６４】
＜インストーラ側の処理＞
図１２は、第３実施形態におけるインストーラ側の処理の流れを示すフローチャートである。なお、Ｓ１２０３，Ｓ１２２１〜Ｓ１２２５の処理が第１実施形態（図６）に対して追加されたものであり、他の処理は第１実施形態と同様である。そのため、Ｓ１２０３，Ｓ１２２１〜Ｓ１２２５について詳細に説明し、他の処理については説明を省略する。
【００６５】
Ｓ１２０３では、インストーラ１１０１は、インストール先のＯＳに実プリンタドライバ１１１１と同じモデルに対応した新構造のプリンタドライバがインストールされているか否かを判断する。新構造のプリンタドライバがインストールされていない場合、Ｓ１２１１に進む。一方、新構造のプリンタドライバがインストールされている場合、Ｓ１２２１に進む。
【００６６】
Ｓ１２２１では、インストーラ１１０１は、インストール先のＯＳにインストールされた実プリンタドライバ１１１１が対応するモデルと同じモデルに対応した新構造のプリンタドライバの情報を取得し保持する。その後、Ｓ１２２２では、インストーラ１１０１は、そのプリンタドライバをアンインストールする。
【００６７】
Ｓ１２２３では、インストーラ１１０１は、仮プリンタドライバ１１１２のインストール処理を行う。その後、Ｓ１２２４では、インストーラ１１０１は、実プリンタドライバ１１１１のインストール処理を行う。
【００６８】
Ｓ１２２５では、インストーラ１１０１は、Ｓ１２２１で保持した情報を元に、新構造プリンタドライバ１１２１のインストール処理を行い、Ｓ１２２２で削除したプリンタドライバの復旧する。
【００６９】
上述のインストーラ側における一時的な新構造のプリンタドライバのアンインストールにより、適切に旧構造のプリンタドライバをインストールすることが可能となる。
【００７０】
以上説明したとおり第３実施形態によれば、ＯＳの持つ旧構造のプリンタドライバのインストールに関する制限が新構造のプリンタドライバの有無により影響される場合対応することが可能となる。すなわち、適切に旧構造のプリンタドライバの機能修正版のインストールを可能とする仕組みを提供することが出来る。
【００７１】
なお、上述の説明においては、ＯＳは、既にＯＳにインストールされている旧構造ならびに新構造のプリンタドライバの情報を取得し、リストを動的に作成した。しかしながら、予めＯＳにより定義されたリストを、新構造のプリンタドライバの有無を考慮して参照する構成としてもよい。具体的には、機能修正版のプリンタドライバの作成が予想され、かつ、新構造のプリンタドライバが作成されていないモデルを、既存のプリンタドライバから抽出しリストを作成してもよい。
【００７２】
また、上述の説明においては、インストール制限に関する特定の条件が「プリンタドライバの作成日が特定日以降である」とした。しかしながら他の条件であってもよい。たとえば「プリンタドライバがＯＳの特定のモジュールを利用する」ことを特定の条件としてもよい。
【００７３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７４】
１０１  画像処理装置；  １０２  情報処理装置；  ６０１  インストーラ；  ６１１  実プリンタドライバ；  ６１２  仮プリンタドライバ
【図１】
2017134763.tif 000003
【図２】
2017134763.tif 000004
【図３】
2017134763.tif 000005
【図４】
2017134763.tif 000006
【図５】
2017134763.tif 000007
【図６】
2017134763.tif 000008
【図７】
2017134763.tif 000009
【図８】
2017134763.tif 000010
【図９】
2017134763.tif 000011
【図１０】
2017134763.tif 000012
【図１１】
2017134763.tif 000013
【図１２】
2017134763.tif 000014