(57)【特許請求の範囲】
【請求項１】
画像形成装置からのステータス情報の取得を求めるステータス情報要求を発行する要求手段と、
前記発行されたステータス情報要求にしたがって、前記画像形成装置からのステータス情報の取得処理を実行する取得手段と、
前記ステータス情報が取得される毎に、該取得されたステータス情報を結合して結合情報とする結合手段と、
前記結合情報に所定の識別情報が含まれるか否かを判断する第１判断手段と、
前記第１判断手段により、前記結合情報に所定の識別情報が含まれないと判断された場合に、前記ステータス情報の取得処理の実行回数と予め定められた閾値とを比較して、前記ステータス情報の取得処理の実行回数が前記閾値以内であるかを判断する第２判断手段と、
前記ステータス情報の取得処理の実行回数が前記閾値を超えていると判断された場合に、前記結合情報から前記ステータス情報要求で指定されたステータスに対応する情報を取得し、取得された情報を含む返却情報を前記要求手段に応答する応答手段とを備える
ことを特徴とする情報処理装置。
【請求項２】
前記要求手段は、
前記応答手段から応答された返却情報が、前記ステータス情報要求で指定されたステータスに対応する情報を含むかを判断し、
前記返却情報が、前記ステータス情報要求で指定されたステータスに対応する情報を含まない場合に、前記応答手段から応答される返却情報に設定されているエラー情報の種別に応じて予め決められた時間待機後、前記ステータス情報要求を再度発行し、
前記応答手段は、
前記第２判断手段によって前記ステータス情報の取得処理の実行回数が予め定められた閾値を超えていると判断されたことを契機として、前記結合情報が前記ステータス情報要求で指定されたステータスに対応する情報の一部を含むかを判断し、
前記結合情報が前記ステータス情報要求で指定されたステータスに対応する一部の情報を含むと判断した場合に、第１のエラー情報が設定された返却情報を前記要求手段に応答する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記応答手段は、前記結合情報が前記ステータス情報要求で指定されたステータスに対応する情報を含まないと判断した場合に、第２のエラー情報が設定された返却情報を前記要求手段に応答する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得手段は、前記第２判断手段によって前記ステータス情報の取得処理の実行回数が前記閾値以内であると判断された場合に、前記ステータス情報の取得処理を再度実行し、
前記第２判断手段によって前記ステータス情報の取得処理の実行回数と比較される前記閾値の初期値として第１の閾値を設定し、前記取得手段によって前記ステータス情報が取得されたことを契機として、前記ステータス情報の取得処理の実行回数と比較される前記閾値を前記第１の閾値から該第１の閾値より大きい第２の閾値に設定する設定手段を備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記取得手段による前記ステータス情報の取得処理が最後に成功した時の前記ステータス情報の取得処理の実行回数を成功時実行回数としてカウントするカウント手段を備え、
前記第２判断手段は、前記ステータス情報の取得処理の実行回数が第１の閾値を超えていると判断した場合に、前記ステータス情報の取得処理の実行回数と前記成功時実行回数との差が第２の閾値以内であるかを判断し、
前記取得手段は、前記第２判断手段によって前記ステータス情報の取得処理の実行回数と前記成功時実行回数との差が前記第２の閾値以内であると判断された場合に、前記画像形成装置からのステータス情報の取得処理を再度実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記要求手段に応答された返却情報に基づいて、前記画像形成装置のステータスを表示する表示手段を備える
ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第１判断手段は、前記結合情報が予め決められた終端符号を含むかを判断し、前記結合情報が前記終端符号を含まない場合に、前記画像形成装置から取得できなかったステータス情報があると判断する
ことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
ネットワークを介して接続された情報処理装置と画像形成装置とを備える情報処理システムであって、
前記情報処理装置は、
画像形成装置からのステータス情報の取得を求めるステータス情報要求を発行する要求手段と、
前記発行されたステータス情報要求にしたがって、前記画像形成装置からのステータス情報の取得処理を実行する取得手段と、
前記ステータス情報が取得される毎に、該取得されたステータス情報を結合して結合情報とする結合手段と、
前記結合情報に所定の識別情報が含まれるか否かを判断する第１判断手段と、
前記第１判断手段により、前記結合情報に所定の識別情報が含まれないと判断された場合に、前記ステータス情報の取得処理の実行回数と予め定められた閾値とを比較して、前記ステータス情報の取得処理の実行回数が前記閾値以内であるかを判断する第２判断手段と、
前記ステータス情報の取得処理の実行回数が前記閾値を超えていると判断されたことを契機として、前記結合情報から前記ステータス情報要求で指定されたステータスに対応する情報を取得し、取得された情報を含む返却情報を前記要求手段に応答する応答手段とを備える
ことを特徴とする情報処理システム。
【請求項９】
情報処理装置において実行される制御方法であって、
画像形成装置からのステータス情報の取得を求めるステータス情報要求を発行する要求工程と、
前記発行されたステータス情報要求にしたがって、前記画像形成装置からのステータス情報の取得処理を実行する取得工程と、
前記ステータス情報が取得される毎に、該取得されたステータス情報を結合して結合情報とする結合工程と、
前記結合情報に所定の識別情報が含まれるか否かを判断する第１判断工程と、
前記第１判断工程により、前記結合情報に所定の識別情報が含まれないと判断された場合に、前記ステータス情報の取得処理の実行回数と予め定められた閾値とを比較して、前記ステータス情報の取得処理の実行回数が前記閾値以内であるかを判断する第２判断工程と、
前記ステータス情報の取得処理の実行回数が前記閾値を超えていると判断されたことを契機として、前記結合情報から前記ステータス情報要求で指定されたステータスに対応する情報を取得し、取得された情報を含む返却情報を前記要求工程に応答する応答工程とを有する
ことを特徴とする情報処理装置の制御方法。
【請求項１０】
請求項９に記載の情報処理装置の制御方法をコンピュータに実行させる
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像形成装置、情報処理システム、制御方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
プリンタ（画像形成装置）に対してプリンタのステータス情報の送信を求めるステータス情報要求を行う情報処理装置が提案されている。具体的には、情報処理装置が備える、レガシーアーキテクチャーによるプリンタドライバ（以後、レガシードライバ）が、プリンタのステータス情報を取得する。
【０００３】
レガシードライバは、プリンタに対するステータス情報要求の間隔をランゲージモニタを用いて制御する。具体的には、ランゲージモニタが、ＯＳの提供する時間計測のためのＡＰＩを用いて、プリンタおよびＰＣ（情報処理装置）が処理し得る適切な時間間隔を保って、プリンタに対するステータス要求処理を繰り返し行う。特許文献１は、プリンタから所定の周期でステータス情報を取得する情報処理装置を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−５９１１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、デスクトップＰＣのみならずモバイルＰＣにも対応する新たなオペレーティングシステム（以後、ＯＳ）が提案されている。アプリケーションやプリンタドライバなどは、新たなＯＳに搭載される次世代アーキテクチャーへの対応が要求される。
【０００６】
しかし、新たなＯＳにおいては、幾つかの制約事項が想定され、ＯＳ上で動作するアプリケーションやプリンタドライバでは、ステータス情報の取得を適切に実行できない場合がある。例えば、新たなＯＳに対応するドライバには、時間計測機能を持つオブジェクトを使用できないという制限がある場合がある。したがって、このドライバを持つ情報処理装置では、ステータス情報要求が短時間に際限なく繰り返されるという課題がある。
【０００７】
本発明は、画像形成装置のステータス情報を取得する装置であって、画像形成装置に対するステータス情報要求が短時間に際限なく繰り返されることを防止する情報処理装置の提供を目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施形態の情報処理装置は、画像形成装置からのステータス情報の取得を求めるステータス情報要求を発行する要求手段と、前記発行されたステータス情報要求にしたがって、前記画像形成装置からのステータス情報の取得処理を実行する取得手段と、前記ステータス情報が取得される毎に、該取得されたステータス情報を結合して結合情報とする結合手段と、前記結合情報に所定の識別情報が含まれるか否かを判断する第１判断手段と、前記第１判断手段により、前記結合情報に所定の識別情報が含まれないと判断された場合に、前記ステータス情報の取得処理の実行回数と予め定められた閾値とを比較して、前記ステータス情報の取得処理の実行回数が前記閾値以内であるかを判断する第２判断手段と、前記ステータス情報の取得処理の実行回数が前記閾値を超えていると判断された場合に、前記結合情報から前記ステータス情報要求で指定されたステータスに対応する情報を取得し、取得された情報を含む返却情報を前記要求手段に応答する応答手段とを備える。
【発明の効果】
【０００９】
本発明の情報処理装置によれば、画像形成装置に対するステータス情報要求が短時間に際限なく繰り返されることを防止することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の情報処理システムの構成例を示す図である。
【図２】本実施形態の情報処理装置の構成例を示す図である。
【図３】本実施形態の情報処理装置の動作処理例を説明するフローチャートである。
【図４】ステータス情報とステータス情報要求による問い合わせと応答情報の例を示す図である。
【図５】実施例１の情報処理装置によるステータスの表示処理例を説明するフローチャートである。
【図６】ポートモニタ用拡張ファイルによるステータス情報の取得処理の例を説明するフローチャートである。
【図７】ステータス情報の取得処理の詳細を説明するフローチャートである。
【図８】ステータス情報の解析処理の詳細を説明するフローチャートである。
【図９】応答情報の生成処理の詳細を説明するフローチャートである。
【図１０】ステータス情報の取得処理を説明するフローチャートである。
【図１１】ステータス情報の取得処理を説明するフローチャートである。
【図１２】ステータス情報要求による問い合わせと問い合わせに対する応答情報の例を示す図である。
【図１３】ステータスの表示処理例を説明するフローチャートである。
【図１４】ポートモニタ用拡張ファイルによるステータス情報の取得処理の例を説明するフローチャートである。
【図１５】ステータス情報の取得処理の詳細を説明するフローチャートである。
【図１６】ステータスの表示処理例を説明するフローチャートである。
【図１７】次世代アプリによるステータスの表示画面の例を示す図である。
【図１８】レガシードライバの機能ブロック図の例である。
【図１９】レガシードライバの動作処理例を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
図１８は、従来の情報処理装置が備えるレガシードライバの機能ブロック図の例である。この情報処理装置は、アプリケーション２０１乃至ＵＳＢポートモニタ２０６を備える。また、この情報処理装置は、レガシードライバ２１０を備える。レガシードライバ２１０は、ＵＩモジュール２１１、グラフィックスドライバ２１３、ランゲージモニタ２１４を備える。
【００１２】
アプリケーション２０１が印刷データを作成し、ＯＳの印刷サポート機能２０２が、ＵＩモジュール２１１から返却される印刷設定情報を印刷データに付加し、スプーラ２０３のプリントキュー２０４に一時的に保存する。この一時的に保存されたデータがスプールデータ２０５である。スプールデータ２０５は、レガシードライバ２１０によって印刷装置２０７が解釈可能な印刷コマンドへ変換された後、ＵＳＢポートモニタ２０６へ出力される。
【００１３】
ＵＳＢポートモニタ２０６は、入力された印刷コマンドを画像形成装置（印刷装置）２０７へ送信する。ＵＩモジュール２１１は、印刷装置２０７の状態を表示するステータス表示部２１２を有することができる。ユーザは、ＵＩモジュール２１１が提供するＵＩ画面からステータス表示部２１２を起動することで印刷装置２０７の状態情報を確認することができる。
【００１４】
図１９は、図１８に示すレガシードライバ２１０の動作処理例を説明するフローチャートである。まず、ステータス表示部２１２が、スプーラ２０３に対して、印刷装置２０７のステータス情報を要求する（ステップＳ３０１）。スプーラ２０３は、ランゲージモニタ２１４に対して、印刷装置２０７のステータス情報を取得するよう要求する（ステップＳ３０２）。ランゲージモニタ２１４は、ＵＳＢポートモニタ２０６を呼び出す（ステップＳ３０３）。
【００１５】
ＵＳＢポートモニタ２０６は、印刷装置２０７との通信処理を行い、ステータス情報を取得する（ステップＳ３０４）。ＵＳＢポートモニタ２０６が取得したステータス情報は、ランゲージモニタ２１４、スプーラ２０３を経て、ステータス表示部２１２に通知される。ステータス表示部２１２は、取得したステータス情報に基づいて、印刷装置２０７の状態表示を行う（ステップＳ３０５）。
【００１６】
図１８および図１９を参照して説明した従来の情報処理装置では、レガシードライバが備えるランゲージモニタ２１４が、所定の時間間隔を保って、印刷装置２０７に対するステータス情報の要求処理を繰り返し行う。しかし、前述したように、新たなＯＳに対応するドライバは、例えば、時間計測機能を持つオブジェクトを使用できないので、このドライバを持つ情報処理装置では、ステータス情報要求が短時間に際限なく繰り返されるという課題がある。以下に説明する本実施形態の情報処理装置は、この課題を解決することができる。
【００１７】
図１は、本実施形態の情報処理システムの構成例を示す図である。この情報処理システムは、情報処理装置１１０と、印刷装置１２０とを備える。情報処理装置１１０は、本実施形態の情報処理装置である。印刷装置１２０は、プリンタ、ＭＦＰなどの画像形成装置である。情報処理装置１１０と印刷装置１２０とは、ネットワーク１３０を介して接続されている。ネットワーク１３０は、有線でも無線でもよい。この例では、ネットワーク１３０は、ＵＳＢ（登録商標）ケーブルである。
【００１８】
情報処理装置１１０は、入力Ｉ／Ｆ１１１、ＣＰＵ１１２、ＲＯＭ１１３、出力Ｉ／Ｆ１１４、外部記憶装置１１５、ＲＡＭ１１６、入力装置１１７、出力装置１１８、入出力Ｉ／Ｆ１１９を備える。ＲＯＭ１１３は、初期化プログラムを保存する。外部記憶装置１１５には、ＯＳ、プリンタドライバやその他各種のデータが保存されている。外部記憶装置１１５が記憶するＯＳは、新たなＯＳ（例えばＷｉｎｄｏｗｓ（登録商標）８）である。
【００１９】
外部記憶装置１１５が記憶するプリンタドライバは、次世代ドライバである。したがって、このプリンタドライバは、時間計測機能を持つオブジェクトを使用できない。ＣＰＵ１１２は、情報処理装置全体を制御する。入力Ｉ／Ｆ１１１は、入力装置１１７から情報を入力する。出力Ｉ／Ｆ１１４は、出力装置１１８に対して情報を出力する。ＲＡＭ１１６は、ＣＰＵ１１２のワークメモリとして使用される記憶手段である。入出力Ｉ／Ｆ１１９は、印刷装置１２０との間で情報の送受信を行なう。
【００２０】
ＲＡＭ１１６は、外部記憶装置１１５に保存される各種プログラムがワークメモリとして使用する記憶手段である。入力装置１１７は、データ入力や動作指示に使用される。入力装置１１７は、入力Ｉ／Ｆ１１１に接続されている。出力装置１１８は、データ表示や状態の通知に使用される。出力装置１１８は、出力Ｉ／Ｆ１１４に接続されている。
【００２１】
印刷装置１２０は、ＲＡＭ１２１、ＲＯＭ１２２、プリントエンジン１２３、ＣＰＵ１２４、入出力Ｉ／Ｆ１２５を備える。ＲＡＭ１２１は、ＣＰＵ１２４のワークメモリとして使用される記憶手段である。ＲＡＭ１２１は、受信したデータの一時保存用バッファとしても利用される。ＲＯＭ１２２は、制御命令を保存している。プリントエンジン１２３は、ＲＡＭ１２１に保存されたデータに基づき印刷を行う。ＣＰＵ１２４は、ＲＯＭ１２２に保存されている制御命令に従い、印刷装置１２０を制御する。入出力Ｉ／Ｆ１２５は、情報処理装置１１０との間で情報の送受信を行なう。本実施形態では、印刷装置を用いて説明したが、スキャナ装置、ファックス装置、コピー装置、それらを組み合わせたマルチファンクションプリンタ等の周辺装置にも適用できる。
【００２２】
図２は、本実施形態の情報処理装置の構成例を示す図である。図２に示す情報処理装置は、アプリケーション４０１、ＯＳの印刷サポート機能４０２、スプーラ４０３、次世代ドライバ４１０、ＵＳＢポートモニタ４０６を備える。本実施形態の情報処理装置の制御方法は、図２に示す各処理部によって実現される。また、本実施形態のコンピュータプログラムは、この制御方法をコンピュータに実行させる。具体的には、ＣＰＵ１１２が、このコンピュータプログラムを実行する。
【００２３】
アプリケーション４０１は、印刷データを生成する。また、アプリケーション４０１は、印刷装置１２０からのステータス情報の取得を求めるステータス情報要求を発行する要求手段として機能する。また、アプリケーション４０１は、印刷装置１２０のステータスを画面表示する。
【００２４】
ＯＳの印刷サポート機能４０２は、アプリケーション４０１が作成した印刷データをスプールデータ４０５としてスプーラ４０３のプリントキュー４０４に一時的に保存する。次世代ドライバ４１０は、グラフィックスドライバ４１１、データベース４１２、ポートモニタ用拡張ファイル４１３を備える。グラフィックスドライバ４１１は、スプールデータ４０５を印刷装置１２０が解釈可能な印刷コマンドに変換する。ＵＳＢポートモニタ４０６が、印刷コマンドを印刷装置１２０に対して送信する。ポートモニタ用拡張ファイル４１３はＵＳＢポートモニタ４０６を介して印刷装置１２０と通信してステータス情報を取得する。
【００２５】
次世代ドライバ４１０で利用されるデータベース４１２は，グラフィックスドライバ４１１やポートモニタ用拡張ファイル４１３が参照可能なデータベースである。データベース４１２には、例えば、機種依存情報やメンテナンスコマンドが格納される。グラフィックスドライバ４１１は印刷コマンドを生成する際に必要となる機種依存情報をデータベース４１２から取得する。
【００２６】
次世代ドライバ４１０は、図１８に示すレガシードライバ２１０が有するＵＩモジュール２１１を備えていない。したがって、次世代ドライバ４１０は、印刷装置１２０のステータス情報を表示するＧＵＩを持つことができない。したがって、次世代ドライバ４１０と当該次世代ドライバ４１０を識別する情報により紐づけられた外部アプリケーションであるアプリケーション（以下、次世代アプリ）４０１が、印刷装置１２０のステータス情報表示を行うＧＵＩを提供する。
【００２７】
図３は、本実施形態の情報処理装置の動作処理例を説明するフローチャートである。次世代アプリ４０１が、ステータス情報要求をスプーラ４０３に発行する（ステップＳ５０１）。続いて、スプーラ４０３が、ＵＳＢポートモニタ４０６に、ステータス情報要求を発行する（ステップＳ５０２）。
【００２８】
次に、ステータス情報要求を受け取ったＵＳＢポートモニタ４０６が、ポートモニタ用拡張ファイル４１３を呼び出す（ステップＳ５０３）。ポートモニタ用拡張ファイル４１３は、ＪａｖａＳｃｒｉｐｔ（登録商標）により記述される、ＯＳ機能を拡張するスクリプトファイルである。ポートモニタ用拡張ファイル４１３の処理では、時間計測機能を持つオブジェクトを使用できないという制限がある。一方、次世代アプリ４０１は、処理間の時間間隔を制御する機能を有する。
【００２９】
ポートモニタ用拡張ファイル４１３は、ＵＳＢポートモニタ４０６を介して印刷装置１２０と通信してステータス情報を取得する（ステップＳ５０４）。すなわち、ポートモニタ用拡張ファイル４１３およびＵＳＢポートモニタ４０６は、発行されたスタータス情報要求にしたがって、印刷装置１２０からのステータス情報の取得処理を実行する取得手段として機能する。ポートモニタ用拡張ファイル４１３は、取得したステータス情報を解析し、解析した結果に基づいて応答情報を生成してＵＳＢポートモニタ４０６へ転送するとともに、処理をＵＳＢポートモニタ４０６へ戻す。
【００３０】
ＵＳＢポートモニタ４０６は、ポートモニタ用拡張ファイル４１３から受信した応答情報をスプーラ４０３へ転送するとともに、処理をスプーラ４０３へ戻す。スプーラ４０３は、ＵＳＢポートモニタ４０６から受信した応答情報を次世代アプリ４０１へ転送するとともに、処理を次世代アプリ４０１へ戻す。次世代アプリ４０１は、受信した応答情報に基づいて、印刷装置１２０のステータスを表示する（ステップＳ５０５）。
【００３１】
図４は、ステータス情報とステータス情報要求による問い合わせと問い合わせに対する応答情報の例を示す図である。図４（Ａ）は、ステータス情報の一部を示す。“ＥＲＲ：”は、印刷装置１２０のエラー状態を示すステータス種別を示す。“１２３４”は、エラーコード（この例では紙ジャムのエラーコード）を示す。“ＪＯＢ：”は、印刷装置１２０の動作状態を示すステータス種別を示す。“ＰＲ”は、動作状態（この例では印刷状態）を示す。“；”は、ステータス種別間のセパレータを示す。すなわち、ステータス情報は、ステータス種別を表すキーとその値との組み合わせを含む。なお、図４（Ａ）では図示を省略するが、ステータス情報のデータは、データの開始端を示す開始符号と、データの終了端を示す終端符号とを有する。
【００３２】
図４（Ｂ）は、ステータス情報要求による問い合わせの例を示す。図４（Ｂ）には、問い合わせにおいて指定されるスキーマを示す。このスキーマにおいて、次世代アプリ４０１が所望するステータスの種類が指定される。“\Printer.Status.Summary:StateReason ”は、印刷装置１２０の詳細ステータスを問い合わせることを示している。図４（Ｃ）は、図４（Ｂ）に示す問い合わせに対する応答情報の例である。図４（Ｃ）中の“MediaJam”は、紙ジャム状態を示している。
【００３３】
（実施例１）
図５は、実施例１の情報処理装置によるステータスの表示処理例を説明するフローチャートである。まず、次世代アプリ４０１が、スプーラ４０３に対して、印刷装置１２０のステータス情報の取得を求めるステータス情報要求を行なう（ステップＳ８０１）。次世代アプリ５０１は、ステータス情報要求において、所望のステータスの種類（ステータス種別）を指定する。次に、次世代アプリ４０１が、スプーラ４０３から返却されたステータス情報（応答情報）のスキーマの内容を確認する（ステップＳ８０２）。
【００３４】
次に、次世代アプリ４０１が、要求したステータス情報が正しく取得できたかを判断する（ステップＳ８０３）。すなわち、次世代アプリ４０１は、応答情報が、ステータス情報要求で指定されたステータスに対応する全ての情報を含むかを判断する。応答情報が、ステータス情報要求で指定されたステータスに対応する全ての情報を含む場合、次世代アプリ４０１は、要求したステータス情報が正しく取得できたと判断する。応答情報が、ステータス情報要求で指定されたステータスに対応する情報を含まないか、ステータスに対応する一部の情報を含むが全ての情報を含まない場合、次世代アプリ４０１は、要求したステータス情報が正しく取得できていないと判断する。
【００３５】
次世代アプリ４０１が、要求したステータス情報が正しく取得できていないと判断した場合は、ステップＳ８０１に戻る。そして、次世代アプリ４０１が、ステータス情報要求を再度発行する。次世代アプリ４０１が、要求したステータス情報が正しく取得できたと判断した場合は、次世代アプリ４０１は、取得したステータス情報に基づいて、印刷装置１２０のステータスを表示する（ステップＳ８０４）。すなわち、次世代アプリ４０１は、応答情報に基づいて、印刷装置１２０のステータスを表示する表示手段として機能する。
【００３６】
図６は、ポートモニタ用拡張ファイルによるステータス情報の取得処理の例を説明するフローチャートである。図５のステップＳ８０１において行なわれたステータス情報要求を受けたスプーラ４０３が、ＵＳＢポートモニタ４０６を呼び出す。ＵＳＢポートモニタ４０６から呼び出されたポートモニタ用拡張ファイル４１３が、以下の処理を実行する。なお、スプーラ４０３とＵＳＢポートモニタ４０６とは、ＯＳが提供するモジュールであり、ステータス情報の取得処理に関しては、上位のモジュールからの要求を下位のモジュールへと受け渡す処理を行う。
【００３７】
ポートモニタ用拡張ファイル４１３が、ＵＳＢポートモニタ４０６を呼び出して、印刷装置１２０のステータス情報の取得処理を実行する（ステップＳ９０１）。次に、ポートモニタ用拡張ファイル４１３が、ステップＳ９０１で取得した印刷装置１２０のステータス情報を解析する（ステップＳ９０２）。続いて、ポートモニタ用拡張ファイル４１３が、ステータス情報の解析結果に基づいて、応答情報の生成処理を実行する（ステップＳ９０３）。そして、ポートモニタ用拡張ファイル４１３が、ステップ９０３で生成した応答情報を呼び出し元であるＵＳＢポートモニタ５０３へ返却して（ステップＳ９０４）、処理を終了する。
【００３８】
図７は、図６のステップＳ９０１におけるステータス情報の取得処理の詳細を説明するフローチャートである。ポートモニタ用拡張ファイル４１３が、次世代ドライバ４１０が備えるステータス情報取得処理カウンタを０に初期化する（ステップＳ１００１）。ステータス情報取得処理カウンタは、ポートモニタ用拡張ファイル４１３がステータス情報を取得する処理を行った回数（ステータス情報の取得処理の実行回数）を記録するカウンタである。
【００３９】
次に、ポートモニタ用拡張ファイル４１３が、印刷装置１２０からステータス情報をＲｅａｄ（取得）する（ステップＳ１００２）。具体的には、印刷装置１２０が備える所定の応答手段が、ポートモニタ用拡張ファイル４１３からの要求に応じて、自装置のステータス情報を応答する。続いて、ポートモニタ用拡張ファイル４１３が、ステータス情報取得処理カウンタの値を１つ増加させる。次に、ポートモニタ用拡張ファイル４１３が、すでに取得済みのステータス情報と、ステップＳ１００２で新たに取得したステータス情報とを結合し、結合情報を生成する（ステップＳ１００４）。すなわち、ポートモニタ用拡張ファイル４１３は、ステータス情報が取得される毎に、該取得されたステータス情報を結合して結合情報とする結合手段として機能する。
【００４０】
すでに取得済みのステータス情報とは、繰り返し実行されるステップＳ１００２のステータス情報の取得処理における、前回までの繰り返しで取得されたステータス情報が結合された情報である。本実施形態の情報処理装置は、ステータス取得処理を繰り返し、取得したステータス情報を結合する。これにより、一度のステータス取得処理で全ての情報を取得できない場合でも、完結したステータス情報を取得できるようになる。
【００４１】
次に、ポートモニタ用拡張ファイル４１３が、結合情報内で所定の終端符号を検索し、結合情報内に終端符号があるかを判断する（ステップＳ１００６）。結合情報内に終端符号があることは、印刷装置１２０から全てのステータス情報を取得できたことを意味する。この例では、ポートモニタ用拡張ファイル４１３は、結合情報に基づいて、印刷装置１２０から全てのステータス情報を取得できたかを判断する第１判断手段として機能する。言い換えると、ポートモニタ用拡張ファイル４１３は、周辺装置から取得できなかったステータス情報があるか否かを判断する判断手段として機能する。ポートモニタ用拡張ファイル４１３が、結合情報内に終端符号があると判断した場合は、ポートモニタ用拡張ファイル４１３は、印刷装置１２０から全てのステータス情報を取得した、つまり印刷装置１２０から取得できなかったステータス情報がないと判断する。そして、ポートモニタ用拡張ファイル４１３が、取得したステータス情報を呼び出し元に返却する（ステップＳ１００７）。
【００４２】
ポートモニタ用拡張ファイル４１３が、結合情報内に終端符号がない、つまり印刷装置１２０から取得できなかったステータス情報があると判断した場合は、ステップＳ１００８に進む。そして、ポートモニタ用拡張ファイル４１３が、以下の処理を実行する第２判断手段として機能する。ポートモニタ用拡張ファイル４１３は、ステータス取得処理カウンタの値と予め決められた閾値とを比較して、ステータス取得処理カウンタの値が閾値以内であるかを判断する（ステップＳ１００８）。ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタの値が予め決められた閾値以内であると判断した場合は、処理がステップＳ１００２に戻る。そして、ポートモニタ用拡張ファイル４１３が、ステータス情報の取得処理を再度実行する。すなわち、ポートモニタ用拡張ファイル４１３は、印刷装置１２０から取得できなかったステータス情報があると判断された場合に、取得回数が規定回数になるまで、印刷装置１２０からステータス情報を取得する。
【００４３】
ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタの値が予め決められた閾値を超えたと判断した場合は、処理がステップＳ１００７に進む。すなわち、ポートモニタ用拡張ファイル４１３は、印刷装置１２０から取得できなかったステータス情報があると判断され、取得回数が規定回数になった場合に、取得したステータス情報を要求元に返却する。これにより、印刷装置１２０から取得したステータス情報がステータス情報として完結していない状態であっても、当該ステータス情報が呼び出し元に返却され、図８に示すステータス情報の解析処理の対象となる。その結果、ステータス情報を取得する処理の繰り返し回数を閾値以下にすることができ、短時間でステータス情報を取得する処理が際限なく繰り返されることを防止できる。
【００４４】
図８は、図６のステップＳ９０２におけるステータス情報の解析処理の詳細を説明するフローチャートである。ステータス情報は、図４（Ａ）で説明したように、ステータスの種別を表すキーとその値との組み合わせを含んでいる。したがって、まず、ポートモニタ用拡張ファイル４１３が、ステータス情報内で検索する対象のキーを決定する（ステップＳ１１０１）。ポートモニタ用拡張ファイル４１３は、どのキーを検索対象とするかを、次世代アプリ４０１が行ったステータス情報要求において指定されたステータスの種類に応じて決定する。
【００４５】
次に、ポートモニタ用拡張ファイル４１３が、ステータス情報内で、上記ステップ１１０１で決定したキーを検索する（ステップＳ１１０２）。続いて、ポートモニタ用拡張ファイル４１３が、検索対象のキーが見つかったかを判断する（ステップＳ１１０３）。ポートモニタ用拡張ファイル４１３が、検索対象のキーが見つからなかったと判断した場合は、ステップＳ１１０７に進む。ポートモニタ用拡張ファイル４１３が、検索対象のキーが見つかったと判断した場合は、ステップＳ１１０４に進む。
【００４６】
ステップＳ１１０４において、ポートモニタ用拡張ファイル４１３が、上記ステップ１１０２で検索したキーに対応する値をステータス情報内で検索して取得する（ステップＳ１１０４）。すなわち、ポートモニタ用拡張ファイル４１３は、結合情報（ステータス情報）からステータス情報要求で指定されたステータスに対応する情報を取得する。続いて、ポートモニタ用拡張ファイル４１３が、上記ステップＳ１１０２で検索したキーに対応する値を取得できたかを判断する（ステップＳ１１０５）。ポートモニタ用拡張ファイル４１３が、上記ステップＳ１１０２で検索したキーに対応する値を取得できなかったと判断した場合は、ステップＳ１１０７に進む。ポートモニタ用拡張ファイル４１３が、上記ステップＳ１１０２で検索したキーに対応する値を取得できたと判断した場合は、ステップＳ１１０６に進む。
【００４７】
ステップＳ１１０６において、ポートモニタ用拡張ファイル４１３が、ステップＳ１１０２で検索したキーとステップＳ１１０４で検索した値とを関連付けて記録し（ステップＳ１１０６）、ステップＳ１１０７へ進む。
【００４８】
次に、ポートモニタ用拡張ファイル４１３が、次に検索するべきキーがあるかを判断する（ステップＳ１１０７）。ポートモニタ用拡張ファイル４１３が、次に検索するべきキーがあると判断した場合は、ステップＳ１１０１に戻る。ポートモニタ用拡張ファイル４１３が、次に検索するべきキーがないと判断した場合は、すでに記録していたキーと値との組み合せを呼び出し元に返却して（ステップＳ１１０８）、処理を終了する。
【００４９】
図９は、図６のステップＳ９０３における応答情報の生成処理の詳細を説明するフローチャートである。まず、ポートモニタ用拡張ファイル４１３が、ステータス情報解析処理によって取得されたキーと値との組み合わせに基づいて、キーと値とを含む応答情報を返却情報として生成する（ステップＳ１２０１）。そして、ポートモニタ用拡張ファイル４１３が、生成した応答情報を呼び出し元へ返却し（ステップＳ１２０２）、処理を終了する。応答情報を受けたＵＳＢポートモニタ４０６は、スプーラ４０３を介して応答情報を次世代アプリ４０１へ渡す。すなわち、ポートモニタ用拡張ファイル４１３およびＵＳＢポートモニタ４０６は、ステータス情報の解析処理によって取得された情報を含む返却情報を次世代アプリ４０１に応答する応答手段として機能する。
【００５０】
上述した実施例１の情報処理装置によれば、ＵＳＢポートモニタ用拡張ファイルの処理で時間計測ができない制限が課せられたＯＳ環境下であっても、印刷装置から短時間でステータス情報を取得する処理が際限なく繰り返されることを防止できる。
【００５１】
図１０は、実施例１の第１の変形例におけるステータス情報の取得処理を説明するフローチャートである。図１０のステップＳ２００２乃至Ｓ２００３は、図７のステップＳ１００１乃至Ｓ１００２と同様である。また、図１０のステップＳ２００６乃至Ｓ２０１１は、図７のステップＳ１００３乃至Ｓ１００８と同様である。
【００５２】
図１０のステップＳ２００１において、ポートモニタ用拡張ファイル４１３が、ステータス情報取得回数の規定値を規定値１に設定する（ステップＳ２００１）。すなわち、ポートモニタ用拡張ファイル４１３が、Ｓ２０１１の判断処理でステータス取得処理カウンタと比較される閾値（規定値）の初期値として第１の閾値（規定値１）を設定する設定手段として機能する。また、ステップＳ２００４において、ポートモニタ用拡張ファイル４１３が、ステータス情報をＲｅａｄ（取得）できたかを判断する（ステップＳ２００４）。ポートモニタ用拡張ファイル４１３が、ステータス情報を取得できなかったと判断した場合は、処理がステップＳ２００６に進む。ポートモニタ用拡張ファイル４１３が、ステータス情報を取得できたと判断した場合は、処理がステップＳ２００５に進む。
【００５３】
次に、ポートモニタ用拡張ファイル４１３が、ステータス情報取得回数の規定値を規定値２に設定する（ステップＳ２００５）。この例において、ポートモニタ用拡張ファイル４１３は、規定値２として、規定値１より大きい値を設定する。そして、処理がステップＳ２００６に進む。すなわち、ポートモニタ用拡張ファイル４１３は、ステータス情報が取得されたことを契機として、Ｓ２０１１の判断処理でステータス取得処理カウンタと比較される規定値を規定値１から規定値２に設定する。ポートモニタ用拡張ファイル４１３が、規定値を規定値２に設定するのは、ステータス情報を一度でも取得できた場合には、ステータス情報を繰り返し取得しにいけば全部取得できる可能性が高いからである。規定値を規定値２に設定することにより、Ｓ２０１１の判断処理で規定値以内であるとされる可能性が高くなる。その結果、ステータス情報を全部取得できる可能性が高まる。
【００５４】
図１１は、実施例１の第２の変形例におけるステータス情報の取得処理を説明するフローチャートである。図１０のステップＳ２１０１、Ｓ２１０３、Ｓ２１０４、Ｓ２１０５、Ｓ２１０７、Ｓ２１０８、Ｓ２１０９、Ｓ２１１０は、図１０のステップＳ２００２、Ｓ２００３、Ｓ２００６、Ｓ２００４、Ｓ２００７、Ｓ２００８、Ｓ２００９、Ｓ２０１０と同様である。
【００５５】
図１１のステップＳ２１０２において、ポートモニタ用拡張ファイル４１３が、ステータス取得成功情報を初期化する（ステップＳ２１０２）。ステータス取得成功情報は、印刷装置１２０からのステータス情報の取得処理が最後に成功した時のステータス取得処理カウンタの値を有する情報である。
【００５６】
また、ステップＳ２１０５の判断処理において、ポートモニタ用拡張ファイル４１３が、ステータス情報を取得できたと判断した場合、ポートモニタ用拡張ファイル４１３は、以下の処理を実行する。ポートモニタ用拡張ファイル４１３は、現在のステータス取得処理カウンタの値をステータス取得成功情報として記録する（ステップＳ２１０６）。ステータス取得成功情報に記録された値は、ステータス情報の取得処理が最後に成功した時のステータス情報の取得処理の実行回数（成功時実行回数）である。すなわち、ポートモニタ用拡張ファイル４１３は成功時実行回数をカウントするカウント手段として機能する。
【００５７】
また、ステップＳ２１０９の判断処理において、ポートモニタ用拡張ファイル４１３が、結合情報内に終端符号があると判断した場合、処理がステップＳ２１１１に進む。そして、ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタの値が規定値１（第１の閾値）以内であるかを判断する（ステップＳ２１１１）。規定値１は、予め実験または経験則によって決められている。規定値１は、例えば１００であるものとする。
【００５８】
ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタの値が規定値１以内であると判断した場合は、処理がステップＳ２１０３に戻る。ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタの値が規定値１を超えたと判断した場合は、処理がステップＳ２１１２に進む。この例では、ステータス取得処理カウンタの値は、例えば１０１であるものとする。したがって、ポートモニタ用拡張ファイル４１３は、ステータス取得処理カウンタの値が規定値１を超えたと判断し、処理がステップＳ２１１２に進む。
【００５９】
次に、ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタの値とステータス取得成功情報が有する値との差が規定値２以内、すなわち第２の閾値以内であるかを判断する（ステップＳ２１１２）。規定値２は、予め実験または経験則によって決められている。規定値２は、例えば１０であるものとする。
【００６０】
ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタの値とステータス取得成功情報が有する値との差が規定値２を超えたと判断した場合は、処理がステップＳ２１１０に進む。ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタの値とステータス取得成功情報が有する値との差が規定値２以内であると判断した場合は、処理がステップＳ２１１３に進む。
【００６１】
この例では、ステップＳ２１１２の判断処理の実行時のステータス取得成功情報が有する値は、９５である場合を想定する。この場合には、ステータス取得処理カウンタの値”１０１”とステータス取得成功情報が有する値”９５”との差”６”は、規定値２が示す”１０”以内である。したがって、この場合には、処理がステップＳ２１１３に進む。
【００６２】
次に、ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタが規定値３以内であるかを判断する（ステップＳ２１１３）。規定値３は、予め実験または経験則によって決められている。規定値３は、例えば２００であるものとする。
【００６３】
ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタが規定値３を超えたと判断した場合は、処理がステップＳ２１１０に進む。ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタが規定値３以内であると判断した場合は、処理がステップＳ２１０３に戻る。
【００６４】
図１１のステップＳ２１１３の判断処理が省略されていてもよい。すなわち、ステップＳ２１１２の判断処理で、ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタの値とステータス取得成功情報が有する値との差が規定値２以内であると判断した場合に、処理をステップＳ２１０３に戻すようにしてもよい。図１１を参照して説明した処理によれば、ステータス情報の取得に最後に成功してからのステータス情報の取得処理の実行回数が少ない場合には、Ｓ２１１２、Ｓ２１１３の判断処理を介して、ステータス情報が再取得される可能性が高まる。
【００６５】
（実施例２）
次に、実施例２について説明する。実施例２におけるステータス情報の解析処理は、図８を参照して説明したステータス情報の解析処理と同様である。また、実施例２における応答情報の生成処理は、図９を参照して説明した応答情報の生成処理と同様である。
【００６６】
図１２は、実施例２におけるステータス情報要求による問い合わせと問い合わせに対する応答情報の例を示す図である。図１２（Ａ）は、ステータス情報要求による問い合わせの例を示す。問い合わせの例の“\Printer.Status.Summary:StateReason ”は、印刷装置１２０の詳細ステータスを問い合わせることを示す。
【００６７】
図１２（Ｂ）は、図１２（Ａ）に示す問い合わせに対する応答情報の例である。図１２（Ｂ）中の“MediaJam”は、紙ジャム状態を示す。”ERR1”は、印刷装置１２０からステータス情報を取得できなかったことを示すエラー値である。また、”ERR2”は、印刷装置１２０からステータス情報を一部のみ取得できたことを示すエラー値である。
【００６８】
図１３は、実施例２の情報処理装置によるステータスの表示処理例を説明するフローチャートである。ステップＳ１４０１乃至Ｓ１４０４は、図５のステップＳ８０１乃至Ｓ８０４と同様である。実施例２では、ステップＳ１４０３の判断処理において、次世代アプリ４０１が、要求したステータス情報が正しく取得できていないと判断した場合は、ステップＳ１４０５に進む。
【００６９】
ステップＳ１４０５において、次世代アプリ４０１が、応答情報において設定されているエラー値に応じて予め決められた時間が経過するまで待機し（ステップＳ１４０５）、ステップＳ１４０１に戻る。すなわち、次世代アプリ４０１は、応答情報に設定されているエラー情報の種別（エラー値）に応じて予め決められた時間待機後、ステータス情報要求を再度発行する。次世代アプリ４０１が、応答情報において指定されたエラー値に応じた時間が経過するまで待機した後、さらに予め定められた時間が経過したかを判断してもよい。そして、次世代アプリ４０１が、上記予め定められた時間が経過した場合に、印刷装置１２０のステータスが得られなかったことを示す情報を表示してもよい。
【００７０】
図１３を参照して説明した処理によれば、応答情報において指定されたエラー値に応じた時間待機した後にステータス情報要求を行なう。したがって、次世代アプリ４０１によれば、短時間にステータス情報要求が際限なく繰り返されることを防止することができる。
【００７１】
図１４は、実施例２における、ポートモニタ用拡張ファイルによるステータス情報の取得処理の例を説明するフローチャートである。図１１のステップＳ１４０１において行なわれたステータス情報要求を受けたスプーラ４０３が、ＵＳＢポートモニタ４０６を呼び出す。ＵＳＢポートモニタ４０６から呼び出されたポートモニタ用拡張ファイル４１３が、以下の処理を実行する。
【００７２】
ポートモニタ用拡張ファイル４１３が、ＵＳＢポートモニタ４０６を呼び出して、印刷装置１２０のステータス情報の取得処理を実行する（ステップＳ１５０１）。次に、ポートモニタ用拡張ファイル４１３が、ステータス情報を少しでも取得できたかを判断する（ステップＳ１５０２）。ポートモニタ用拡張ファイル４１３が、ステータス情報を取得できなかったと判断した場合は、ステップＳ１５０８に進む。そして、ポートモニタ用拡張ファイル４１３が、返却情報にエラー値"ERR1"を設定して、呼び出し元に返却する（ステップＳ１５０８）。
【００７３】
ポートモニタ用拡張ファイル４１３が、ステータス情報を少しでも取得できたと判断した場合は、ポートモニタ用拡張ファイル４１３が、ステータス情報の解析処理を実行する（ステップＳ１５０３）。
【００７４】
次に、ポートモニタ用拡張ファイル４１３が、上記ステップＳ１５０３におけるステータス情報の解析結果に必要な情報が含まれているかを判断する（ステップＳ１５０４）。具体的には、ポートモニタ用拡張ファイル４１３は、ステータス情報要求において指定した項目（キー）に対応する情報が解析結果に含まれているかを判断する。ステータス情報要求において指定した項目（キー）に対応する情報が解析結果に含まれている場合、ポートモニタ用拡張ファイル４１３は、解析結果に必要な情報が含まれていると判断し、ステップＳ１５０５に進む。
【００７５】
ステップＳ１５０５において、応答情報の生成処理が実行される（ステップＳ１５０５）。そして、ポートモニタ用拡張ファイル４１３が、上記ステップＳ１５０５において生成された応答情報を返却情報に設定して、呼び出し元に返却する（ステップＳ１５０６）。
【００７６】
上記ステップＳ１５０４において、ステータス情報要求において指定した項目（キー）に対応する情報が解析結果に含まれていない場合、ポートモニタ用拡張ファイル４１３は、解析結果に必要な情報が含まれていないと判断して、ステップＳ１５０７に進む。そして、ポートモニタ用拡張ファイル４１３が、返却情報にエラー値"ERR2"を設定して、呼び出し元に返却する（ステップＳ１５０７）。
【００７７】
図１５は、図１４のステップＳ１５０１におけるステータス情報の取得処理の詳細を説明するフローチャートである。図１５のステップＳ１６０１乃至Ｓ１６０３は、図７のステップＳ１００１乃至Ｓ１００３と同様である。また、図１５のステップＳ１６０５乃至Ｓ１６０７は、図７のステップＳ１００４乃至Ｓ１００６と同様である。また、図１５のステップＳ１６０９は、図７のステップＳ１００８と同様である。
【００７８】
実施例２では、図１５のステップ１６０４において、ポートモニタ用拡張ファイル４１３が、ステータス情報を取得できたかを判断する（ステップＳ１６０４）。ポートモニタ用拡張ファイル４１３が、ステータス情報を取得できたと判断した場合は、ステップＳ１６０５に進む。ポートモニタ用拡張ファイル４１３が、ステータス情報を取得できなかったと判断した場合は、ステップＳ１６０９に進む。
【００７９】
また、実施例２では、ステップＳ１６０７における判断処理で、ポートモニタ用拡張ファイル４１３が、結合情報内に終端符号があると判断した場合、ポートモニタ用拡張ファイル４１３が、以下の処理を実行する。ポートモニタ用拡張ファイル４１３が、印刷装置１２０からステータス情報を全て取得できたことを示す情報（情報Ａ）と、ステータス情報とを呼び出し元に返却する（ステップＳ１６０８）。情報Ａは、前述した図１４のステップＳ１５０２の判断処理において用いられる。すなわち、ポートモニタ用拡張ファイル４１３は、情報Ａに基づいて、ステータス情報を全て取得できたと判断する（図１４のステップＳ１５０３に進む）。
【００８０】
図１５に戻って、実施例２では、ポートモニタ用拡張ファイル４１３が、ステータス取得処理カウンタの値が予め決められた閾値を超えたと判断した場合、処理がステップＳ１６１０に進む。そして、ポートモニタ用拡張ファイル４１３が、ステータス情報の一部を取得できたかを判断する（ステップＳ１６１０）。すなわち、ポートモニタ用拡張ファイル４１３が、結合情報がステータス情報要求で指定されたステータスに対応する情報を含まないか、またはステータスに対応する情報の一部を含むかを判断する。
【００８１】
ポートモニタ用拡張ファイル４１３が、ステータス情報の一部を取得できたと判断した場合は、ステップＳ１６１１に進む。そして、ポートモニタ用拡張ファイル４１３が、印刷装置１２０からステータス情報の一部を取得できたことを示す情報（情報Ｃ）と、ステータス情報とを呼び出し元に返却する（ステップＳ１６１２）。情報Ｃは、前述した図１４のステップＳ１５０２の判断処理において用いられる。ポートモニタ用拡張ファイル４１３は、情報Ｃに基づいて、ステータス情報を少しでも取得できたと判断し、図１４のステップＳ１５０３に進む。そして、図１４のステップＳ１５０４の判断処理を経て、ポートモニタ用拡張ファイル４１３は、エラー値“ERR2”を返却する。すなわち、ポートモニタ用拡張ファイル４１３は、結合情報がステータス情報要求で指定されたステータスに対応する一部の情報を含むと判断した場合に、第１のエラー情報である”ERR2”が設定された返却情報を応答する。
【００８２】
ポートモニタ用拡張ファイル４１３が、結合情報がステータス情報要求で指定されたステータスに対応する情報を含まないと判断した場合は、ステップＳ１６１２に進む。そして、ポートモニタ用拡張ファイル４１３が、印刷装置１２０からステータス情報を取得できなかったことを示す情報（情報Ｂ）と、ステータス情報とを呼び出し元に返却する（ステップＳ１６１２）。情報Ｂは、前述した図１４のステップＳ１５０２の判断処理において用いられる。すなわち、ポートモニタ用拡張ファイル４１３は、情報Ｂに基づいて、ステータス情報を取得できなかったと判断し、図１４のステップＳ１５０８に進む。そして、ポートモニタ用拡張ファイル４１３は、第２のエラー情報である”ERR1”が設定された返却情報を応答する応答手段として機能する。
【００８３】
図１５を参照して説明したことから、ポートモニタ用拡張ファイル４１３は、印刷装置１２０から取得できなかったステータス情報があると判断され、取得回数が規定回数になった場合に、以下の処理を実行する。ポートモニタ用拡張ファイル４１３は、ステータス情報を全く取得できなかったことを示す情報、または、ステータス情報を一部取得できたかを示す情報と取得したステータス情報を要求元に返却する。
【００８４】
実施例２の情報処理装置によれば、ＵＳＢポートモニタ用拡張ファイルの処理で時間計測ができない制限が課せられたＯＳ環境下であっても、印刷装置からステータス情報を取得する繰り返し処理の回数を印刷装置で許容される回数以下にすることができる。
【００８５】
また、実施例２の情報処理装置によれば、次世代アプリ４０１が、印刷装置からのステータス取得処理の状況（ステータス情報を取得できないか、一部取得できたか、すべて取得できたか）に応じてステータス情報を要求する時間間隔を制御できる。
【００８６】
図１６は、実施例２の変形例の情報処理装置によるステータスの表示処理例を説明するフローチャートである。図１６のステップＳ２２０１乃至Ｓ２２０４は、図１３のステップＳ１４０１乃至Ｓ１４０４と同様である。また、図１６のステップＳ２２０６は、図１３のステップＳ１４０５と同様である。
【００８７】
図１７は、次世代アプリによるステータスの表示画面の例を示す図である。実施例２の変形例では、図１６のステップＳ２２０３の判断処理で、次世代アプリ４０１が、要求した情報を取得できたと判断した場合、次世代アプリ４０１は、ステップＳ２２０４において、図１７（Ａ）に示す画面上に、印刷装置１２０のステータスを表示する。図１７（Ａ）に示す画面上には、印刷装置１２０は用紙が詰まった状態であることが表示されている。
【００８８】
また、図１６のステップＳ２２０３の判断処理において、次世代アプリ４０１が、要求した情報を取得できなかったと判断した場合、処理がステップＳ２２０５に進む。そして、次世代アプリ４０１が、ステータスを取得できない理由に応じて画面表示を行なう（ステップＳ２２０５）。そして、処理がステップＳ２２０６に進む。
【００８９】
この例では、ステータスを取得できない理由は、エラー値に応じて予め決められているものとする。例えば、前述したように、”ERR1”は、印刷装置１２０からステータス情報を取得できなかったことを示す。また、”ERR2”は、印刷装置１２０からステータス情報を一部のみ取得できたことを示す。したがって、ステップＳ２２０２において、次世代アプリ４０１が、返却された情報に”ERR1”が設定されていることを確認した場合、次世代アプリ４０１は、図１７（Ｂ）に示す画面を表示する。また、次世代アプリ４０１が、返却された情報に”ERR2”が設定されていることを確認した場合、次世代アプリ４０１は、図１７（Ｃ）に示す画面を表示する。
【００９０】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００９１】
１１０  情報処理装置
１２０  印刷装置
【図１】
0005971972.tif 000002
【図２】
0005971972.tif 000003
【図３】
0005971972.tif 000004
【図４】
0005971972.tif 000005
【図５】
0005971972.tif 000006
【図６】
0005971972.tif 000007
【図７】
0005971972.tif 000008
【図８】
0005971972.tif 000009
【図９】
0005971972.tif 000010
【図１０】
0005971972.tif 000011
【図１１】
0005971972.tif 000012
【図１２】
0005971972.tif 000013
【図１３】
0005971972.tif 000014
【図１４】
0005971972.tif 000015
【図１５】
0005971972.tif 000016
【図１６】
0005971972.tif 000017
【図１７】
0005971972.tif 000018
【図１８】
0005971972.tif 000019
【図１９】
0005971972.tif 000020