(57)【要約】      （修正有）【課題】Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、ＵＳＢポートを複数のプリンタドライバで利用する際に、画像形成装置との双方向通信を正しく行えるようにする。【解決手段】１つ以上のプリンタドライバがインストールされた情報処理装置であって、前記プリンタドライバの各々に対応する記憶手段と、前記プリンタドライバからの要求に応じて、当該プリンタドライバに対応する前記記憶手段に設定された制御情報を用いて、画像形成装置と双方向通信を行う通信制御手段と、を有する。前記プリンタドライバは、当該プリンタドライバに対応する前記記憶手段に、前記画像形成装置との双方向通信に用いる前記制御情報を設定する設定手段と、前記通信制御手段に、前記画像形成装置との双方向通信の実行を要求する要求手段と、として前記情報処理装置を機能させる。【選択図】図７
2019159617.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のプリンタドライバがインストールされた情報処理装置であって、
前記プリンタドライバの各々に対応する記憶手段と、
前記プリンタドライバからの要求に応じて、当該プリンタドライバに対応する前記記憶手段に設定された制御情報を用いて、画像形成装置と双方向通信を行う通信制御手段と、
を有し、
前記プリンタドライバは、
当該プリンタドライバに対応する前記記憶手段に、前記画像形成装置との前記双方向通信に用いる前記制御情報を設定する設定手段と、
前記通信制御手段に、前記画像形成装置との前記双方向通信の実行を要求する要求手段と、
として前記情報処理装置を機能させる、情報処理装置。
【請求項２】
前記制御情報は、前記画像形成装置に情報の取得を要求するための１つ以上の要求情報を含む、請求項１に記載の情報処理装置。
【請求項３】
前記制御情報は、前記要求情報を前記画像形成装置に送信するための送信条件を含む請求項２に記載の情報処理装置。
【請求項４】
前記通信制御手段は、前記送信条件に従って、前記要求情報を前記画像形成装置に送信する、請求項３に記載の情報処理装置。
【請求項５】
前記制御情報は、前記画像形成装置に情報の取得を要求する要求情報の送信を制御するスクリプト言語を含む、請求項１に記載の情報処理装置。
【請求項６】
前記通信制御手段は、前記１つ以上のプリンタドライバに共通の処理を実行する、請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記記憶手段は、前記プリンタドライバの各々に対応するＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇを含む、請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記通信制御手段は、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒを含む、請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
１つ以上のプリンタドライバがインストールされた情報処理装置と、前記情報処理装置と接続される画像形成装置と、を含む情報処理システムであって、
前記情報処理装置は、
前記プリンタドライバの各々に対応する記憶手段と、
前記プリンタドライバからの要求に応じて、当該プリンタドライバに対応する前記記憶手段に設定された制御情報を用いて、画像形成装置と双方向通信を行う通信制御手段と、
を有し、
前記プリンタドライバは、
当該プリンタドライバに対応する前記記憶手段に、前記画像形成装置との前記双方向通信に用いる前記制御情報を設定する設定手段と、
前記通信制御手段に、前記画像形成装置との前記双方向通信の実行を要求する要求手段と、
として前記情報処理装置を機能させる、情報処理システム。
【請求項１０】
プリンタドライバを含むプログラムであって、
情報処理装置を、
前記プリンタドライバに対応する記憶手段と、
前記プリンタドライバに対応する前記記憶手段に、画像形成装置との双方向通信に用いる制御情報を設定する設定手段と、
前記プリンタドライバに対応する前記記憶手段に設定された前記制御情報を用いて、前記画像形成装置と前記双方向通信を行う通信制御手段と、
前記通信制御手段に、前記画像形成装置との前記双方向通信の実行を要求する要求手段と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、及びプログラムに関する。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ（登録商標）２０００からＷｉｎｄｏｗｓ７までのＷｉｎｄｏｗｓＯＳ（Operating System）では、Ｖｅｒｓｉｏｎ３（以降「Ｖ３」と称する）プリンタドライバと呼ばれるプリンタドライバのアーキテクチャが採用されている。また、Ｗｉｎｄｏｗｓ８以降のＷｉｎｄｏｗｓＯＳでは、Ｖ３プリンタドライバに加え、Ｖｅｒｓｉｏｎ４（以降「Ｖ４」と称する）プリンタドライバと呼ばれる新しいプリンタドライバのアーキテクチャが採用されている。
【０００３】
また、Ｖ４プリンタドライバにおいて、ＵＳＢ接続された画像形成装置との間で、印刷しながら機器情報を取得する等の複数の機能を実現する技術が知られている（例えば、特許文献１参照）。特許文献１には、ポートの情報やチャネルの情報を、印刷ジョブを送信するときと構成情報を取得するときとで重ならないように、プロパティバッグに別々の情報として保持しておくこと等が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示された技術により、Ｖ４プリンタドライバにおいて、例えば、ＵＳＢ（Universal Serial Bus）で接続された画像形成装置との間で印刷しながら構成情報を取得する等、複数の機能を同時に使用することができるようになる。
【０００５】
一方、Ｖ４プリンタドライバには、１つのＵＳＢポートを複数のプリンタドライバで利用するときに、画像形成装置との双方向通信が正しく行えない場合があるという別の問題がある。
【０００６】
これは、例えば、ドライバＡ、ドライバＢという２つのプリンタドライバがインストールされた情報処理装置において、画像形成装置との双方向通信に用いられるＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒが１つであり、個別に設定することができないためである。これにより、例えば、ドライバＡとドライバＢとが、それぞれ、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒを有していたとしても、ドライバＢが画像形成装置と双方向通信を行う際に、ドライバＡ用のＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒが用いられる場合がある。この場合、ドライバＢは、ドライバＢ用のＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒが有する双方向通信の要求情報を、画像形成装置に正しく送信することができない。
【０００７】
本発明の実施の形態は、上記の問題点に鑑みてなされたものであって、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、ＵＳＢポートを複数のプリンタドライバで利用する際に、画像形成装置との双方向通信を正しく行えるようにする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一実施形態に係る情報処理装置は、１つ以上のプリンタドライバがインストールされた情報処理装置であって、前記プリンタドライバの各々に対応する記憶手段と、前記プリンタドライバからの要求に応じて、当該プリンタドライバに対応する前記記憶手段に設定された制御情報を用いて、画像形成装置と双方向通信を行う通信制御手段と、を有し、前記プリンタドライバは、当該プリンタドライバに対応する前記記憶手段に、前記画像形成装置との前記双方向通信に用いる前記制御情報を設定する設定手段と、前記通信制御手段に、前記画像形成装置との前記双方向通信の実行を要求する要求手段と、として前記情報処理装置を機能させる。
【発明の効果】
【０００９】
本発明の一実施形態によれば、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、ＵＳＢポートを複数のプリンタドライバで利用する際に、画像形成装置との双方向通信を正しく行えるようになる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る情報処理システムのシステム構成の例を示す図である。
【図２】一実施形態に係る課題について説明するための図である。
【図３】一実施形態に係る情報処理装置のハードウェア構成の例を示す図である。
【図４】一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。
【図５】一実施形態に係る情報処理装置のソフトウェア構成の例を示す図である。
【図６】Ｖ４プリンタドライバ及びストアデバイスアプリがアクセス可能な記憶領域について説明するための図である。
【図７】第１の実施形態に係る情報処理装置の機能構成の例を示す図である。
【図８】第１の実施形態に係る情報処理装置が管理する情報の例を示す図である。
【図９】第１の実施形態に係る情報処理システムの処理の一例を示すシーケンス図である。
【図１０】第１の実施形態に係る表示画面の例を示す図（１）である。
【図１１】第１の実施形態に係る表示画面の例を示す図（２）である。
【図１２】第１の実施形態に係る表示画面の例を示す図（３）である。
【図１３】第１の実施形態に係る情報処理システムの処理の別の一例を示すシーケンス図である。
【図１４】第２の実施形態に係る情報処理装置の機能構成の例を示す図である。
【図１５】第２の実施形態に係る情報処理装置が管理する情報の例を示す図である。
【図１６】第２の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。
【図１７】第２の実施形態に係る機器情報の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１２】
＜システム構成＞
図１は、一実施形態に係る情報処理システム１００のシステム構成の例を示す図である。図１に示すように、情報処理システム１００は、情報処理装置１０１と、画像形成装置１０２とを含み、情報処理装置１０１と画像形成装置１０２とは、ＵＳＢ（Universal Serial Bus）ケーブル１０３を介して通信可能に接続されている。
【００１３】
情報処理装置１０１は、例えば、ＰＣ（Personal Computer）、タブレット端末、スマートフォン等の情報端末である。情報処理装置１０１は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データから印刷データを作成した上で、印刷データの印刷を要求する印刷要求を画像形成装置１０２に送信する。また、情報処理装置１０１は、ＵＳＢケーブル１０３を介して、画像形成装置１０２から、画像形成装置１０２の機器の構成や、オプション等の情報を含む機器情報を取得し、機器情報を反映した印刷設定画面等を、情報処理装置１０１の表示部に表示させることができる。
【００１４】
なお、印刷対象データとは、例えば、画像データや文書データ等の印刷可能な電子データである。また、印刷データとは、印刷対象データを、画像形成装置１０２が印刷可能な、例えば、ＰＤＬ（Page Description Language）等の形式に変換した電子データである。
【００１５】
画像形成装置１０２は、例えば、スキャン機能、コピー機能、印刷機能、ファクシミリ機能等を一つの筐体に搭載したＭＦＰ(Multifunction Peripheral/Printer/Product)や、プリンタ等の印刷機能を有する電子機器である。画像形成装置１０２は、情報処理装置１０１から受信した印刷要求に応じて、印刷データを印刷する。
【００１６】
図２は、一実施形態に係る課題について説明するための図である。
【００１７】
Ｗｉｎｄｏｗｓ（登録商標）２０００からＷｉｎｄｏｗｓ７までのＷｉｎｄｏｗｓＯＳ（Operating System）では、Ｖｅｒｓｉｏｎ３（以降「Ｖ３」と称する）プリンタドライバと呼ばれるプリンタドライバのアーキテクチャが採用されている。また、Ｗｉｎｄｏｗｓ８以降のＷｉｎｄｏｗｓＯＳでは、Ｖ３プリンタドライバに加え、Ｖｅｒｓｉｏｎ４（以降「Ｖ４」と称する）プリンタドライバと呼ばれる新しいプリンタドライバのアーキテクチャが採用されている。
【００１８】
Ｖ３プリンタドライバでは、ＵＳＢインタフェースで双方向通信を行うモジュールとして、ランゲージモニタ（Language Monitor）が用いられ、ランゲージモニタが画像形成装置１０２と双方向通信を行い、画像形成装置１０２の機器情報を取得していた。また、このランゲージモニタは、ベンダが独自の機能を実装することができた。
【００１９】
これに対して、Ｖ４プリンタドライバでは、ランゲージモニタが廃止され、代わりにＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒという仕組みが導入された。ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒでは、ベンダがカスタマイズできるのはＢｉｄｉ Ｅｘｔｅｎｄｅｒ Ｊａｖａｓｃｒｉｐｔ（登録商標）と、Ｂｉｄｅ Ｅｘｔｅｎｓｉｏｎ ＸＭＬ（Extensible Markup Language）だけである。Ｖ４プリンタドライバでは、情報処理装置１０１は、このＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒを用いて、画像形成装置１０２と双方向通信を行う。
【００２０】
例えば、情報処理装置１０１と画像形成装置１０２とをＵＳＢケーブル１０３で接続すると、情報処理装置１０１には、ＯＳにより、画像形成装置１０２用のＵＳＢポートが作成される。
【００２１】
また、作成されたＵＳＢポートに対して、複数のプリンタドライバを用いる場合がある。例えば、異なる形式の印刷データを印刷したいとき等に、印刷データ毎のプリンタドライバを情報処理装置１０１にインストールして、同じＵＳＢポートを指定して利用する場合等である。
【００２２】
このように、１つのＵＳＢポートを複数のプリンタドライバが利用している情報処理装置１０１では、プリンタドライバに同梱されたＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒが動作せず、別のプリンタドライバのＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒが使われる場合がある。
【００２３】
例えば、図２（ａ）に示すように、情報処理装置１０１には、プリンタドライバＡ２０１ａと、プリンタドライバＡ２０１ａに対応するＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ Ａ２０２ａがインストールされているものとする。また、情報処理装置１０１には、プリンタドライバＢ２０１ｂと、プリンタドライバＢ２０１ｂに対応するＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ Ｂ２０２ｂがインストールされているものとする。さらに、プリンタドライバＡ２０１ａ、及びプリンタドライバＢ２０１ｂは、いずれもＵＳＢポート２０３が指定されているものとする。
【００２４】
この状態で、例えば、プリンタドライバＡ２０１ａが、画像形成装置１０２と双方向通信を行う場合、プリンタドライバＡ２０１ａは、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ Ａ２０２ａを介して、画像形成装置１０２と双方向通信を行うことが望ましい。同様に、プリンタドライバＢ２０１ｂが、画像形成装置１０２と双方向通信を行う場合、プリンタドライバＢ２０１ｂは、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ Ｂ２０２ｂを介して、画像形成装置１０２と双方向通信を行うことが望ましい。
【００２５】
しかし、実際には、ＯＳの制約等により、例えば、図２（ｂ）に示すように、１つのＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒのみが使用され、ユーザは、使用するＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒを指定することはできない。したがって、図２（ｂ）の例では、プリンタドライバＢ２０１ｂは、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ Ｂ２０２ｂを利用することができないので、画像形成装置１０２と正しく双方向通信を行えない場合がある。
【００２６】
そこで、本実施形態に係る情報処理装置１０１は、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒに、各プリンタドライバに共通の処理のみを定義する。例えば、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒには、プリンタドライバに対応する記憶領域（例えば、プロパティバッグ）から、制御情報（例えば、機種情報の取得要求）を取得して、画像形成装置１０２に送信する処理のみを定義する。
【００２７】
また、プリンタドライバは、プリンタドライバに対応する記憶領域に、制御情報を記憶する。これにより、例えば、図２（ｂ）に示すプリンタドライバＢ２０１ｂは、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ Ａ２０２ａを用いた場合であっても、正しく双方向通信を行うことができるようになる。
【００２８】
＜ハードウェア構成＞
次に、本実施形態に係る情報処理システム１００に含まれる情報処理装置１０１、及び画像形成装置１０２のハードウェア構成の例について説明する。
【００２９】
（情報処理装置のハードウェア構成）
図３は、一実施形態に係る情報処理装置のハードウェア構成の例を示す図である。図３に示すように、本実施形態に係る情報処理装置１０１は、入力装置３０１と、表示装置３０２と、外部Ｉ／Ｆ３０３と、ＲＡＭ（Random Access Memory）３０４とを有する。また、情報処理装置１０１は、ＲＯＭ（Read Only Memory）３０５と、ＣＰＵ（Central Processing Unit）３０６と、通信Ｉ／Ｆ３０７と、ＨＤＤ（Hard Disk Drive）３０８とを有する。これらのハードウェアは、バスＢで互いに接続されている。
【００３０】
入力装置３０１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置３０２は、ディスプレイ等を含み、情報処理装置１０１による処理結果を表示する。なお、入力装置３０１及び表示装置３０２の少なくとも一方は、必要なときに情報処理装置１０１に接続して利用する形態であっても良い。
【００３１】
通信Ｉ／Ｆ３０７は、情報処理装置１０１をネットワークに接続するインタフェースである。
【００３２】
ＨＤＤ３０８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ３０８に格納されるプログラムやデータには、情報処理装置１０１全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションプログラム等がある。
【００３３】
なお、情報処理装置１０１は、ＨＤＤ３０８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を有して良い。また、ＨＤＤ３０８は、格納しているプログラムやデータを所定のファイルシステムやＤＢにより管理している。
【００３４】
外部Ｉ／Ｆ３０３は、情報処理装置１０１に外部装置を接続するための、例えば、ＵＳＢ等のインタフェースである。例えば、情報処理装置１０１は、外部Ｉ／Ｆ３０３に接続したＵＳＢケーブル１０３を用いて、画像形成装置１０２を情報処理装置１０１に接続することができる。
【００３５】
ＲＯＭ３０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ３０５には、ＯＳ設定、ネットワーク設定等のプログラムやデータ、及び情報処理装置１０１の起動時に実行されるＢＩＯＳ（Basic Input/Output System）が格納されている。ＲＡＭ３０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００３６】
ＣＰＵ３０６は、ＲＯＭ３０５やＨＤＤ３０８等の記憶装置からプログラムやデータをＲＡＭ３０４上に読み出し、当該プログラムやデータに基づく処理を実行することで、情報処理装置１０１全体の制御やその他の機能を実現する演算装置である。
【００３７】
本実施形態に係る情報処理装置１０１は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３８】
（画像形成装置のハードウェア構成）
図４は、一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。
【００３９】
図４に示すように、本実施形態に係る画像形成装置１０２は、コントローラ４０１と、操作パネル４０２と、外部Ｉ／Ｆ４０３と、通信Ｉ／Ｆ４０４と、プロッタ４０５を有する。また、コントローラ４０１は、ＣＰＵ４１１と、ＲＡＭ４２１と、ＲＯＭ４３１と、ＮＶＲＡＭ４４１と、ＨＤＤ４５１とを有する。
【００４０】
ＲＯＭ４３１は、各種プログラムやデータを格納している不揮発性のメモリである。ＲＡＭ４２１は、プログラムやデータを一時保持する揮発性のメモリである。ＮＶＲＡＭ４４１は、例えば設定情報等を格納している。また、ＨＤＤ４５１は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００４１】
ＣＰＵ４１１は、ＲＯＭ４３１やＮＶＲＡＭ４４１、ＨＤＤ４５１等からプログラムやデータ、設定情報等をＲＡＭ４２１上に読み出し、処理を実行することで、画像形成装置１０２全体の制御やその他の機能を実現する演算装置である。
【００４２】
操作パネル４０２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを有する。
【００４３】
外部Ｉ／Ｆ４０３は、画像形成装置１０２に外部装置を接続するための、例えば、ＵＳＢ等のインタフェースである。例えば、画像形成装置１０２は、外部Ｉ／Ｆに４０３に接続したＵＳＢケーブル１０３を用いて、情報処理装置１０１に画像形成装置１０２を接続することができる。
【００４４】
通信Ｉ／Ｆ４０４は、画像形成装置１０２をネットワークに接続するインタフェースである。
【００４５】
本実施形態に係る画像形成装置１０２は、図４に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００４６】
＜情報処理装置のソフトウェア構成＞
次に、本実施形態に係る情報処理装置１０１のソフトウェア構成について、図５を用いて説明する。図５は、情報処理装置のソフトウェア構成の例を示す図である。
【００４７】
図５に示すように、本実施形態に係る情報処理装置１０１は、アプリケーション５１０と、ＯＳ５２０と、プリンタドライバ５３０と、ストアデバイスアプリ５４０とを有する。
【００４８】
アプリケーション５１０は、例えば文書作成ソフト、画像閲覧・編集ソフト、ブラウザ等、ユーザの印刷指示に応じて、ＯＳ５２０に印刷の指示（要求）を行うことができるアプリケーションプログラムである。アプリケーション５１０には、ストアアプリ５１１と、デスクトップアプリ５１２とが含まれる。
【００４９】
ストアアプリ５１１は、例えば、Ｗｉｎｄｏｗｓ（登録商標）８／ＷｉｎｄｏｗｓＲＴ及びそれ以降のバージョンのＷｉｎｄｏｗｓＯＳにアプリケーションを提供する「Ｗｉｎｄｏｗｓストア」から、入手可能なアプリケーションである。ストアアプリ５１１では、「ストアアプリ  ＵＩ」が用いられる。なお、Ｗｉｎｄｏｗｓ８及びＷｉｎｄｏｗｓ８．１では、ＯＳ５２０によって提供される「Ｍｏｄｅｒｎ  ＵＩ」又は「Ｍｅｔｒｏ  ＵＩ」とも称されるＵＩからストアアプリ５１１が呼び出される。
【００５０】
一方、デスクトップアプリ５１２は、例えば、Ｗｉｎｄｏｗｓ７以前のバージョンのＷｉｎｄｏｗｓＯＳにおいても使用可能なアプリケーションである。
【００５１】
ＯＳ５２０は、Ｗｉｎｄｏｗｓ８／ＷｉｎｄｏｗｓＲＴ及びそれ以降のバージョンのＷｉｎｄｏｗｓＯＳである。
【００５２】
プリンタドライバ５３０は、印刷を制御するプログラムであり、本実施形態では、前述したＶ４プリンタドライバである。プリンタドライバ５３０は、拡張設定部５３１と、設定制御部５３２と、描画部５３３とを含む。
【００５３】
拡張設定部５３１は、プリンタ拡張とも称され、デスクトップアプリ５１２から印刷を行う場合に、ベンダ独自の印刷設定画面等を表示する。
【００５４】
設定制御部５３２は、禁則スクリプトとも称され、例えば、印刷設定の組み合わせが正当であるか否かを検証する。拡張設定部５３１は、例えば、設定制御部５３２により正当でないと検証された印刷設定の組み合わせを非表示にする、或いはデフォルトに戻すこと等ができる。
【００５５】
また、設定制御部５３２は、アプリケーション５１０やＯＳ５２０等からの要求に応じて、プリンタドライバ５３０が設定可能な機能の情報を示す設定能力情報であるＰｒｉｎｔＣａｐａｂｉｌｉｔｙを返信する。さらに、設定制御部５３２は、アプリケーション５１０やＯＳ５２０等からの要求に応じて、プリンタドライバ５３０に設定されている各種機能の設定値をＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇから取得し、取得した設定値を示すＰｒｉｎｔＴｉｃｋｅｔを返信する。また、設定制御部５３２は、ＰｒｉｎｔＴｉｃｋｅｔで示された設定値をＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇに保存する。
【００５６】
なお、ＯＳ５２０に返信されたＰｒｉｎｔＣａｐａｂｉｌｉｔｙやＰｒｉｎｔＴｉｃｋｅｔは、例えば、拡張設定部５３１が表示する印刷設定画面における各機能の現在値の表示、選択肢の表示等に利用される。
【００５７】
描画部５３３は、アプリケーション５１０において印刷指示が行われた印刷対象データから印刷データを作成する。
【００５８】
ストアデバイスアプリ５４０は、ストアアプリ５１１から印刷を行う場合に、ベンダ独自の印刷設定画面等を表示する。なお、ストアデバイスアプリ５４０は、ストアアプリ５１１と同様に、「Ｗｉｎｄｏｗｓストア」から入手可能なアプリケーションである。
【００５９】
デスクトップアプリ５１２から印刷を行う場合、プリンタドライバ５３０は、拡張設定部５３１により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。一方で、ストアアプリ５１１から印刷を行う場合、プリンタドライバ５３０は、ストアデバイスアプリ５４０により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。
【００６０】
拡張設定部５３１及びストアデバイスアプリ５４０は、ベンダ独自の印刷設定画面を表示するＵＩ部５５０を構成する。
【００６１】
スプーラ５６０は、ＯＳ５２０等によって提供されるモジュールであり、プリンタドライバ５３０で生成された印刷データを一時的に記憶して、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０を用いて、順次に画像形成装置１０２に送信する。
【００６２】
ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、スプーラ５６０によって呼び出されるＪａｖａＳｃｒｉｐｔ（USB Bidi Javascript）を含み、画像形成装置１０２と双方向通信を行う通信制御手段として機能する。
【００６３】
＜Ｖ４プリンタドライバ５３０及びストアデバイスアプリ５４０がアクセス可能な記憶領域＞
次に、Ｖ４プリンタドライバ５３０及びストアデバイスアプリ５４０がアクセス可能な記憶領域について、図６を用いて説明する。図６は、Ｖ４プリンタドライバ５３０及びストアデバイスアプリ５４０がアクセス可能な記憶領域について説明するための図である。
【００６４】
図６に示すように、拡張設定部５３１、設定制御部５３２、描画部５３３、及びストアデバイスアプリ５４０は、ＰｒｏｐｅｒｔｙＢａｇ６１０と呼ばれる記憶領域にアクセスすることができる。なお、このような記憶領域へのアクセスは、ＯＳ５２０によって提供されるＡＰＩ（Application Programming Interface）を用いて行うことができる。
【００６５】
図６に示すように、ＰｒｏｐｅｒｔｙＢａｇ６１０には、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ６１１と、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２と、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ６１３とが含まれる。
【００６６】
ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ６１１は、Ｖ４プリンタドライバ５３０を作成するときに決定された構成情報等を記憶する記憶領域である。拡張設定部５３１、設定制御部５３２、描画部５３３、及びストアデバイスアプリ５４０は、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ６１１から各種情報の読み出しが可能である。一方で、拡張設定部５３１、設定制御部５３２、描画部５３３、及びストアデバイスアプリ５４０は、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ６１１に対して、情報の書き込みを行うことはできない。
【００６７】
ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２は、論理プリンタ（プリンタアイコン）毎の設定情報等を記憶する記憶領域である。拡張設定部５３１及びストアデバイスアプリ５４０は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に対して、各種情報の読み出し及び書き込みが可能である。また、設定制御部５３２及び描画部５３３は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に対して、各種情報の読み出しが可能である。さらに、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に記憶された情報は、前述したＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒからも読出しが可能である。
【００６８】
なお、論理プリンタとは、例えば、ＯＳ５２０のプリンタフォルダ等にプリンタアイコンとして表示される仮想的なプリンタである。例えば、情報処理装置１０１の利用者は、１つの画像形成装置１０２に対して、設定情報（例えば、用紙サイズや向き、印刷品質等）が異なる複数の論理プリンタを作成することができる。
【００６９】
ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ６１３は、論理プリンタ毎に、ユーザ毎の設定情報等を記憶する記憶領域である。拡張設定部５３１、設定制御部５３２、及びストアデバイスアプリ５４０は、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ６１３に対して、各種情報の読み出し及び書き込みが可能である。
【００７０】
また、拡張設定部５３１及び描画部５３３は、さらに、独自記憶領域６２０に対して、各種情報の読み出し及び書き込みが可能である。
【００７１】
独自記憶領域６２０は、例えばレジストリやファイル等を用いて実現され、ＰｒｏｐｅｒｔｙＢａｇ６１０とは異なる記憶領域である。独自記憶領域６２０は、例えば、Ｖ４プリンタドライバ５３０を提供するベンダ等によって定義される。
【００７２】
ストアデバイスアプリ５４０は、ＯＳ５２０の課す制約により、ＰｒｏｐｅｒｔｙＢａｇ６１０以外の記憶領域に対してアクセスすることはできない。また、設定制御部５３２は、上述したＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇ及びＰｒｏｐｅｒｔｙＢａｇ６１０以外の記憶領域に対してアクセスすることはできない。すなわち、ストアデバイスアプリ５４０及び設定制御部５３２は、独自記憶領域６２０に対して、各種情報の読み出しや書き込み等を行うことができない。
【００７３】
このことは、ストアアプリ５１１に課されている制約と同様であり、例えば、ストアデバイスアプリ５４０及び設定制御部５３２が、ＯＳ５２０が使用するレジストリ等を変更し、ＯＳ５２０の動作に悪影響を与えることを防ぐためである。このような技術は、「サンドボックス」等と称されている。
【００７４】
［第１の実施形態］
続いて、第１の実施形態に係る情報処理装置の機能構成について説明する。
【００７５】
＜機能構成＞
図７は、一実施形態に係る情報処理装置１０１の機能構成の例を示す図である。
【００７６】
情報処理装置１０１には、例えば、アプリケーション５１０、１つ以上のプリンタドライバ５３０ａ、５３０ｂ、ストアデバイスアプリ５４０等のプログラムがインストールされている。
【００７７】
また、情報処理装置１０１は、ＣＰＵ３０６でＯＳ５２０を実行することにより、１つ以上のプリンタドライバ５３０ａ、５３０ｂの各々に対応する記憶領域であるＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２ａ、６１２ｂ、及びスプーラ５６０等を実現している。
【００７８】
なお、図７において、プリンタドライバ５３０ｂは、プリンタドライバ５３０ａと同様の機能構成を有しているものとする。また、以下の説明の中で、１つ以上のプリンタドライバ５３０ａ、５３０ｂのうち、任意のプリンタドライバを示す場合、「プリンタドライバ５３０」を用いる。同様に、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２ａ、６１２ｂのうち、任意のＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇを示す場合、「ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２」を用いる。
【００７９】
情報処理装置１０１は、ＣＰＵ３０６でプリンタドライバ５３０を実行することによって、図５で説明した拡張設定部５３１、設定制御部５３２、及び描画部５３３を実現している。
【００８０】
また、本実施形態に係る拡張設定部５３１は、設定画面表示部７１０、及び双方向通信部７２０を含む。
【００８１】
設定画面表示部７１０は、双方向通信部７２０が取得する画像形成装置１０２の機器情報を用いて、印刷設定画面を表示装置３０３等の表示部に表示させる。
【００８２】
双方向通信部７２０は、設定部７２１、要求部７２２、取得部７２３等を含み、スプーラ５６０、及びＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０を介して、画像形成装置１０２から、画像形成装置１０２の機器情報を取得する。
【００８３】
設定部（設定手段）７２１は、プリンタドライバ５３０に対応するＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２等の記憶手段に、画像形成装置１０２と双方向通信を行うための制御情報を設定する（記憶させる）。双方向通信部７２０は、例えば、画像形成装置１０２に機種情報の取得を要求する機種情報の取得要求等の要求コマンド７２４を予め記憶している。また、設定部７２１は、この要求コマンド７２４を、プリンタドライバ５３０に対応するＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に設定する。
【００８４】
例えば、プリンタドライバ５３０ａの設定部７２１は、プリンタドライバ５３０ａに対応するＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２ａに、プリンタドライバ５３０ａに対応する要求コマンド７２４を設定する。同様に、プリンタドライバ５３０ｂの設定部７２１は、プリンタドライバ５３０ｂに対応するＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２ｂに、プリンタドライバ５３０ｂに対応する要求コマンド７２４を設定する。
【００８５】
図８（ａ）に、要求コマンド７２４の一例のイメージを示す。要求コマンド７２４には、例えば、図８（ａ）に示すように、画像形成装置１０２に送信する１つ以上の要求コマンドが記憶されている。なお、図８（ａ）は、要求コマンドが文字列の場合の例が示されているが、要求コマンドは、文字列に限られず、例えば、バイナリデータ等であっても良い。
【００８６】
図８（ｂ）に、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に記憶させる要求コマンドの一例のイメージを示す。設定部７２１が、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に要求コマンドを設定する際には、例えば、図８（ｂ）に示すように、要求コマンドキーと、要求コマンドに対応する値とを、ペアで設定する。
【００８７】
また、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０が、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２から、要求コマンドを読み出す際には、要求コマンドキーを指定することによって、要求コマンドキーに対応する値を読み出すことができる。
【００８８】
なお、本実施形態では、プリンタドライバ毎に、要求コマンドの形式、又は内容等が異なるものとする。
【００８９】
要求部（要求手段）７２２は、スプーラ５６０を介して、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０に、画像形成装置１０２との双方向通信の実行を要求する実行要求を送信する。なお、この実行要求には、例えば、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に記憶した要求コマンド７２４の取得に必要な情報、例えば、要求コマンドキー等の情報が含まれている。
【００９０】
本実施形態に係るＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、例えば、プリンタドライバ５３０ａの要求部７２２からの実行要求に応じて、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２ａに記憶された要求コマンドを取得して、画像形成装置１０２に送信する。同様に、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、例えば、プリンタドライバ５３０ｂの要求部７２２からの要求に応じて、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２ｂに記憶された要求コマンドを取得して、画像形成装置１０２に送信する。
【００９１】
取得部７２３は、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０が取得した画像形成装置１０２の機器情報を、スプーラ５６０を介して取得する。
【００９２】
図８（ｃ）に、取得部７２３が、画像形成装置１０２から取得する機器情報８０１の一例のイメージを示す。例えば、図８（ａ）の要求コマンド「＠ＰＪＬ ＩＮＦＯ ＯＰＴＩＯＮ」に応じて、機器情報８０１の「Ｏｐｔｉｏｎ」の情報が取得され、要求コマンド「＠ＰＪＬ ＩＮＦＯ ＴＲＡＹ」に応じて、機器情報８０１の「ＩｎｐｕｔＴｒａｙ」の情報が取得される。
【００９３】
図８（ｃ）の例では、画像形成装置１０２のオプションの情報として、画像形成装置１０２に、両面ユニットと、ハードディスクと、２５６ＭＢのメモリが搭載されていることが示されている。また、トレイの情報として、画像形成装置１０２が、トレイ１と、手差しトレイを備えており、トレイ１の用紙サイズがＡ４、手差しトレイの用紙サイズがＡ５であることが示されている。
【００９４】
このように、本実施形態に係るＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２から要求コマンドを取得して、画像形成装置１０２に送信し、機器情報を取得するという、各プリンタドライバ５３０に共通の処理を実行する。
【００９５】
したがって、例えば、図２で説明したように、プリンタドライバ５３０ｂが、プリンタドライバ５３０ａ用のＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０を使用した場合でも、問題なく画像形成装置１０２と双方向通信を行うことができる。
【００９６】
＜処理の流れ＞
続いて、本実施形態に係る情報処理方法の処理の流れについて説明する。
【００９７】
（情報処理システムの処理１）
図９は、第１の実施形態に係る情報処理システムの処理の一例を示すシーケンス図である。この処理は、プリンタドライバ５３０の設定画面表示部７１０が、画像形成装置１０２の機器情報を反映させた印刷設定画面を表示する際の処理の一例を示している。
【００９８】
ステップＳ９０１において、プリンタドライバ５３０の設定画面表示部７１０は、双方向通信部７２０に、情報処理装置１０１に接続されている画像形成装置１０２の機器情報の取得を要求する。
【００９９】
ステップＳ９０２、Ｓ９０３において、双方向通信部７２０の設定部７２１は、プリンタドライバ５３０に対応するＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に、プリンタドライバ５３０に対応する要求コマンド７２４を記憶させる。ここでは、一例として、図８（ｂ）に示すように、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に要求コマンド７２４が記憶されるものとする。
【０１００】
ステップＳ９０４、Ｓ９０５において、双方向通信部７２０の要求部７２２は、スプーラ５６０を介して、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０に双方向通信を要求する。なお、この双方向通信の要求には、例えば、図８（ｂ）に示されるような要求コマンドキー「ＢｉｄｉＲｅｑｕｅｓｔＣｏｍｍａｎｄ」が含まれている。
【０１０１】
ステップＳ９０６において、双方向通信部７２０は、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０の処理が終わるまで、所定の時間待機する。
【０１０２】
ステップＳ９０７において、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、双方向通信の要求に含まれる要求コマンドキーを用いて、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２から要求コマンドを読み出す。
【０１０３】
ステップＳ９０８において、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、取得した、画像形成装置１０２に機器情報の取得を要求する要求コマンドを、画像形成装置１０２に送信する。
【０１０４】
ステップＳ９０９において、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、要求コマンドに応じて、画像形成装置１０２から送信される機器情報を取得する。ここでは、例えば、図８（ｃ）に示すような機器情報８０１が取得されるものとする。
【０１０５】
ステップＳ９１０において、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、取得した機器情報８０１をスプーラ５６０に送信し、ステップＳ９１１において、スプーラ５６０は、通知された機器情報Ｓ９１１を、スプーラ５６０内のキャッシュに記憶する。
【０１０６】
ステップＳ９１２、Ｓ９１３において、双方向通信部７２０の取得部７２３は、所定時間の待機を終えると、スプーラ５６０に双方向通信で取得した機器情報８０１の取得を要求し、スプーラ５６０から送信される機器情報８０１を取得する。
【０１０７】
ステップＳ９１４において、双方向通信部７２０は、取得した機器情報８０１を、設定画面表示部７１０に通知する。
【０１０８】
ステップＳ９１５において、設定画面表示部７１０は、取得した機器情報８０１を反映させた印刷設定画面を、表示装置３０２等の表示部に表示させる。
【０１０９】
（表示画面の例）
図１０〜１２は、第１の実施形態に係る表示画面の例を示す図である。
【０１１０】
図１０は、プリンタドライバ５３０の設定画面表示部７１０が表示させる印刷設定画面１０００の一例を示している。例えば、ユーザが、印刷設定画面１０００において、デバイスのプロパティを開くボタン１００１（「Ｐｒｉｎｔｅｒ Ｐｒｏｐｅｒｔｉｅｓ」ボタン）を選択することにより、図９に示す処理が開始される。
【０１１１】
なお、図１０に示す印刷設定画面１０００は、例えば、ユーザが印刷を実行する際に、印刷設定を変えるためにプリンタドライバ５３０の印刷設定画面を開いたとき等に表示される。また、図１０に示す印刷設定画面１０００は、例えば、ユーザが標準の印刷設定を変えるために、プリンタアイコンのメニューから印刷設定画面を開いたときに表示される。
【０１１２】
図１１は、ＯＳによるプリンタアイコン（論理プリンタ）の一覧を表示する表示画面１１００の一例を示している。例えば、ユーザが、プリンタアイコンの一覧から、プリンタアイコン１１０１を右クリックして表示されるメニュー１１０２から、プリンタドライバのプロパティ１１０３を選択することにより、図９に示す処理が開始される。
【０１１３】
図１２は、図９のステップＳ９１５で表示される印刷設定画面の一例を示している。図１２に示す印刷設定画面１２００では、例えば、図８（ｃ）に示すような機器情報８０１が反映され、両面ユニットを備えることを示すチェックボックス１２０１、ハードディスクを備えることを示すチェックボックス１２０２がチェックされている。さらに、トレイの情報１２０３として、画像形成装置１０２が、トレイ１と、手差しトレイを備えており、トレイ１の用紙サイズがＡ４、手差しトレイの用紙サイズがＡ５であること等が表示されている。
【０１１４】
（情報処理システムの処理２）
図１３は、第１の実施形態に係る情報処理システムの処理の別の一例を示している。図９に示す処理では、プリンタドライバ５３０の設定部７２１は、設定画面表示部７１０から機器情報の取得を要求するたびに、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に要求コマンド７２４を設定していた。
【０１１５】
しかし、設定部７２１は、図１３に示す処理のように、設定画面表示部７１０から機器情報の取得を要求される前に、要求コマンド７２４をＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に予め設定しておくものであっても良い。
【０１１６】
なお、図１３に示す処理のうち、ステップＳ９０４〜Ｓ９１５に示す処理は、図９に示す処理と同様なので、ここでは、図９に示す処理との相違点を中心に説明する。
【０１１７】
ステップＳ１３０１、Ｓ１３０２において、双方向通信部７２０の設定部７２１は、ステップＳ１３０３で設定画面表示部７１０から機器情報の取得要求を受け付ける前に、要求コマンド７２４をＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に予め設定しておく。これにより、以後の処理において、図９のステップＳ９０２、Ｓ９０３の処理を省略することができるようになる。
【０１１８】
これにより、例えば、設定部７２１が、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に設定する要求コマンド７２４が、毎回同じ内容である場合、図１３に示す処理により、より効率的に処理を実行することができるようになる。
【０１１９】
なお、上記の説明では、プリンタドライバ５３０の設定部７２１は、プリンタドライバ５３０に対応するＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に、要求コマンド７２４を記憶しておくものとして説明を行った。ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２は、前述したように論理プリンタ毎の記憶領域なので、複数のプリンタドライバ５３０の要求コマンド７２４が重複して記憶されることはない。
【０１２０】
ただし、プリンタドライバ５３０の設定部７２１が要求コマンド７２４を記憶する記憶領域は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２以外の記憶領域、例えば、図６の独自記憶領域６２０等であっても良い。
【０１２１】
この場合、各プリンタドライバ５３０の設定部７２１は、例えば、図８（ｄ）に示すように、プリンタドライバ５３０毎に異なる要求コマンドキーを用いて、要求コマンド７２４を独自記憶領域６２０等に記憶する。
【０１２２】
例えば、プリンタドライバ５３０ａの設定部７２１は、要求コマンドキー「ＢｉｄｉＲｅｑｕｅｓｔＣｏｍｍａｎｄ １」に対応付けて、要求コマンド７２４を独自記憶領域６２０等に記憶する。また、プリンタドライバ５３０ａの要求部７２２は、要求コマンドキー「ＢｉｄｉＲｅｑｕｅｓｔＣｏｍｍａｎｄ １」を含む双方向通信の要求を、スプーラ５６０を介して、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０に送信する。
【０１２３】
同様に、プリンタドライバ５３０ｂの設定部７２１は、要求コマンドキー「ＢｉｄｉＲｅｑｕｅｓｔＣｏｍｍａｎｄ ２」に対応付けて、要求コマンド７２４を独自記憶領域６２０等に記憶する。また、プリンタドライバ５３０ｂの要求部７２２は、要求コマンドキー「ＢｉｄｉＲｅｑｕｅｓｔＣｏｍｍａｎｄ ２」を含む双方向通信の要求を、スプーラ５６０を介して、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０に送信する。
【０１２４】
これにより、独自記憶領域６２０は、プリンタドライバ５３０の各々に対応する記憶手段として機能する。
【０１２５】
［第２の実施形態］
第１の実施形態では、プリンタドライバ５３０の設定部７２１は、例えば、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２等の記憶領域に、要求コマンド７２４を設定するものとして説明を行った。ただし、プリンタドライバ５３０の設定部７２１は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２等の記憶領域に、要求コマンド７２４に加えて、例えば、送信条件１４０１等の情報をさらに設定するものであっても良い。
【０１２６】
第２の実施形態では、プリンタドライバ５３０の設定部７２１が、要求コマンド及び送信条件を設定する場合の処理の例について説明する。
【０１２７】
＜機能構成＞
図１４は、第２の実施形態に係る情報処理装置の機能構成の例を示す図である。図１４において、プリンタドライバ５３０の双方向通信部７２０は、図７に示す第１の実施形態に係る要求コマンド７２４に代えて、例えば、図１５（ａ）に示すような要求コマンド及び送信条件１４０１を予め記憶している。
【０１２８】
図１５（ａ）は、要求コマンド及び送信条件１４０１の一例のイメージを示している。１５（ａ）において、送信条件「Ｔｒｕｅ」は、対応する要求コマンドを常に送信することを示している。また、送信条件「Ｉｆ（ＯｐｒｉｏｎＴｒａｙＯＮ）」は、オプショントレイの情報がオンである場合に、対応する要求コマンドを送信することを示している。このように、要求コマンド及び送信条件１４０１の送信条件には、対応する要求コマンドを送信するための条件が定義されている。
【０１２９】
図１５（ｂ）は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に記憶させる要求コマンド及び送信条件の一例のイメージを示している。設定部７２１が、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に要求コマンド及び送信条件１４０１を設定する際には、例えば、図１５（ｂ）に示すように、要求コマンドキーと、要求コマンドキーに対応する値とを、ペアで設定する。また、設定部７２１は、例えば、図１５（ｂ）に示すように、要求コマンドキーに対応する値に、要求コマンドとその送信条件とを設定する。
【０１３０】
また、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０が、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２から、要求コマンド及び送信条件を読み出す際には、要求コマンドキーを指定することによって、要求コマンドキーに対応する値を読み出すことができる。
【０１３１】
また、本実施形態に係るＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、ＪａｖａＳｃｒｉｐｔ（USB Bidi Javascript）によって実現される送信判定部１４０２を有する。送信判定部１４０２は、例えば、図１５（ｂ）に示すような、要求コマンドキーに対応する値を取得し、各要求コマンドを画像形成装置１０２に送信するか否かを判定する。
【０１３２】
なお、上記以外の情報処理装置１０１の機能構成は、図７に示す第１の実施形態に係る情報処理装置１０１の機能構成と同様である。
【０１３３】
＜処理の流れ＞
続いて、第２の実施形態に係る情報処理方法の処理の流れについて説明する。
【０１３４】
図１６は、第２の実施形態に係る情報処理装置の処理の例を示すフローチャートである。この処理は、プリンタドライバ５３０の設定画面表示部７１０が、画像形成装置１０２の機器情報を反映させた印刷設定画面を表示する際の処理の一例を示している。なお、図１６に示す処理のうち、ステップＳ９１０〜Ｓ９１５に係る処理は、図９に示す第１の実施形態に係る処理と同様なので、ここでは、第１の実施形態との相違点を中心に説明を行う。
【０１３５】
ステップＳ１６０１において、プリンタドライバ５３０の設定画面表示部７１０は、双方向通信部７２０に、情報処理装置１０１に接続されている画像形成装置１０２の機器情報の取得を要求する。
【０１３６】
ステップＳ１６０２、Ｓ１６０３において、双方向通信部７２０の設定部７２１は、プリンタドライバ５３０に対応するＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に、プリンタドライバ５３０に対応する要求コマンド及び送信条件１４０１を記憶させる。ここでは、一例として、図１４（ｂ）に示すような要求コマンドキーと値（要求コマンド及び送信条件）とが、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に記憶されるものとする。
【０１３７】
ステップＳ１６０４、Ｓ１６０５において、双方向通信部７２０の要求部７２２は、スプーラ５６０を介して、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０に双方向通信を要求する。なお、この双方向通信の要求には、例えば、図１４（ｂ）に示されるような要求コマンドキー「ＢｉｄｉＲｅｑｕｅｓｔＣｏｍｍａｎｄ」が含まれているものとする。
【０１３８】
ステップＳ１６０６において、双方向通信部７２０は、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０の処理が終わるまで、所定の時間待機する。
【０１３９】
ステップＳ１６０７において、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、双方向通信の要求に含まれる要求コマンドキーを用いて、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２から要求コマンド及び送信条件を読み出す。
【０１４０】
ステップＳ１６０８、Ｓ１６０９において、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、取得した要求コマンド及び送信条件において、送信条件「Ｔｒｕｅ」の要求情報を画像形成装置１０２に送信し、画像形成装置１０２から送信される機種情報を取得する。
【０１４１】
ステップＳ１６１０において、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０の送信判定部１４０２は、送信条件が「Ｔｒｕｅ」以外の要求コマンドについて、送信要否を判定し、送信要と判断された場合、ステップＳ１６１１、Ｓ１６１２の処理を実行させる。
【０１４２】
ステップＳ１６１１、Ｓ１６１２において、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、送信要と判断された要求コマンドを画像形成装置１０２に送信し、画像形成装置１０２から送信される機種情報を取得する。
【０１４３】
図１７は、第２の実施形態に係る機器情報の例を示す図である。この図は、図１６のステップＳ１６０８〜Ｓ１６１２において、画像形成装置１０２から取得する機器情報の一例を示している。例えば、図１６のステップＳ１６０８、Ｓ１６０９の処理で、図１７（ａ）に示すようなオプション情報（Ｏｐｔｉｏｎ）と、トレイ情報（ＩｎｐｕｔＴｒａｙ）とが取得される。また、図１６のステップＳ１６１０〜１６１２の処理で、図１７（ｂ）に示すようなオプショントレイ情報（ＯｐｔｉｏｎＴｒａｙ）情報が取得される。
【０１４４】
図１７（ａ）に示すオプション情報（Ｏｐｔｉｏｎ）に含まれる「ＯｐｔｉｏｎＴｒｅｙ＝ＯＮ」は、画像形成装置１０２ｎオプショントレイが搭載されていることが示されている。
【０１４５】
また、図１７（ｂ）のオプショントレイ情報では、オプショントレイとして、トレイ２とトレイ３とがあり、トレイ２の用紙サイズはＢ５、トレイ３の用紙サイズはＡ３であることが示されている。
【０１４６】
なお、上記の例では、プリンタドライバ５３０の設定部７２１が、図１５（ｂ）に示すようなテーブル情報を、プリンタドライバ５３０に対応するＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に記憶するものとして説明を行った。
【０１４７】
別の一例として、プリンタドライバ５３０の設定部７２１は、要求コマンド及び送信条件１４０１として、図１５（ｃ）に示すようなＪａｖａＳｃｒｉｐｔのソースコード１５０１を、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に記憶するものであっても良い。なお、ＪａｖａＳｃｒｉｐｔのソースコード１５０１は、スクリプト言語の一例である。
【０１４８】
この場合、ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ５７０は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２から取得した、図１５（ｃ）に示すようなＪａｖａＳｃｒｉｐｔを実行することにより、画像形成装置１０２から機種情報を取得する。
【０１４９】
また、第２の実施形態においても、図１３に示す処理のように、設定画面表示部７１０から機器情報の取得を要求される前に、要求コマンド及び送信条件１４０１をＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ６１２に予め設定しておくものであっても良い。
【０１５０】
なお、ここでは、プリンタドライバ５３０がＶ４プリンタドライバであるものとして説明を行ったが、本発明は、Ｖ４プリンタドライバと同様の制限を有する他のプリンタドライバにも適用可能である。
【０１５１】
以上、上記の各実施形態によれば、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、ＵＳＢポートを複数のプリンタドライバで利用する際に、画像形成装置との双方向通信を正しく行えるようになる。
【符号の説明】
【０１５２】
１００      情報処理システム
１０１      情報処理装置
１０２      画像形成装置
５３０      プリンタドライバ
５７０      ＵＳＢ Ｂｉｄｉ Ｅｘｔｅｎｄｅｒ（通信制御手段）
６１２      ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ（記憶手段）
６２０      独自記憶領域（記憶手段の別の一例）
７２１      設定部（設定手段）
７２２      要求部（要求手段）
７２４      要求コマンド
１４０１    要求コマンド及び送信条件
１５０１    ＪａｖａＳｃｒｉｐｔのソースコード（スクリプト言語）
【先行技術文献】
【特許文献】
【０１５３】
【特許文献１】特開２０１６−２１１５７号公報
【図１】
2019159617.tif 000003
【図２】
2019159617.tif 000004
【図３】
2019159617.tif 000005
【図４】
2019159617.tif 000006
【図５】
2019159617.tif 000007
【図６】
2019159617.tif 000008
【図７】
2019159617.tif 000009
【図８】
2019159617.tif 000010
【図９】
2019159617.tif 000011
【図１０】
2019159617.tif 000012
【図１１】
2019159617.tif 000013
【図１２】
2019159617.tif 000014
【図１３】
2019159617.tif 000015
【図１４】
2019159617.tif 000016
【図１５】
2019159617.tif 000017
【図１６】
2019159617.tif 000018
【図１７】
2019159617.tif 000019