(57)【要約】【課題】ドライバーインストール後にＯＳが行うＡｕｔｏＣｏｎｆｉｇのオプション構成情報取得処理において、Ｓｔａｎｄａｒｄ ＴＣＰ/ＩＰポート接続時は周辺装置の制限を超える短い間隔で多数のＭＩＢをリクエストするため、周辺装置が全てのリクエストに応答できず、全ての情報を取得することを保証できない【解決手段】ＯＳが実施するＡｕｔｏＣｏｎｆｉｇの後に接続ポートに応じて、独自の通信方法で再度構成情報取得処理を行う。特にＳｔａｎｄａｒｄ ＴＣＰ/ＩＰポート接続時の場合、特定の間隔を保ってそれぞれのオプション構成情報をリクエストし、周辺装置が確実に応答できるようにする。【選択図】図６
2018124770.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムが実行される情報処理装置であって、
前記オペレーティングシステムは、デバイスドライバーのインストールに際して該デバイスドライバーに対応する周辺装置から構成情報を取得するための複数のリクエストを第１の時間間隔で実行する取得処理を行い、
前記情報処理装置は、前記デバイスドライバーのインストール後、前記オペレーティングシステムによる前記取得処理とは異なるタイミングに、前記構成情報の取得機能をもつモジュールを用いて、前記周辺装置から前記構成情報を取得するための複数のリクエストを前記第１の時間間隔より長い時間間隔である第２の時間間隔で実行する取得手段を有し、
前記取得手段により取得された情報が、前記周辺装置の構成情報として保存されることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記デバイスドライバーに設定されたポートの種類を判定する判定手段を更に有し、
前記取得手段は、前記判定手段により前記ポートの種類がＴＣＰ／ＩＰポートと判定された場合に、前記複数のリクエストを短くとも前記第２の時間間隔で実行することを特徴とする情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置であって、
前記取得手段は、前記判定手段により前記ポートの種類がＴＣＰ／ＩＰポートと判定された場合に、前記複数のリクエストを短くとも前記第２の時間間隔で実行する前に、前記ＴＣＰ／ＩＰポートを介して、前記構成情報を含むＷＳＤ（Ｗｅｂ Ｓｅｒｖｉｃｅｓ ｆｏｒ Ｄｅｖｉｃｅｓ） Ｓｃｈｅｍａを前記周辺装置に対して要求し、
前記ＷＳＤ Ｓｃｈｅｍａの取得に失敗した場合に、前記複数のリクエストを短くとも前記第２の時間間隔で実行することで前記構成情報を取得することを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記取得手段は、前記ＷＳＤ Ｓｃｈｅｍａの取得に成功した場合には、前記ＷＳＤ Ｓｃｈｅｍａに含まれた前記構成情報を取得することを特徴とする情報処理装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の情報処理装置であって、
前記取得手段による前記構成情報の取得結果を記録する記録手段を更に有し、
前記記録手段には、前記構成情報に相当する構成が前記周辺装置にはないことを示す第１の値と、前記構成があることを示す第２の値と、前記構成情報を未取得であることを示す第３の値とを、前記取得結果に応じて記録することを特徴とする情報処理装置。
【請求項６】
請求項５に記載の情報処理装置であって、
前記記録手段に記録した前記構成情報に応じて前記周辺装置の設定を行う設定画面を提供する提供手段をさらに有し、
前記提供手段は、前記記録手段により記録された値が前記第３の値の場合、対応する構成により提供される機能を有効化し、該機能を選択できるよう前記設定画面を構成することを特徴とする情報処理装置。
【請求項７】
請求項５に記載の情報処理装置であって、
前記取得手段は、前記記録手段により記録された値が前記第３の値の場合に、前記複数のリクエストを実行して前記構成情報を取得することを特徴とする情報処理装置。
【請求項８】
請求項１乃至７のいずれか一項に記載の情報処理装置であって、
前記オペレーティングシステムからの前記デバイスドライバーのインストール完了通知に応答した前記デバイスドライバーのインストーラーによる要求に応じて、前記構成情報の取得機能をもつモジュールを用いた、前記第２の時間間隔での前記周辺装置から前記構成情報を取得するための複数のリクエストが開始されることを特徴とする情報処理装置。
【請求項９】
請求項１乃至８のいずれか一項に記載の情報処理装置であって、
前記取得手段は、前記オペレーティングシステムによる前記取得処理の完了に応じて、前記構成情報の取得機能をもつモジュールを用いて、前記周辺装置から前記構成情報を取得するための複数のリクエストを前記第２の時間間隔で実行することを特徴とする情報処理装置。
【請求項１０】
請求項１乃至９のいずれか一項に記載の情報処理装置であって、
前記構成情報の取得機能をもつモジュールは、前記情報処理装置にインストールされた前記デバイスドライバーの関連アプリケーションにより実現されることを特徴とする情報処理装置。
【請求項１１】
請求項１乃至１０のいずれか一項に記載の情報処理装置であって、
前記周辺装置はプリンターであり、
前記構成情報は、前記プリンターのオプション機器の構成を示すオプション構成情報であることを特徴とする情報処理装置。
【請求項１２】
オペレーティングシステムにより、デバイスドライバーのインストールに際して該デバイスドライバーに対応する周辺装置から構成情報を取得するための複数のリクエストを第１の時間間隔で実行する取得処理が行われるコンピューターを、
前記デバイスドライバーのインストール後、前記オペレーティングシステムによる前記取得処理とは異なるタイミングに、前記構成情報の取得機能をもつモジュールを用いて、前記周辺装置から前記構成情報を取得するための複数のリクエストを前記第１の時間間隔より長い時間間隔である第２の時間間隔で実行する取得手段と、
前記取得手段により取得された情報を前記周辺装置の構成情報として保存する保存手段として機能させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムであって、
前記コンピューターを、前記デバイスドライバーに設定されたポートの種類を判定する判定手段として機能させ、
前記取得手段は、前記判定手段により前記ポートの種類がＴＣＰ／ＩＰポートと判定された場合に、前記複数のリクエストを短くとも前記第２の時間間隔で実行することを特徴とするプログラム。
【請求項１４】
請求項１２または１３に記載のプログラムであって、
前記コンピューターを、前記取得手段による前記構成情報の取得結果を記録する記録手段として機能させ、
前記記録手段には、前記構成情報に相当する構成が前記周辺装置にはないことを示す第１の値と、前記構成があることを示す第２の値と、前記構成情報を未取得であることを示す第３の値とを、前記取得結果に応じて記録することを特徴とするプログラム。
【請求項１５】
請求項１４に記載のプログラムであって、
前記周辺装置の設定を行う設定画面を提供する際に、前記記録手段により記録された値が前記第３の値の場合、対応する構成により提供される機能を有効化し、該機能が選択できるよう構成することを特徴とするプログラム。
【請求項１６】
請求項１２乃至１５のいずれか一項に記載のプログラムであって、
前記オペレーティングシステムからの前記デバイスドライバーのインストール完了通知に応答して、前記構成情報の取得機能をもつモジュールを用いた、前記第２の時間間隔での前記周辺装置から前記構成情報を取得するための複数のリクエストが開始されることを特徴とするプログラム。
【請求項１７】
請求項１２乃至１６のいずれか一項に記載のプログラムであって、
前記取得手段は、前記オペレーティングシステムによる前記取得処理の完了に応じて、前記構成情報の取得機能をもつモジュールを用いて、前記周辺装置から前記構成情報を取得するための複数のリクエストを前記第２の時間間隔で実行することを特徴とするプログラム。
【請求項１８】
オペレーティングシステムにより、デバイスドライバーのインストールに際して該デバイスドライバーに対応する周辺装置から構成情報を取得するための複数のリクエストを第１の時間間隔で実行する取得処理が行われる情報処理装置における方法であって、
前記デバイスドライバーのインストール後、前記オペレーティングシステムによる前記取得処理とは異なるタイミングに、前記構成情報の取得機能をもつモジュールを用いて、前記周辺装置から前記構成情報を取得するための複数のリクエストを前記第１の時間間隔より長い時間間隔である第２の時間間隔で実行する取得工程を有し、
前記取得工程で取得された情報が、前記周辺装置の構成情報として保存されることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は周辺装置の構成情報の取得のための技術に関する。
【背景技術】
【０００２】
従来、コンピューターにデバイスドライバーをインストールした上で、プリンターやスキャナー、カメラ、３Ｄプリンターなどの周辺装置が利用されている。例えば、コンピューター上で作成した文書や図といったファイルをアプリケーションから印刷する際には、コンピューターにインストールされたプリンタードライバーを使って描画データをページ記述言語に変換し、周辺装置としてのプリンターに送信するのが一般的である。またそのとき、用紙の種類や両面、カラー、給紙方法といった印刷設定は、アプリケーションが持つ印刷設定用のユーザーインターフェースか、プリンタードライバーが提供する印刷設定用のユーザーインターフェース（以降、ＵＩとも呼ぶ）を使って設定を行う。
【０００３】
また、Ｗｉｎｄｏｗｓ ＶＩＳＴＡ（登録商標）から導入された、周辺装置とコンピューターとの接続形態として、Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ｆｏｒ  Ｄｅｖｉｃｅｓ（ＷＳＤと呼ぶ）というものがある。このＷＳＤでは、周辺装置に対応するデバイスドライバーをコンピューターにインストールした際に、その周辺装置と双方向通信を行い、周辺装置の能力情報やオプション構成情報などを含む構成情報を取得してデバイスドライバーに通知する仕組みがある。このオプション構成情報とは、周辺装置に対して、追加で設置できる機器や付加機能などのオプション構成に関する情報を指す。具体的には、プリンターの例では、印刷用紙を増加させるためのオプション給紙カセット装置や、印刷した用紙に対してホチキスやパンチができるようにするフィニッシャーオプション装置などのオプション機器や機能に関する情報である。また、Ｓｔａｎｄａｒｄ ＴＣＰ／ＩＰのポートでも、同様のオプション構成情報をＳＮＭＰ（Ｓｉｍｐｌｅ Ｎｅｔｗｏｒｋ Ｍａｎａｇｅｍｅｎｔ Ｐｒｏｔｏｃｏｌ）によって取得し、デバイスドライバーに通知する仕組みがある。この仕組みをＡｕｔｏＣｏｎｆｉｇという。ＡｕｔｏＣｏｎｆｉｇについては、参考文献１等に記載されている。プリンタードライバーはこのような仕組みで取得したオプション構成情報を保存し、オプション構成に応じたＧＵＩの表示や設定を行うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２５７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述のＯＳが提供するＡｕｔｏＣｏｎｆｉｇの仕組みでは、周辺装置のオプション構成情報が正しく取得できない場合がある。特に、コンピューターで所定バージョン以上のＯＳが実行され、周辺装置とコンピューターとがＳｔａｎｄａｒｄ ＴＣＰ／ＩＰのポートで接続している場合、ネットワーク環境によっては、オプション構成情報などの構成情報の取りこぼしが発生することがある。これはＯＳからの各オプション構成情報取得要求が非常に高速なUDP（User Datagram Protocol）によるリクエストであり、さらに周辺装置の応答が遅れても再送のリクエストも無いので、その情報は未取得とみなされるからである。ＯＳの機能を介した構成情報の取りこぼしが発生すると、デバイスドライバーは、そのオプション構成がないものとして動作することが多い。例えば、給紙トレイや給紙カセットのオプション構成が取りこぼし対象になった場合、プリンタードライバーはそれらの給紙方法は使用できないとみなし、印刷設定のＵＩでもそれらの給紙方法は設定できなくしてしまう。その結果、プリンターにはオプションの給紙カセットが設置されているにも関わらず、印刷時にその給紙カセットからの給紙ができないという問題があった。このように、ＯＳの機能に起因する構成情報の取りこぼしによって、デバイスドライバーで取りこぼした構成情報に係る機能を使用できないという問題が在る。
【０００６】
本発明は上記問題を鑑みて成されたもので、デバイスドライバーのインストール時などの際に、上述した構成情報の取りこぼしによる不具合を軽減可能な情報処理装置およびその方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は以下の構成を有する。すなわち、本願発明の一側面によれば、オペレーティングシステムが実行される情報処理装置であって、
前記オペレーティングシステムは、デバイスドライバーのインストールに際して該デバイスドライバーに対応する周辺装置から構成情報を取得するための複数のリクエストを第１の時間間隔で実行する取得処理を行い、
前記情報処理装置は、前記デバイスドライバーのインストール後、前記オペレーティングシステムによる前記取得処理とは異なるタイミングに、前記構成情報の取得機能をもつモジュールを用いて、前記周辺装置から前記構成情報を取得するための複数のリクエストを前記第１の時間間隔より長い時間間隔である第２の時間間隔で実行する取得手段を有し、
前記取得手段により取得された情報が、前記周辺装置の構成情報として保存されることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、上述したＯＳの構成情報の取得機能に起因する構成情報の取りこぼしによる不具合を軽減できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る印刷処理システムのクライアントコンピューター、サーバーおよび印刷装置を適用可能なプリントシステムの構成の一例を示すシステム構成図
【図２】本発明の実施形態に係る印刷処理システムの一般的なコンピューターを用いたシステムのブロック構成図
【図３】本発明の実施形態に係る印刷処理システムの印刷システムのブロック構成図
【図４】本発明の実施形態に係る印刷処理システムのインストーラーモジュールのブロック構成図
【図５】本発明の実施形態に係る印刷処理システムのプリンタードライバーインストール時のプリンターからオプション構成情報を取得するシーケンス図
【図６】本発明の実施形態に係る印刷処理システムのＰｒｅＣｏｎｆｉｇ処理を説明するフローチャート
【図７】本発明の実施形態に係る印刷処理システムのＡｕｔｏＣｏｎｆｉｇが取得するオプション構成情報の定義の一例を示す図
【図８】本発明の実施形態に係る印刷処理システムにおけるインストール時のＰｒｅＣｏｎｆｉｇを行うかどうかの判定処理を説明するフローチャート
【図９】本発明の実施形態に係る印刷処理システムにおける印刷設定画面起動時のＰｒｅＣｏｎｆｉｇを行うかどうかの判定処理を説明するフローチャート
【図１０】本発明の実施形態に係る印刷処理システムの印刷設定画面起動時に表示するメッセージ画面の一例
【図１１】本発明の実施形を示す図態に係る印刷処理システムにおける印刷設定画面起動時の設定項目を有効化／無効化を判定する処理を説明するフローチャート
【図１２】本発明の実施形態に係る印刷処理システムの印刷設定画面の一例その１を示す図
【図１３】本発明の実施形態に係る印刷処理システムの印刷設定画面の一例その２を示す図
【発明を実施するための形態】
【００１０】
［実施形態１］
＜印刷処理システム及びその構成要素の構成＞
図１は本発明の実施形態に係る印刷処理システムのクライアントコンピューター、サーバーおよび印刷装置を適用可能なプリントシステムの構成の一例を示すシステム構成図である。本実施形態のプリントシステムは、１又は複数のクライアントコンピューター１００（例えば、ユーザー毎）、１又は複数のサーバー２０００（例えば、階毎に設置）、１又は複数のプリンター３０００（例えば、階毎に設置）で構成される。さらに、上記クライアントコンピューター１００、サーバー２０００、プリンター３０００がローカルエリアネットワーク４０００を介して接続される構成となっている。ネットワーク４０００にはＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ Ｎｅｔｗｏｒｋ）などの小規模から大規模までのネットワークがあり、これらの機器が全てのネットワークに接続されている。なお本実施形態では、プリンター或いは印刷装置は、プリンターを含むデバイスを指しており、たとえば多機能複写機（ＭＦＰ）もプリンター或いは印刷装置に含まれる。
【００１１】
図２は本発明の実施形態に係る印刷処理システムの一般的なコンピューターすなわち情報処理装置を用いたシステムのブロック構成図である。ここでは、クライアントコンピューター１００の構成を説明しているが、特に断らない限り、サーバー２０００も同様の構成である。ＣＰＵ１０１は主記憶装置１０２のＲＯＭ１０２１、ＲＡＭ１０２２あるいは補助記憶装置１０５に格納されたプログラムに従って、ＰＣ１００全体の制御を行う。ＲＡＭ１０２２はＣＰＵ１０１が各種処理を行う際のワークエリアとしても使用される。補助記憶装置１０５には、アプリケーション１０５１やインストーラー１０５２、プリンタードライバー１０５３、オペレーティングシステム１０５４等の各種プログラムが格納される。なお、これ以降アプリケーション１０５１をアプリ、プリンタードライバー１０５３をドライバー、オペレーティングシステム１０５４をＯＳと表記することもある。キーボード１０８やマウスまたはタッチパネルなどに代表されるポインティングデバイス（マウス）１０９などの入力機器は、入力Ｉ／Ｆ１０３を通じてＰＣ１００に接続される。出力Ｉ／Ｆ１０４にはモニター１１０などの出力デバイスが接続され、プログラムの指示に従いモニター上にユーザインターフェース（ＵＩ）を表示する。これらの入力・出力機器を通してユーザーからのプログラムへの操作を受け付ける。通信Ｉ／Ｆ１０６は、ネットワーク４０００に接続されており、ＰＣ１００の外部機器、例えば、図１のサーバー２０００やプリンター３０００との通信が可能である。上記のモジュールは、共通データシステムバス１０７で接続され、各モジュール間でデータのやり取りが可能である。プログラム１０５１〜１０５４は、不図示のＣＤ−ＲＯＭやＵＳＢメモリーを介して補助記憶装置１０５に追加可能である。更にネットワーク４０００を経由して補助記憶装置１０５に追加することも可能である。なお、特に断らない限り、本発明の機能が実行されるのであれば、機器の構成に係わらず本発明を適用できることは言うまでもない。単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ，ＷＡＮ等のネットワークを介して接続が為され処理が行われるシステムであってもよい。
【００１２】
＜印刷システムのソフトウェア構成＞
図３は本発明の実施形態に係る印刷処理システムの印刷システムのブロック構成図である。
印刷システムはＸＰＳファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。印刷システムは、オペレーティングシステム１０５４上で動作している。プリントマネージャ２１８、ＧＤＩｔｏＸＰＳ変換モジュール２０７、フィルタパイプラインマネージャ２１２、ポートモニター２１９はオペレーティングシステム１０５４に含まれるモジュールである。ＧＤＩとはプリンターの印刷イメージの生成を行うグラフィックスコンポーネントであり、ＸＰＳは、電子文書を記述するためのＸＭＬベースのフォーマットである。ＸＰＳは、マイクロソフト社のウインドウズ（登録商標）で、ＧＤＩに代えて採用されたものであり、ＧＤＩからＸＰＳへのデータの互換性を維持するためにＧＤＩｔｏＸＰＳ変換モジュール２０７が用意されている。本実施形態では、ＸＰＳがネイティブの形式であり、ＧＤＩデータはＸＰＳデータに変換されてから印刷される。ＧＤＩｔｏＸＰＳ変換モジュール２０７は、ＧＤＩで描画されたデータをＸＰＳデータへ変換する機能を持つ。フィルタパイプラインマネージャ２１２は、ＸＰＳ印刷パスの特徴であるフィルタ印刷処理の管理を行うモジュールである。ポートモニター２１９は、プリンターにアクセスするプリントマネージャ２１８とプリンタードライバー間で通信を制御することができ、プリンタードライバー１０５３はポートモニター２１９を経由して印刷処理を行う。また、プリントマネージャ２１８はポートモニター２１９を通して、プリンター３０００と通信しＡｕｔｏＣｏｎｆｉｇを行う。本実施例では、周辺装置に対応するデバイスドライバーのＧＵＩ提供などの補助機能をもつ関連アプリケーションが周辺装置から構成情報を取得する取得機能をさらに持つ。具体的には、この関連アプリケーションの１例であるプリンターエクステンション２１０が、プリントマネージャ２１８やポートモニター２１９を経由せずに、プリンター３０００と直接通信し、プリンター３０００のオプション機器の構成を示すオプション構成情報を取得する経路を持つものとする。図３では、ＧＤＩｔｏＸＰＳ変換モジュール２０７、コンフィギュレーションモジュール２０８、フィルタパイプラインマネージャ２１２は、プリンタードライバー１０５３に含まれているが、オペレーティングシステム１０５４から提供されているプリンタードライバー１０５３のモジュールという位置づけである。コンフィギュレーションモジュール２０８は、プリンタードライバー１０５３が提供する印刷設定編集モジュール２０８１を使用して印刷設定情報を編集することができる。印刷設定編集モジュール２０８１は、Ｃｏｎｓｔｒａｉｎｔ  Ｓｃｒｉｐｔと呼ばれるスクリプト言語で記載され、プリンタードライバーが提供するプロパティバッグ２０８２、２０８３を利用して印刷設定情報を編集する。プロパティバッグとは、プリンターの機種依存情報として利用するためのＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ２０８２と呼ばれるデータ群と、プリントキューに紐づいたＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ２０８３と呼ばれるデータ群が保持された領域を指す。
【００１３】
ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ２０８２は、ドライバーパッケージ内に存在するプリンターの機種依存データであり、プリンタードライバーインストール後にＯＳ内の特定の領域に読み取り専用としてデータ群が保持される。
【００１４】
ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ２０８３は、Ｋｅｙ−Ｖａｌｕｅペアのｘｍｌ定義ファイルをＯＳに登録することで利用することが可能であり、Ｖａｌｕｅに関して一定の権限上で編集が可能である。また、印刷設定定義ファイルであるＧＰＤにもＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ２０８３の定義を記載することができる。
【００１５】
プリンタードライバー１０５３とフィルタパイプラインマネージャ２１２の各フィルタは、図１の補助記憶装置１０５にプリンタードライバー１０５３として格納されている。ＧＤＩ印刷アプリケーション２０１とＸＰＳ印刷アプリケーション２０２は、図１の補助記憶装置１０５にアプリケーション１０５１として格納されている。ＧＤＩ印刷アプリケーション２０１およびＸＰＳ印刷アプリケーション２０２はそれぞれ、ＧＤＩおよびＸＰＳ形式で印刷データを作成するアプリケーションであり、例えば文書処理アプリケーションなどがある。ユーザーはキーボード１０８やタッチパネル／マウスなどに代表されるポインティングデバイス１０９などといった入力装置を使用して、出力装置のモニター１１０に映し出されたＧＤＩ印刷アプリケーション２０１（以下、ＧＤＩアプリと略す）、もしくはＸＰＳ印刷アプリケーション２０２（以下、ＸＰＳアプリと略す）から印刷処理を実行する。印刷処理は、プリンターの選択、印刷設定の作成、描画データの変換と３つの処理を順番に行うことで実行する。なおＸＰＳ印刷アプリケーションおよびＧＤＩ印刷アプリケーションをまとめて印刷アプリケーションと呼ぶ。
【００１６】
まずは、印刷アプリケーションの画面から、印刷したいプリンター３０００の選択をする。ユーザーから見るとプリンター３０００の選択は、印刷を実行するプリンター３０００に対応したプリンタードライバー１０５３を選択することと同義である。プリンタードライバー１０５３の選択には、不図示のプリントキューを利用する。
【００１７】
次に印刷設定を作成する。印刷設定はまず、アプリケーション１０５１が印刷設定用のメモリー領域をＲＡＭ１０２２に確保する。そして、アプリケーション１０５１は、選択されたプリンタードライバー１０５３のコンフィギュレーションモジュール２０８を呼び出して、印刷設定データを作成して格納する。ＧＤＩアプリ２０１では印刷設定データとしてバイナリのＤＥＶＭＯＤＥ構造体２０３を用い、ＸＰＳアプリ２０２ではマークアップ言語のＸＭＬで記載されたＰｒｉｎｔＴｉｃｋｅｔ２０４を用いる。ＤＥＶＭＯＤＥ構造体２０３は、オペレーティングシステム１０５４が定義する標準領域とプリンタードライバー１０５３が独自で定義する拡張領域を持つ。ＰｒｉｎｔＴｉｃｋｅｔ２０４は、ＸＭＬ形式で記述された印刷設定情報で、標準領域と拡張領域は名前空間によって記載が分かれている。印刷設定データには機種固有の情報も含まれているので、コンフィギュレーションモジュール２０８は、機種依存ファイル２０９を利用して、印刷設定データを作成する。このＤＥＶＭＯＤＥ構造体２０３もしくはＰｒｉｎｔＴｉｃｋｅｔ２０４が印刷設定を保持しており、アプリケーションが直接、値を書き換えることで印刷設定を変更する。機種依存ファイル２０９は、ＧＰＤと呼ばれる印刷設定定義ファイルを指し、テキストベースで記載されている。またこの機種依存ファイル２０９である印刷設定定義ファイルには、プリンターの能力やプリンターのオプション構成、プリントキューに紐づくＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇの定義を記載することができる。
【００１８】
これら禁則情報も含めたプリンター３０００に依存した専用の印刷設定は、プリンターエクステンション２１０が持つユーザーインターフェースで設定する。プリンタードライバー１０５３は、ユーザーインターフェースの設定に従い、ＤＥＶＭＯＤＥ構造体２０３もしくはＰｒｉｎｔＴｉｃｋｅｔ２０４のプリンター３０００に依存した設定を変更する。ＰｒｉｎｔＴｉｃｋｅｔ２０４は印刷設定がＸＭＬ形式で記述されているので、ＸＰＳアプリ２０２がすべての設定値を直接変更して書き換えることは容易だが、プリンターエクステンション２１０のユーザーインターフェースを使って設定変更してもかまわない。このプリンターエクステンション２１０は、プリンタードライバー１０５３の一種ではあるが、プリンタードライバー１０５３とは別のアプリケーションとしてインストールが行われる。
【００１９】
印刷設定は文書等の印刷のたびに作成するが、プリンター３０００のオプション機器構成や、ユーザーごとの環境設定など保持しておきたい設定は、プリンターエクステンション２１０がオペレーティングシステム１０５４のレジストリデータベース２０５に保存する。レジストリデータベース２０５が使用できないときは、プリンターエクステンション２１０は、アプリケーションデータ２２０に設定を保存する。印刷設定のデフォルト値はオペレーティングシステムのプリントマネージャ２１８が、レジストリデータベース２０５に保存する。レジストリデータベース２０５や、アプリケーションデータ２２０は、補助記憶装置１０５に保存される。
【００２０】
印刷設定が確定したら、ユーザーはアプリケーションから印刷処理を実行する。ＧＤＩアプリ２０１から印刷する場合は、ＯＳのモジュールであるＧＤＩｔｏＸＰＳ変換モジュール２０７に描画データが送られ、ＸＰＳ形式に変換されてＸＰＳスプールファイル２０６が作成される。このときＧＤＩｔｏＸＰＳ変換モジュール２０７はコンフィギュレーションモジュール２０８を呼び出し、印刷設定をＤＥＶＭＯＤＥ構造体２０３からＰｒｉｎｔＴｉｃｋｅｔ２０４に変換する。変換する際には、コンフィギュレーションモジュール２０８によって、印刷設定編集モジュール２０８１が使用される。
【００２１】
一方、ＸＰＳアプリ２０２から印刷する場合は、ＸＰＳファイルをＸＰＳアプリ自身が生成するのと、オペレーティングシステム１０５４がＸＰＳアプリからの描画命令に応じてＸＰＳファイルを生成するのと２通りの方法がある。どちらの方法であっても、印刷の途中でＸＰＳスプールファイル２０６を生成する。
【００２２】
ＧＤＩアプリ２０１又はＸＰＳアプリ２０２から印刷の指示が行われることでＸＰＳスプールファイル２０６が生成されたら、プリントフィルタパイプライン２１１に処理が渡される。プリントフィルタパイプライン２１１は複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィグレーションファイル２１６でフィルタの数や順番を制御する。本実施形態ではプリンター３０００と通信する機構を持つ通信フィルタ２１３、製本やスタンプのレイアウト処理を行う機構を持つレイアウトフィルタ２１４、ＸＰＳスプールファイル２０６をレンダリングしてＰＤＬ（ＰａｇｅＤｅｓｃｒｉｐｔｉｏｎＬａｎｇｕａｇｅ）に変換する機構を持つレンダラフィルタ２１５で構成される。ＰＤＬデータは印刷処理のスケジュール管理を行うプリントマネージャ２１８で管理され、キュー（待ち行列）に印刷ジョブが次々と登録される。プリンター３０００が印刷できる状態になったら、キューに登録した順にポートモニター２１９を通して送信する。このようにして、アプリケーションからの印刷データをＰＤＬデータに変換することがプリンタードライバーの主な役目であり、印刷処理が行われる。
【００２３】
＜インストーラーモジュールの構成＞
図４は本発明の実施形態に係る印刷処理システムのインストーラー１０５２のブロック構成図の一例である。ブロック図の基本構成は、以下の通りである。
・ネットワーク探索モジュール１０５２０
・ドライバーインストールモジュール１０５２１
・ドライバー更新モジュール１０５２２
・プリンターキューインストールモジュール１０５２３
・ＰｒｅＣｏｎｆｉｇモジュール１０５２４
これらのソフトウェアモジュールは、補助記憶装置１０５に格納されており、ユーザーの要求や、他のシステムの要求に応じて、補助記憶装置１０５からＲＡＭ１０２２にロードされ、ＣＰＵ１０１で実行される。ネットワーク探索モジュール１０５２０は、ＩＰｖ４探索部４００、ＩＰｖ６探索部４０１、ＷＳＤ探索部４０２で構成されている。ネットワーク探索モジュール１０５２０とは、ネットワーク４０００で繋がっているプリンターを探索する機能を搭載したモジュールである。探索するプロトコルはＩＰｖ４、ＩＰｖ６、ＷＳＤがあり、ＩＰｖ４探索部４００、ＩＰｖ６探索部４０１、ＷＳＤ探索部４０２それぞれが、ユーザーの指示に従い、それぞれのプロトコルでプリンター３０００と通信し、通信できたプリンター全てをリストする。探索した結果のリストを、それぞれＩＰｖ４探索部４００は、ＩＰｖ４探索結果リスト４０３に、ＩＰｖ６探索部４０１は、ＩＰｖ６探索結果リスト４０４に、ＷＳＤ探索部４０２は、ＷＳＤ探索結果リスト４０５に保存する。探索対象のデバイスは一般的なデバイスであるが、本例では特にプリンターが探索の対象となる。
【００２４】
ドライバーインストールモジュール１０５２１は、デバイスドライバーをインストールするモジュールであり、たとえばインストール指示に応じてデバイスドライバーインストールすることができる。ドライバー更新モジュール１０５２２は、インストール済みのドライバーを、それがリバイスされたことを示す情報などに応じて更新する。本実施形態では、ネットワークから探索したデバイス特にプリンターに対して、対応するドライバーをインストールするが、そのインストール処理はプリンターキューインストールモジュール１０５２３により行われる。
【００２５】
プリンターキューインストールモジュール１０５２３は、ＵＳＢプリンターインストール部４０６、ネットワークプリンターインストール部４０７、ＷＳＤプリンターインストール部４０８で構成されている。ＵＳＢプリンターインストール部４０６は、予め対象のプリンタードライバー１０５４をインストールしておき、その後、ＵＳＢプラグアンドプレイインストールを行う。プラグアンドプレイインストールとはクライアントコンピューター１００にプリンター３０００を接続した際にＯＳ１０５５が、プリンタードライバー１０５４のインストールと設定とを自動的に行う仕組みのことである。ユーザーは手順に従って、プリンター３０００とクライアントコンピューター１００とをケーブルで接続するだけでそのプリンターが利用可能となるので、ユーザビリティ（使い勝手）を向上させる技術の１つとなっている。ＷＳＤポートの場合もプラグアンドプレイインストールがあり、こちらの場合はケーブルを接続する必要もなく、手順に従って探索されたプリンターの一覧から所望するプリンター３０００を選択するだけで利用可能となる。ＰｒｅＣｏｎｉｇモジュール１０５２４は、ドライバー呼び出し部４１０があり、プリンターキューインストールが完了した後に、必要に応じてインストールしたプリンタードライバー１０５３に対し、オプション構成情報取得を行うように指示を行う。
【００２６】
＜オプション構成情報の取得手順＞
図５は本発明の実施形態に係る印刷処理システムのプリンタードライバーインストール時において、プリンターからオプション構成情報を取得するシーケンス図である。プリンターがまずインストーラー１０５２がＯＳ１０５４に対しインストール指示を行う（Ｓ５０１）。インストール指示は、たとえば、プリンターの探索結果に応じて、ＵＳＢプリンターインストール部４０６、ネットワークプリンターインストール部４０７、ＷＳＤプリンターインストール部４０８により出される。ＯＳ１０５４はインストーラー１０５２からインストール指示を受け取りプリンタードライバー１０５３のインストール処理を実施し、その処理が完了すると、インストーラー１０５２に対しインストール完了通知処理を行う（Ｓ５０２）。プリンタードライバー１０５３のインストールに際して、対応するプリンターエクステンション２１０が未インストールの場合には、ドライバーインストールに伴いプリンターエクステンション２１０もインストールされることになる。それと同じタイミングでプリンター３０００に対しオプション構成情報の取得要求を行う（Ｓ５０３）。プリンター３０００は、ＯＳ１０５４からオプション構成情報の取得要求を受け取ると、現在のオプション構成情報を調べて、その結果を応答情報としてＯＳ１０５４に送付する（Ｓ５０４）。ＯＳ１０５４は、プリンター３０００からオプション構成情報の取得処理が完了すると、そのオプション構成情報を、インストールしたプリンタードライバー１０５２のＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ２０８３に書き込む（Ｓ５０５）。これまでの一連の処理をＡｕｔｏＣｏｎｆｉｇという。
【００２７】
一方、インストーラー１０５２はＯＳ１０５４からインストール完了通知を受け取ると、該当するプリンタードライバー１０５３に対し、構成情報取得要求（または指示）を行う（Ｓ５０６）。本実施例では、プリンターエクステンション２１０が構成情報の取得機能を有するため、プリンターエクステンション２１０に対して、直接、構成情報の取得要求（または指示）を行うことも可能である。プリンタードライバー１０５３は、インストーラー１０５２から構成情報取得要求を受け取るとプリンター３０００に対し、プリンターエクステンション２１０と連携して、オプション構成情報の取得要求を行う（Ｓ５０７）。プリンター３０００は、プリンタードライバー１０５３からオプション構成情報の取得要求を受け取ると、現在のオプション構成情報を調べて、その結果を応答情報としてプリンタードライバー１０５３に送付する（Ｓ５０８）。プリンタードライバー１０５３は、オプション構成情報の取得処理が完了すると、その情報をＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ２０８３に登録する（Ｓ５０９）。インストーラー１０５２がプリンターエクステンション２１０に構成情報の取得要求を行った場合には、プリンターエクステンション２１０が、プリンターからの取得情報をＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ２０８３に登録する。
ステップＳ５０６からここまでの一連の処理を、ＯＳ１０５４がＳ５０３〜Ｓ５０４で行うＡｕｔｏＣｏｎｆｉｇ（オートコンフィグあるいは自動構成とも呼ぶ。）に対し、ＰｒｅＣｏｎｆｉｇ（プレコンフィグ）という。ＡｕｔｏＣｏｎｆｉｇは、ＯＳ１０５４に含まれるプリントマネージャ２１８が制御するオプション構成情報の取得処理なので、取得するオプション情報はベンダー側で定義しているが、取得方法についてはＯＳ１０５４に依存する。接続ポートがＷＳＤポートの場合、プリンターとの１回の通信で全てのオプション構成情報を取得できるのに対して、Ｓｔａｎｄａｒｄ ＴＣＰ／ＩＰポートだった場合、ＳＮＭＰで取得するので、オプションの数に応じて、数回から数十回の複数回の通信でプリンターからオプション構成情報を取得できる。その複数回の通信は、環境によっては、ＯＳ１０５４から０．１ミリ程度の間隔（これを第１の時間間隔と呼ぶ）で行われるので、プリンター３０００側で処理が追い付かず、応答が間に合わないことがある。しかもＳＮＭＰはＵＤＰベースであり応答確認が行われない。その結果オプション構成情報の取りこぼしが発生する。
【００２８】
一方、ＰｒｅＣｏｎｆｉｇは、プリントマネージャ２１８を介さず、プリンター３０００との通信を全てドライバー１０５３が制御するので、プリンター３０００との通信回数を少なくしたり、通信間隔をたとえば第１の時間間隔よりも長い時間間隔（第２の時間間隔）としたりすることが可能である。さらにアプリケーションのレベルでオプション構成毎に構成情報の取得に成功したかどうかを判定し、失敗している場合は再度同じオプション構成情報取得を試みることも可能である。その結果、ＡｕｔｏＣｏｎｆｉｇに比べてオプション構成情報の取りこぼしが少なくなる。あるいは、通信に物理的な障害等がない限りは取りこぼしをなくすこともできる。
【００２９】
このように図５の手順によって、たとえＯＳがＡｕｔｏＣｏｎｆｉｇによってオプション構成情報を取得し損ねることがあっても、ＰｒｅＣｏｎｆｉｇによってオプション構成情報を取得できる。なお図５のシーケンスでは、プレコンフィグをオートコンフィグの後で行うようにしている。このためには、たとえば、インストーラー１０５２がインストール完了通知を受信した後、オートコンフィグによる構成情報の書き込みの完了によるオートコンフィグ全体の取得処理の完了を、プリンタードライバー１０５３あるいはＯＳ１０５４に対するポーリングにより判定してもよい。あるいは、プリンタードライバー１０５３が、プレコンフィグ要求を受信した場合に、オートコンフィグによるオプション構成情報の書き込み（Ｓ５０５）の完了までその処理を遅延させ、Ｓ５０５が完了した後、プリンターに対して構成情報の取得要求（Ｓ５０７）を行ってもよい。あるいは、プリンタードライバー１０５３は、インストール完了通知に応じたプレコンフィグ要求の受信後に受けたオートコンフィグによるオプション構成情報の書き込みを無視するように構成してもよい。
【００３０】
＜ＰｒｅＣｏｎｆｉｇ処理＞
図６は本発明の実施形態に係る印刷処理システムのＰｒｅＣｏｎｆｉｇ処理を説明するフローチャートである。特に明記しない場合、フローチャートの各ステップの処理はプリンターエクステンション２１０が行う。プリンターエクステンション２１０は、補助記憶装置１０５に記録されており、ＲＡＭ１０２２にロードされ、ＣＰＵ１０１によって実行される。
【００３１】
本処理は、図５で説明した通り、インストール処理の完了通知（Ｓ５０２）をＯＳ１０５４から受け取ったインストーラー１０５２がプリンタードライバー１０５３に構成情報取得を要求した際に発生し、プリンタードライバー１０５３の関連モジュールの１つであるプリンターエクステンション２１０により実現される。すなわちステップＳ５０６による要求に応じて実行される。
【００３２】
まず、プリンター３０００と接続している接続ポートの種類を判別する（Ｓ６０１）。接続ポートを判別する理由は、接続ポート毎に、ＯＳ１０５４が行うＡｕｔｏＣｏｎｆｉｇ処理が異なるため、それぞれの処理で取得できる情報に差があるため、ＰｒｅＣｏｎｆｉｇの処理も切り替えが必要であるためである。接続ポートがＷＳＤポートの場合（Ｓ６０１でＷＳＤポートと判定した場合）、オプション構成情報を含むＷＳＤ Ｓｃｈｅｍａの一括取得を行う（Ｓ６０２）。取得したＷＳＤ Ｓｃｈｅｍａから、必要なオプション構成情報を抜き出し、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ２０８３に登録する（Ｓ６０３）。ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ２０８３への構成情報の登録による保存処理は、プリンターエクステンション２１０ではなくその取得結果を受けたプリンタードライバー１０５３が実行してもよい。
【００３３】
なお、ＷＳＤとはＷｅｂ Ｓｅｒｖｉｃｅｓ ｆｏｒ Ｄｅｖｉｃｅｓ（またはＷｅｂ Ｓｅｒｖｉｃｅｓ ｏｎ Ｄｅｖｉｃｅｓ）の略称である。接続ポートがＷＳＤポートの場合、ＷＳＤ Ｓｃｈｅｍａは利用可能であるので、プリンター側の設定が、ＷＳＤ Ｓｃｈｅｍａが利用できない設定であることを理由としてＷＳＤ Ｓｃｈｅｍａの取得に失敗することはない。しかしながら通信環境に起因して失敗することはあり得ることから、ＰｒｅＣｏｎｆｉｇにおいてオプション構成情報の再取得を試みている。したがって図６では省略しているが、ステップＳ６０２の直後に、ＷＳＤ Ｓｃｈｅｍａの一括取得に成功したか否かを判定し、成功でなければリトライするように構成してもよい。
【００３４】
ポート判別判定（Ｓ６０１）で、Ｓｔａｎｄａｒｄ ＴＣＰ／ＩＰポートだった場合（Ｓ６０１でＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポートと判定した場合）、まずはＷＳＤ Ｓｃｈｅｍａの一括取得を行う（Ｓ６０４）。この処理はＳ６０２と同じである。ＷＳＤポート接続時では、プリンター側の設定が、ＷＳＤ Ｓｃｈｅｍａが利用できない設定であることを理由としてＷＳＤ Ｓｃｈｅｍａの一括取得が失敗することはない。しかし、Ｓｔａｎｄａｒｄ ＴＣＰ／ＩＰポート接続時では、プリンター側の設定により、ＷＳＤ Ｓｃｈｅｍａの取得に失敗することがあるので、オプション構成情報取得が成功したかどうかを判定する（Ｓ６０５）。この判定は、たとえば応答の内容から行うことができる。ＷＳＤ Ｓｃｈｅｍａの取得に失敗した場合には、ポートモニター２１９を経由してプリンター３００と通信を行い、オプション構成情報を取得する。これはＯＳによるＡｕｔｏＣｏｎｆｉｇと同様である。しかし特にオプション構成が多い場合、ＯＳ１０５４からの多くの問い合わせが繰り返し行われて、それぞれの問い合わせに対して、プリンターが正しくの応答できず、そのためにＡｕｔｏＣｏｎｆｉｇは失敗している可能性がある。その場合に、オプション構成情報の取得に失敗したこととなる。一方、プリンターが、ＷＳＤ Ｓｃｈｅｍａが利用できるよう設定されていれば、ＷＳＤ Ｓｃｈｅｍａの一括取得は成功する。
【００３５】
そこでＷＳＤ Ｓｃｈｅｍａの一括取得が成功している場合（Ｓ６０５のＹｅｓ）は、ＷＳＤポート接続時同様、取得したＷＳＤ Ｓｃｈｅｍａから、必要なオプション構成情報を抜き出し、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ２０８３に登録する（Ｓ６０６）。
【００３６】
一方、プリンターの設定に起因してＷＳＤ Ｓｃｈｅｍａの一括取得が失敗した場合（Ｓ６０５のＮｏ）、ステップＳ６０７に分岐する。この場合には、上述したようにＡｕｔｏＣｏｎｆｉｇにおいてもオプション構成情報の取得に失敗している可能性がある。そこでその場合には、ポートモニター２１９を経由してプリンター３０００と通信を行い、一定の時間間隔をおいたのち（Ｓ６０７）、必要な情報すなわちオプション構成情報の問い合わせを行う（Ｓ６０８）。必要な情報については、予め用意されており、それに従って問い合わせを行う。この通信経路は、ＯＳ１０５４によるＡｕｔｏＣｏｎｆｉｇと同じだが取得する方法が異なる。ＯＳ１０５４によるＡｕｔｏＣｏｎｆｉｇでは、全てのオプション情報を一気に取得しようとするが、プリンターエクステンション２１０によるＰｒｅＣｏｎｆｉｇでの問い合わせは、一つ一つの項目についての情報を一定時間の間隔をあけてプリンターに問い合わせする。この一定間隔とは、プリンター３０００がオプション構成情報の要求に対して確実に応答できる間隔（たとえば１０ｍｓ〜１００ｍｓ程度）のことを指し、こうすることで情報の取りこぼしを軽減させることができる。また、プリンターエクステンション２１０は、１項目ずつでなくても、プリンター３０００が処理可能な項目数分を、１度の問い合わせで要求することも可能である。全ての情報を取得できたら（Ｓ６０９のＹｅｓ）、取得した構成情報をＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ２０８３に登録する（Ｓ６１０）。ステップＳ６０９において、リクエストしたオプション設定情報の項目が応答されなければ、そのリクエストを再送するようにしてもよい。また全項目についてリクエストした後、取得漏れがあれば、漏れた項目についてリクエストを再送しても良い。
【００３７】
なおポート判別判定（Ｓ６０１）で、ＵＳＢポートだった場合（Ｓ６０１でＵＳＢポートと判定した場合）、ＡｕｔｏＣｏｎｆｉｇによりオプション構成情報の取得に成功していると考えられるので、ＰｒｅＣｏｎｆｉｇにおいては特に何もしていない。
【００３８】
このように、リクエストの時間間隔を、応答が期待できる適切な値にすることで、１回のリクエストにより対応する構成情報の取得がしやすくなる。さらに、必要な構成情報がすべて取得できたか確認することで、構成情報を確実に取得できる。以上の手順を用いることにより、Ｓｔａｎｄａｒｄ ＴＣＰ／ＩＰポート接続時にＡｕｔｏＣｏｎｆｉｇでオプション構成情報の取りこぼしが発生しても、再度ＰｒｅＣｏｎｆｉｇを行うことにより、オプション構成情報の取りこぼしが発生しにくくなる。
【００３９】
［実施形態２］
実施形態１の方法では、ＡｕｔｏＣｏｎｆｉｇの後に、ＰｒｅＣｏｎｆｉｇを行うことによってオプション構成情報取得の取りこぼしを抑止していた。ただし、実施形態１では、全てのプリンターに対し、必ずＰｒｅＣｏｎｆｉｇを行うようになっているので、ＡｕｔｏＣｏｎｆｉｇで全てのオプション構成情報の取得が成功していてもＰｒｅＣｏｎｆｉｇを実施してしまう。これは単に同じことをしているだけなので、インストール時のパフォーマンスに影響する。インストール対象が複数であれば、その台数分パフォーマンスが劣化する。
【００４０】
上記問題を解決する方法として、本実施例では、ＡｕｔｏＣｏｎｆｉｇの後に、取得対象のオプション構成情報が全て取得できているかどうかを判断して、一つでも取得に失敗している場合のみ、ＰｒｅＣｏｎｆｉｇを実施する。実施形態１で説明した通りＡｕｔｏＣｏｎｆｉｇは、ＯＳ１０５４で制御されているので、取得処理時に取得に成功したかどうかを判断するのは難しい。そこで、ＡｕｔｏＣｏｎｆｉｇで取得するオプション構成情報の結果の値に「未取得」の値を追加する。通常、オプション構成情報は、「なし」か「あり」かの値を定義する。ＡｕｔｏＣｏｎｆｉｇでは、プリンター３０００から取得した情報を元に、上記「なし」か「あり」かの値を設定する。この際、ＡｕｔｏＣｏｎｆｉｇで取得できなかったオプション構成情報は、デフォルトの値に変換して設定する。つまり、大抵は「なし」の値に変換される。そこで、オプション構成情報の定義に「なし」、「あり」の他に「未取得」に相当する値を定義し、かつデフォルトの値をこの「未取得」にしておく。図７は、本実施形態に係る印刷処理システムのＡｕｔｏＣｏｎｆｉｇが取得するオプション構成情報の定義の一例である。本例では、カセット３の構成情報の定義に、「なし」を意味する「ＮｏｔＩｎｓｔａｌｌｅｄ」と「あり」を意味する「Ｉｎｓｔａｌｌｅｄ」の他に「未取得」を意味する「Ｕｎａｃｑｕｉｒｅｄ」を追加定義する（７１０）。かつ、デフォルト値（*ＤｅｆａｕｌｔＯｐｔｉｏｎに定義する値）をＵｎａｃｑｕｉｒｅｄに設定する。こうすることで、ＡｕｔｏＣｏｎｆｉｇがオプション構成情報時に取得できなかったオプション構成情報取得は「Ｕｎａｃｑｕｉｒｅｄ」が設定されることになる。
【００４１】
図８は本発明の実施形態に係る印刷処理システムにおけるインストール時のＰｒｅＣｏｎｆｉｇを行うかどうかの判定処理を説明するフローチャートである。特に明記しない場合、フローチャートの各ステップの処理はプリンタードライバー１０５３内に構成されているプリンターエクステンション２１０が行う。プリンターエクステンション２１０は、補助記憶装置１０５に記録されており、ＲＡＭ１０２２にロードされ、ＣＰＵ１０１によって実行される。
【００４２】
本処理は、図５で説明した通り、インストール処理の完了通知（Ｓ５０２）をＯＳ１０５４から受け取ったインストーラー１０５２がプリンターエクステンション２１０に構成情報取得を要求した際に発生する。まず、ＡｕｔｏＣｏｎｆｉｇの取得結果を調べる（Ｓ８０１）。オプション構成情報取得結果が「未取得」の場合（Ｓ８０２のＹｅｓ）、ＰｒｅＣｏｎｆｉｇを実施する（Ｓ８０４）。ＰｒｅＣｏｎｆｉｇに関しては実施例１の図６と同等の処理なので説明は省略する。オプション構成情報が取得済みであることを全てのオプション構成情報について調べて（Ｓ８０２、Ｓ８０３）、全てのオプション構成情報が取得済だった場合（Ｓ８０３のＹｅｓ）、ＰｒｅＣｏｎｆｉｇは行なわない。一方、ひとつでも未取得のオプション構成情報があればＰｒｅＣｏｎｆｉｇを実施する。
【００４３】
以上の手順を用いることにより、ＡｕｔｏＣｏｎｆｉｇのオプション構成情報取得状況により、ＰｒｅＣｏｎｆｉｇを行うかどうかを判断するので、ＡｕｔｏＣｏｎｆｉｇで全てのオプション構成情報が正しく取得できている場合は、パフォーマンスの向上につながる。
【００４４】
［実施形態３］
実施形態２では、インストーラー１０５２がプリンタードライバー１０５３のインストール時に、ＡｕｔｏＣｏｎｆｉｇの取得結果をもとにＰｒｅＣｏｎｆｉｇを行うかどうかを自動で判断していた。ただしオフィス環境によっては、クライアントコンピューター１００にプリンタードライバー１０５３を事前にインストールしておいて、設置後にプリンター３０００と繋げて運用することもある。その場合、インストーラー１０５２ではオプション構成情報は取得できないまま、インストールが完了してしまう。上記問題を解決する方法として、本実施形態では、印刷設定画面起動時に取得対象のオプション構成情報が全て取得できているかどうかを判断して、一つでも取得に失敗している場合のみ、ＰｒｅＣｏｎｆｉｇを実施する。
【００４５】
図９は本発明の実施形態に係る印刷処理システムにおける印刷設定画面起動時のＰｒｅＣｏｎｆｉｇを行うかどうかの判定処理を説明するフローチャートである。特に明記しない場合、フローチャートの各ステップの処理はプリンタードライバー１０５３内に構成されているプリンターエクステンション２１０が行う。プリンターエクステンション２１０は、補助記憶装置１０５に記録されており、ＲＡＭ１０２２にロードされ、ＣＰＵ１０１によって実行される。
【００４６】
本処理は、印刷アプリケーション１０５１から印刷を行う際に印刷設定画面を起動した際に発生する。ステップＳ９０１〜ステップＳ９０３は、実施例２で説明したステップＳ８０１〜Ｓ８０３と同等なので説明は省略する。オプション構成情報取得結果が「未取得」の場合（Ｓ９０２のＹｅｓ）、オプション構成情報取得結果に「未取得」があったことを示すメッセージを表示する（Ｓ９０４）。表示するメッセージの具体的な例を図１０に示す。ただし、これに限定されるものではない。ユーザーによって本メッセージ画面１０００の[はい]ボタンが押下された場合（Ｓ９０５のＹｅｓ）、ＰｒｅＣｏｎｆｉｇを実施する（Ｓ９０６）。ＰｒｅＣｏｎｆｉｇに関しては実施形態１の図６と同等の処理なので説明は省略する。本メッセージ画面１０００の[いいえ]ボタンが押下された場合（Ｓ９０５のＮｏ）、ＰｒｅＣｏｎｆｉｇは行なわない。
【００４７】
以上の手順を用いることにより、プリンタードライバーのインストール時にオプション構成情報取得が失敗した場合でも、印刷画面起動時に自動的に判断して、ユーザーの判断のもと、オプション構成情報取得ができるようになる。
【００４８】
［実施形態４］
実施形態３では、印刷設定画面起動時にＡｕｔｏＣｏｎｆｉｇの取得結果をもとにＰｒｅＣｏｎｆｉｇを行うかどうかを判断し、必要な場合、その旨をユーザーに通知し、ユーザーの判断のもとでオプション構成情報取得が行えるようにした。ただし、該当するオプション構成情報がプリンター３０００に定義されていない場合、プリンタードライバー１０５３で構成情報取得を行っても取得に失敗する。従来情報取得に失敗したオプション構成は、「なし」と判断して動作しているが、そうなった場合その機能がプリンターに設置されているにも関わらず使用できないという問題があった。
【００４９】
上記問題を解決する方法として、本実施例では、オプション構成情報が「未取得」に該当する結果であった場合、「あり」に相当する動作をする。
【００５０】
図１１は本発明の実施形態に係る印刷処理システムにおける印刷設定画面起動時の設定項目を有効化／無効化を判定する処理を説明するフローチャートである。特に明記しない場合、フローチャートの各ステップの処理はプリンタードライバー１０５３内に構成されているプリンターエクステンション２１０が行う。プリンターエクステンション２１０は、補助記憶装置１０５に記録されており、ＲＡＭ１０２２にロードされ、ＣＰＵ１０１によって実行される。
【００５１】
本処理は、印刷アプリケーション１０５１から印刷を行う際に印刷設定画面を起動した際に発生する。まず、該当する印刷設定項目に関連するオプション構成情報の結果を調べる（Ｓ１１０１）。オプション構成情報の結果が「なし」に相当する値だった場合（Ｓ１１０２のなし）、使用できる機能を無効化する（Ｓ１１０３）。オプション構成情報の結果が「あり」に相当する値だった場合（Ｓ１１０２のあり）、使用できる機能を有効化する（Ｓ１１０４）。オプション構成情報の結果が「未取得」に相当する値だった場合（Ｓ１１０２の未取得）、使用できる機能を有効化する（Ｓ１１０５）。
【００５２】
例えば、図１２のようにオプション構成情報取得をした結果、「排紙オプション」１２００１のオプション構成情報が失敗し「未取得」になった場合、図１３の印刷設定画面における「ステイプル」１３００１の選択項目は、従来であれば「しない」のみの選択肢になっている。しかし、本実施形態では、「排紙オプション」１２００１は、未取得の場合には「あり」に相当して動作するので、ステイプル１３００１は「しない」の他に「する」、「する（針なしとじ）」の選択肢もあり、それらも選択可能の状態にする。
【００５３】
以上の手順を用いることにより、オプション構成情報に失敗した場合でも、情報が取得できていない状態と判断した場合、該当するオプション構成を「あり」として動作することにより、従来その機能を使用できるようになる。
【００５４】
［その他の実施例］
以上、デバイスドライバーの一例であるプリンタードライバーのインストール時などにおけるプリンターからの構成情報の取得に関する例を説明した。しかし、プリンター以外の周辺装置であっても、オプション構成を有しているデバイス（スキャナーやカメラ、３Ｄプリンターなど）であれば、本発明は適用可能である。つまり、上記実施形態と同様にして、構成情報をデバイスから取得し、その構成情報に基づいて、デバイスドライバーを用いてオプション構成を利用し、また、ユーザーに設定を行わせることができる。
【００５５】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５６】
１００ クライアントコンピューター、３０００ プリンター、１０５１ アプリ、１０５２ インストーラー、１０５３ プリンタードライバー、１０５４ オペレーティングシステム、２１０ プリンターエクステンション、２１０１ 双方向通信モジュール、２１８ プリントマネージャ、２１９ ポートモニター
２０８３ ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ、１０５２４ ＰｒｅＣｏｎｆｉｇモジュール、４１０ ドライバー呼び出し部
【図１】
2018124770.tif 000003
【図２】
2018124770.tif 000004
【図３】
2018124770.tif 000005
【図４】
2018124770.tif 000006
【図５】
2018124770.tif 000007
【図６】
2018124770.tif 000008
【図７】
2018124770.tif 000009
【図８】
2018124770.tif 000010
【図９】
2018124770.tif 000011
【図１０】
2018124770.tif 000012
【図１１】
2018124770.tif 000013
【図１２】
2018124770.tif 000014
【図１３】
2018124770.tif 000015