(57)【特許請求の範囲】
【請求項１】
データ処理装置であって、
データ処理部と、
一の外部装置と複数の論理回線を介して通信する通信部と、
前記論理回線毎に確保されるバッファ領域であって対応する前記論理回線を介して前記通信部が受信したデータを記憶するバッファ領域が確保されるメモリと、
前記通信部に前記外部装置が接続された場合に当該データ処理装置を表す仮想的なデータ処理装置を前記外部装置に作成するための情報であって、互いに異なる前記論理回線が対応付けられている複数の前記仮想的なデータ処理装置を一度の接続で作成するための情報を記憶する記憶部と、
制御部と、
を備え、
前記論理回線には優先度が設定されており、
前記制御部は、各前記バッファ領域に前記データが記憶されているか否かを判断する判断処理を繰り返し実行し、前記判断処理によって前記データが記憶されていると判断されると、前記データが記憶されている前記バッファ領域に対応する前記論理回線のうち最も優先度の高い前記論理回線に対応する前記バッファ領域に記憶されている前記データを前記データ処理部に処理させる、データ処理装置。
【請求項２】
請求項１に記載のデータ処理装置であって、
前記制御部は、前記バッファ領域に記憶されている前記データを処理させている途中で当該バッファ領域に対応する前記論理回線より優先順位の高い前記論理回線に対応する前記バッファ領域に前記データが記憶された場合は、当該処理中のデータの処理が終了した後に、当該優先順位が高い前記バッファ領域に記憶されている前記データを処理させる、データ処理装置。
【請求項３】
請求項１に記載のデータ処理装置であって、
前記制御部は、
前記データ処理部に前記データを処理させているときも前記判断処理を実行し、当該処理中のデータが記憶されていた前記バッファ領域に対応する前記論理回線より優先度が高い前記論理回線に対応する前記バッファ領域に前記データが記憶されている場合は、当該処理中のデータの処理を中断し、
当該優先度の高い前記論理回線に対応する前記バッファ領域に記憶されている前記データを前記データ処理部に処理させ、
当該優先度の高い前記論理回線に対応する前記バッファ領域に記憶されている前記データの処理が終了すると、処理が中断された前記データの処理を再開させる、データ処理装置。
【請求項４】
複数の論理回線を介して通信する情報処理装置とデータ処理装置とからなるデータ処理システムであって、
前記論理回線には優先度が設定されており、
前記情報処理装置は、
前記複数の論理回線を介して通信する第１の通信部と、
前記第１の通信部に前記データ処理装置が接続された場合に、前記データ処理装置を表す仮想的なデータ処理装置を当該情報処理装置に作成するための情報であって、互いに異なる前記論理回線が対応付けられている複数の前記仮想的なデータ処理装置を一度の接続で作成するための情報を前記データ処理装置から取得する取得処理と、
前記取得処理によって取得された前記情報に基づいて複数の前記仮想的なデータ処理装置を作成する作成処理と、
前記仮想的なデータ処理装置を指定する指定部と、
前記指定部によって指定された前記仮想的なデータ処理装置に対応付けられている前記論理回線を介して前記第１の通信部にデータを送信させる送信制御部と、
を備え、
前記データ処理装置は、
データ処理部と、
前記複数の論理回線を介して通信する第２の通信部と、
前記論理回線毎に確保されるバッファ領域であって対応する前記論理回線を介して前記通信部が受信したデータを記憶するバッファ領域が確保されるメモリと、
前記情報を記憶する記憶部と、
処理制御部と、
を備え、
前記処理制御部は、各前記バッファ領域に前記データが記憶されているか否かを判断する判断処理を繰り返し実行し、前記判断処理によって前記データが記憶されていると判断されると、前記データが記憶されている前記バッファ領域に対応する前記論理回線のうち最も優先度の高い前記論理回線に対応する前記バッファ領域に記憶されている前記データを前記データ処理部に処理させる、データ処理システム。
【請求項５】
請求項４に記載のデータ処理システムであって、
前記処理制御部は、前記データを前記データ処理部に処理させる前に、当該データが記憶されていた前記バッファ領域に対応する前記論理回線より優先度が低い前記論理回線を介して前記情報処理装置に受信待機通知を送信し、
前記送信制御部は、前記データ処理装置から前記受信待機通知を受信すると、前記受信待機通知が送信されてきた前記論理回線を介した新たな前記データの送信を待機し、
前記処理制御部は前記データの処理が終了すると、当該データが記憶されていた前記バッファ領域に対応する前記論理回線より優先度が低い前記論理回線を介して前記情報処理装置に受信待機解除通知を送信し、
前記送信制御部は、前記受信待機解除通知を受信すると、前記受信待機解除通知が送信されてきた前記論理回線を介した新たな前記データの送信を再開する、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを優先度に応じた処理順で処理する技術に関する。
【背景技術】
【０００２】
従来、コンピュータから送信されたデータを処理するデータ処理装置において、データ処理装置のデータの処理順を変更可能な技術が知られている。例えば、コンピュータからプリンタへの印刷データの送信途中に該印刷データよりも優先度の高い印刷データの送信要求が発生した場合、送信途中の印刷データの送信を中断し、優先度の高い印刷データを先に送信する通信システムが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２４９９７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の通信システムによると、優先度の高いデータが先に処理されるのはあくまで送信途中のデータに対してであり、優先度の高いデータの送信要求が発生した時点で既に送信が完了しているデータに対しては当該優先度の高いデータを先に処理させることはできない。
【０００５】
ところで、受信したデータをキューに蓄積し、優先度に応じて処理順を変更することによって優先度の高いデータを先に処理することも可能である。
しかしながら、処理順を変更するためには優先度に応じてデータを並べ替えるなどの複雑な処理が必要であり、データ処理装置側の処理負担が増大するという問題がある。
【０００６】
本発明は上記のような事情に基づいて完成されたものであって、データ処理装置の処理負担の増大を抑制しつつデータを優先度に応じた処理順で処理できる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の発明は、データ処理装置であって、データ処理部と、一の外部装置と複数の論理回線を介して通信する通信部と、前記論理回線毎に確保されるバッファ領域であって対応する前記論理回線を介して前記通信部が受信したデータを記憶するバッファ領域が確保されるメモリと、制御部と、を備え、前記論理回線には優先度が設定されており、前記制御部は、各前記バッファ領域に前記データが記憶されているか否かを判断する判断処理を繰り返し実行し、前記判断処理によって前記データが記憶されていると判断されると、前記データが記憶されている前記バッファ領域に対応する前記論理回線のうち最も優先度の高い前記論理回線に対応する前記バッファ領域に記憶されている前記データを前記データ処理部に処理させる。
【０００８】
この発明によると、先に優先度の低い論理回線に対応するバッファ領域にデータが記憶されていても、優先度の高い論理回線に対応するバッファ領域にデータが記憶されると、当該優先度の高い論理回線に対応するバッファ領域に記憶されているデータを先に処理させるので、優先度に応じてデータを並べ替えるといった複雑な処理を行うことなくデータを優先度の順で処理することができる。
よってこの発明によると、データ処理装置の処理負担を軽減しつつデータを優先度に応じた処理順で処理できる。
【０００９】
第２の発明は、第１の発明のデータ処理装置であって、前記制御部は、前記バッファ領域に記憶されている前記データを処理させている途中で当該バッファ領域に対応する前記論理回線より優先順位の高い前記論理回線に対応する前記バッファ領域に前記データが記憶された場合は、当該処理中のデータの処理が終了した後に、当該優先順位が高い前記バッファ領域に記憶されている前記データを処理させる。
この発明によると、処理中のデータの処理を中断しないので、制御部の処理を簡素にできる。
【００１０】
第３の発明は、第１の発明のデータ処理装置であって、前記制御部は、前記データ処理部に前記データを処理させているときも前記判断処理を実行し、当該処理中のデータが記憶されていた前記バッファ領域に対応する前記論理回線より優先度が高い前記論理回線に対応する前記バッファ領域に前記データが記憶されている場合は、当該処理中のデータの処理を中断し、当該優先度の高い前記論理回線に対応する前記バッファ領域に記憶されている前記データを前記データ処理部に処理させ、当該優先度の高い前記論理回線に対応する前記バッファ領域に記憶されている前記データの処理が終了すると、処理が中断された前記データの処理を再開させる。
この発明によると、処理中のデータの処理を中断するので、優先度の高い論理回線を介して受信したデータをより速やかに処理させることができる。
【００１１】
第４の発明は、複数の論理回線を介して通信する情報処理装置とデータ処理装置とからなるデータ処理システムであって、前記論理回線には優先度が設定されており、前記情報処理装置は、前記複数の論理回線を介して通信する第１の通信部と、前記データ処理装置にデータを処理させる優先度を当該データに対して指定する指定部と、前記指定部によって指定された優先度が設定されている前記論理回線を介して前記第１の通信部にデータを送信させる送信制御部と、を備え、前記データ処理装置は、データ処理部と、前記複数の論理回線を介して通信する第２の通信部と、前記論理回線毎に確保されるバッファ領域であって対応する前記論理回線を介して前記通信部が受信したデータを記憶するバッファ領域が確保されるメモリと、処理制御部と、を備え、前記処理制御部は、各前記バッファ領域に前記データが記憶されているか否かを判断する判断処理を繰り返し実行し、前記判断処理によって前記データが記憶されていると判断されると、前記データが記憶されている前記バッファ領域に対応する前記論理回線のうち最も優先度の高い前記論理回線に対応する前記バッファ領域に記憶されている前記データを前記データ処理部に処理させる。
この発明によると、データ処理装置の処理負担を軽減しつつデータを優先度に応じた処理順で処理できる。
【００１２】
第５の発明は、第４の発明のデータ処理システムであって、前記処理制御部は、前記データを前記データ処理部に処理させる前に、当該データが記憶されていた前記バッファ領域に対応する前記論理回線より優先度が低い前記論理回線を介して前記情報処理装置に受信待機通知を送信し、前記送信制御部は、前記データ処理装置から前記受信待機通知を受信すると、前記受信待機通知が送信されてきた前記論理回線を介した新たな前記データの送信を待機し、前記処理制御部は前記データの処理が終了すると、当該データが記憶されていた前記バッファ領域に対応する前記論理回線より優先度が低い前記論理回線を介して前記情報処理装置に受信待機解除通知を送信し、前記送信制御部は、前記受信待機解除通知を受信すると、前記受信待機解除通知が送信されてきた前記論理回線を介した新たな前記データの送信を再開する。
この発明によると、優先度の高い論理回線に対応するバッファ領域に記憶されているデータの処理中は、優先度の低い論理回線を介したデータの受信が行われないので、優先度の高い論理回線を介して受信したデータを速やかに処理することができる。
【００１３】
第６の発明は、一のデータ処理装置と複数の論理回線を介して通信する通信部を備える情報処理装置で実行されるデータ処理プログラムであって、当該データ処理プログラムは、アプリケーションプログラムと、前記データ処理装置を制御するデバイスドライバとからなり、前記論理回線には優先度が設定されており、前記アプリケーションプログラムは、前記データ処理装置にデータを処理させる優先度を当該データに対して指定する指定処理と、前記デバイスドライバに処理命令と前記優先度とを出力する出力処理と、を前記情報処理装置に実行させ、各前記デバイスドライバは、前記アプリケーションプログラムから出力された前記処理命令に基づいてデータを生成する生成処理と、前記生成処理で生成された前記データを、前記アプリケーションプログラムから出力された優先度が設定されている前記論理回線を介して前記データ処理装置に送信する送信処理と、を前記情報処理装置に実行させる。
この発明によると、データ処理装置の処理負担を軽減しつつデータを優先度に応じた処理順で処理できる。
【００１４】
第７の発明は、一のデータ処理装置と複数の論理回線を介して通信する通信部を備える情報処理装置で実行されるデバイスドライバであって、前記論理回線には優先度が設定されており、前記データ処理装置にデータを処理させる優先度を当該データに対して指定する指定処理と、処理命令に基づいてデータを生成する生成処理と、前記生成処理で生成されたデータを、前記指定処理で指定された優先度が設定されている前記論理回線を介して前記データ処理装置に送信する送信処理と、を前記情報処理装置に実行させる。
この発明によると、データ処理装置の処理負担を軽減しつつデータを優先度に応じた処理順で処理できる。
【００１５】
尚、本発明に備わる各部の機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら各部の機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
【図面の簡単な説明】
【００１６】
【図１】実施形態１に係る印刷システムの構成を示す模式図。
【図２】優先印刷を概念的に説明するための模式図。
【図３】インタフェース（論理回線）を説明するための模式図。
【図４】論理プリンタの情報の一例を示す模式図。
【図５】「プリンタとＦＡＸ」の設定画面の一例を示す模式図。
【図６】印刷画面の一例を示す模式図。
【図７】ＰＣ側の印刷処理の流れを示すフローチャート。
【図８】プリンタ側の印刷処理の流れを示すフローチャート。
【図９】実施形態２に係るプリンタ側の印刷処理の流れを示すフローチャート（前半）。
【図１０】プリンタ側の印刷処理の流れを示すフローチャート（後半）。
【図１１】実施形態３に係る優先印刷を概念的に説明するための模式図。
【図１２】印刷条件設定画面を示す模式図。
【図１３】実施形態３に係るＰＣ側の印刷処理の流れを示すフローチャート。
【図１４】実施形態４に係る優先印刷を概念的に説明するための模式図。
【発明を実施するための形態】
【００１７】
＜実施形態１＞
本発明の実施形態１を図１ないし図８によって説明する。
（１）印刷システムの構成
図１は、実施形態１に係る印刷システム１（データ処理システムの一例）の構成を示す模式図である。印刷システム１は、パーソナルコンピュータ２（外部装置、情報処理装置の一例）とプリンタ３（データ処理装置の一例）とを備えて構成されている。パーソナルコンピュータ（ＰＣ）２とプリンタ３とはＵＳＢ（Universal Serial Bus）によって通信可能に接続されている。
【００１８】
（１−１）パーソナルコンピュータの電気的構成
ＰＣ２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、記憶部２４、ディスプレイ駆動回路（駆動回路）２５、ネットワークインタフェース（ＮＷ  Ｉ／Ｆ）２６、ＵＳＢホスト部２７などを備えて構成されている。
【００１９】
ＣＰＵ２１（送信制御部の一例）は、ＲＯＭ２２や記憶部２４に記憶されている各種のプログラムを実行することによってＰＣ２の各部を制御する。ＲＯＭ２２にはＣＰＵ２１によって実行される各種のプログラムやデータなどが記憶されている。ＲＡＭ２３はＣＰＵ２１が各種の処理を実行するための主記憶装置として用いられる。
【００２０】
記憶部２４は、ハードディスクやフラッシュメモリなどの不揮発性のメモリを用いて各種のプログラムやデータを記憶する装置である。記憶部２４には、オペレーティングシステム（ＯＳ）、ワードプロセッサや表計算などのアプリケーションプログラム（以下「アプリケーション」という）、プリンタドライバ、ＵＳＢプロトコルスタックなどが記憶される。
本実施形態ではＯＳとしてＭｉｃｒｏｓｏｆｔ社のＷＩＮＤＯＷＳ（登録商標）を例に説明する。なお、ＯＳはＷＩＮＤＯＷＳ（登録商標）に限られるものではない。
【００２１】
ディスプレイ駆動回路２５（指定部の一例）は、ＣＲＴや液晶ディスプレイなどの表示装置２８（指定部の一例）を駆動する回路であり、ケーブルを介して表示装置２８と接続されている。
ネットワークインタフェース２６は、ＬＡＮやインターネットなどの通信ネットワークと有線あるいは無線接続されている。上述したアプリケーションやプリンタドライバなどのプログラムはネットワークインタフェース２６を介して外部のサーバからダウンロードすることができる。
【００２２】
ＵＳＢホスト部２７（第１の通信部の一例）は、ＵＳＢホストコントローラ、コネクタ（Ａ型ジャック）などを備えて構成されており、ＵＳＢケーブル５を介してプリンタ３と接続されている。また、ＵＳＢホスト部２７にはマウスやキーボードなどの入力装置２９（指定部の一例）も接続される。
【００２３】
（１−２）プリンタの構成
プリンタ３はＵＳＢプリンタクラスデバイスとして構成されており、制御部３１、印刷部３２、操作部３３、ＵＳＢクライアント部３４などを備えて構成されている。
制御部３１（処理制御部の一例）は、ＣＰＵ、ＲＯＭ、ＲＡＭ３５（図３参照、メモリの一例）などで構成されている。ＣＰＵはＲＯＭに記憶されている各種のプログラムを実行することによってプリンタ３の各部を制御する。ＲＯＭはＣＰＵが実行するための各種のプログラム（例えば制御プログラムやＵＳＢプロトコルスタック）やデータなどを記憶している。ＲＡＭ３５はＣＰＵが各種の処理を実行するための主記憶装置として用いられる。
【００２４】
また、ＲＡＭ３５は、ＰＣ２から受信した印刷データ（データの一例）を一時的に記憶するための複数の受信バッファが確保されるメモリとしても用いられる。なお、プリンタ３にハードディスクやフラッシュメモリなどの不揮発性のメモリを設け、そのメモリに受信バッファを確保する構成であってもよい。
【００２５】
印刷部３２（データ処理部の一例）は、画像データが表す画像を紙などの被記録媒体に電子写真方式やインクジェット方式などで印刷する。
操作部３３は、液晶ディスプレイなどの表示装置、表示装置の表示面を覆う略透明なタッチパネル、各種の操作ボタンなどを備えて構成されている。ユーザは操作部３３を操作することによってプリンタ３の機能の選択や各種の設定などを行うことができる。
【００２６】
ＵＳＢクライアント部３４（通信部、第２の通信部の一例）は、コネクタ（Ｂ型ジャック）、エンドポイントと呼ばれる複数のＦＩＦＯバッファなどを備えて構成されており、ＵＳＢケーブル５を介してＰＣ２と接続されている。
【００２７】
（２）優先印刷
図２は、優先印刷を概念的に説明するための模式図である。実施形態１ではＰＣ２とプリンタ３との間にＵＳＢを介して二つの論理回線（インタフェース）が構成され、プリンタ３を表す仮想的なプリンタ（論理プリンタ）がインタフェース毎に対応付けられてＰＣ２に登録される。論理プリンタについては後述する。そして、インタフェース毎に論理的な通信ポート（「ＵＳＢポート」という）が生成され、各論理プリンタにそれぞれ異なるＵＳＢポートが割り当てられる。
【００２８】
二つのインタフェースには優先度が設定されている。各インタフェースにはインタフェース番号が付与されており、ここではインタフェース番号が大きいインタフェースほど優先度が高いものとする。「インタフェース０」や「インタフェース１」の末尾の「０」や「１」はインタフェース番号を示している。
プリンタドライバは、優先印刷を行う場合は、優先度が高いインタフェースに対応付けられている論理プリンタである論理プリンタＢに対応付けられているＵＳＢポート（ＵＳＢ００２）を介してプリンタ３に印刷データを出力し、優先印刷を行わない場合（通常印刷を行う場合）は、優先度が低いインタフェースに対応付けられている論理プリンタである論理プリンタＡに対応付けられているＵＳＢポート（ＵＳＢ００１）を介してプリンタ３に印刷データを出力する。以下、具体的に説明する。
【００２９】
（２−１）インタフェース
図３は、インタフェース（論理回線）を説明するための模式図である。ＵＳＢデバイスはエンドポイントを複数持つことができ、エンドポイントとＵＳＢホスト部２７との間にパイプと呼ばれる論理的な通信チャネルが構成される。
エンドポイント０はコントロール転送用の特別なエンドポイントであり、エンドポイント０を用いるパイプは双方向通信が可能である。エンドポイント０以外のエンドポイントを用いるパイプは片方向通信のみが可能である。
【００３０】
一つのインタフェース（論理回線）は受信用（ＩＮ）のパイプと送信用（ＯＵＴ）のパイプとの二つのパイプで構成され、インタフェースを介してプリンタ３への印刷データの送信やプリンタ３からのステータスの受信などの双方向通信が実現される。なお、一つのインタフェースをいくつのパイプで構成するかは設定により変更可能である。
ＵＳＢデバイスにはＵＳＢホストとの間でコンフィギュレーションを行うためのディスクリプタと呼ばれる情報（デバイス・ディスクリプタ、コンフィグレーション・ディスクリプタ、インタフェース・ディスクリプタ、エンドポイント・ディスクリプタなど）が記憶されており、インタフェースはこの情報に基づいて構成される。
【００３１】
プリンタ３にはディスクリプタに二つのインタフェース（インタフェース０、インタフェース１）が定義されており、このディスクリプタを用いてコンフィギュレーションが行われることにより、ＰＣ２とプリンタ３との間に二つのインタフェース（２つの論理回線）が構成される。
【００３２】
（２−２）論理プリンタ
図２に戻り、ＰＣ２のＵＳＢホスト部２７（図２ではホスト部）にプリンタ３が接続されると、プラグアンドプレイにより以下のようにプリンタドライバがインストールされるとともに、論理プリンタが登録される。なお、本実施形態ではＰＣ２とプリンタ３との間に２つのインタフェースが構成されるので、１回の接続でプラグアンドプレイは２回実行されることになる。
【００３３】
まず、１回目のプラグアンドプレイにより実行される処理を説明する。ＵＳＢホスト部２７は上述したコンフィギュレーションを行った後、インタフェースを介してＵＳＢデバイスからデバイス・ディスクリプタを取得する。デバイス・ディスクリプタには、プリンタ３を特定するための情報（ベンダーＩＤ，プロダクトＩＤ，シリアル番号）が含まれている。
【００３４】
ＯＳは取得されたデバイス・ディスクリプタに基づいてプリンタ３を特定し、プリンタ３とインタフェースを介して通信するためのＵＳＢポート（例えば、インタフェース０に対応するＵＳＢ００１）を生成する。なお、すでにＵＳＢポートが生成されている場合には、次の処理に進む。
【００３５】
次に、ＯＳはプリンタ３を制御するためのプリンタドライバがインストールされているか否かを判断し、インストールされていなければプリンタドライバをインストールする。
次に、ＯＳはインストールしたプリンタドライバから論理プリンタ（論理プリンタＡ）を作成する。この論理プリンタは、Ｍｉｃｒｏｓｏｆｔ社のＷＩＮＤＯＷＳでいうと「プリンタとＦＡＸ」の設定画面に表示されるものである。
次に、ＯＳは作成した論理プリンタＡを記憶部２４に登録する。登録するとは、記憶部２４に記憶されているシステム情報に論理プリンタＡの情報を書き込むことをいう。
図４は、ＯＳによって登録された上記論理プリンタの情報（以下、論理プリンタ情報と称す）を示す図である。図４に示すように、論理プリンタ情報は、論理プリンタ名（論理プリンタＡ）、プリンタドライバのドライバ名、生成したＵＳＢポートのポート名（ＵＳＢ００１）、インタフェース番号（０）、及びデバイス・ディスクリプタを対応付ける情報である。
【００３６】
次に、２回目のプラグアンドプレイが実行されると、インタフェース１に対応するＵＳＢ００２の生成を行った後、論理プリンタ（論理プリンタＢ）を作成し、その論理プリンタ情報を記憶部２４に登録する。なお、２回目のプラグアンドプレイのときには、プリンタ３に対応するプリンタドライバは既にインストールされているので、新たなプリンタドライバはインストールされない。
【００３７】
以上のような処理の結果、ＵＳＢホスト部２７にプリンタ３が接続されると、図５に示すようにＯＳに二つの論理プリンタ（実体は一つのプリンタ３）が登録される。図５に示す画面６０は「プリンタとＦＡＸ」の設定画面の一例である。
なお、論理プリンタＡと論理プリンタＢとはどちらもプリンタ３に対応しているので、プリンタ３を制御するプリンタドライバ名とプリンタ３を特定するためのデバイス・ディスクリプタとは同じものになる。
【００３８】
（２−３）ドライバ情報
本実施形態に係るプリンタドライバのインストールでは、プリンタドライバのドライバ名が記述されているドライバ情報が記憶部２４に記憶される。ドライバ情報は例えばプリンタドライバのインストーラに含まれてＰＣ２に配布される。
ドライバ情報は、優先印刷可能なプリンタドライバであるか否かをアプリケーションが判断するための情報である。
【００３９】
なお、優先印刷可能なプリンタドライバであるか否かをアプリケーションが判断できればドライバ情報を用いる以外の方法で判断してもよい。例えば、優先印刷可能なプリンタドライバのドライバ名をユーザがアプリケーションに登録するようにし、印刷に用いるプリンタドライバのドライバ名が登録されていれば優先印刷可能なプリンタドライバであると判断してもよい。
あるいは、アプリケーションがプリンタドライバに優先印刷可能なプリンタドライバであるか否かを問い合わせ、その問い合わせに対して「優先印刷可能なプリンタドライバである」という応答が得られた場合に優先印刷可能なプリンタドライバであると判断してもよい。
【００４０】
（２−４）受信バッファ
図３に示すように、プリンタ３のＲＡＭ３５にはインタフェース毎に受信バッファ（バッファ領域の一例）が確保される。受信バッファは例えばプリンタ３に電源が投入されたときに制御部３１によって確保される。なお、ここでは一つのＲＡＭ３５に二つの受信バッファを確保する場合を示しているが、各受信バッファはそれぞれ異なるメモリ上に確保されてもよい。
【００４１】
（２−５）印刷順
制御部３１は、各受信バッファに印刷データが記憶されているか否かを判断する判断処理を繰り返し実行し、印刷データが記憶されていると判断すると、印刷データが記憶されている受信バッファに対応するインタフェースのうち最も優先度の高いインタフェースに対応する受信バッファに記憶されている印刷データを印刷部３２に印刷させる。
【００４２】
具体的には例えば、制御部３１は、最も優先度の高いインタフェースに対応する受信バッファ（受信バッファ２）から順に印刷データが有るか否か（記憶されているか否か）を判断し、印刷データが有ると最初に判断した受信バッファに記憶されている印刷データを印刷部３２に印刷させる。
そして、制御部３１はその印刷が終了すると、最も優先度の高いインタフェースに対応する受信バッファ（受信バッファ２）に戻って再度順に印刷データが有るか否か（記憶されているか否か）を判断する。
【００４３】
例えば、優先度の低いインタフェースに対応する受信バッファ（受信バッファ１）に複数の印刷データが記憶されており、そのうちの一つの印刷データを印刷させている間に、優先度の高いインタフェースに対応する受信バッファ（受信バッファ２）に印刷データが記憶されたとする。
【００４４】
この場合、制御部３１は印刷が終了すると最も優先度の高いインタフェースに対応する受信バッファ（受信バッファ２）に戻って再度順に印刷データが有るか否かを判断するので、最初に印刷データが有ると判断されるのは受信バッファ２となる。このため、受信バッファ１に記憶されている印刷データより後に受信バッファ２に記憶された印刷データが、受信バッファ１に記憶されている印刷データより先に印刷されることになる。
【００４５】
受信バッファに記憶されている印刷データは印刷が行われると受信バッファから削除される。上述した例の場合、受信バッファ２の印刷データが全て削除されると、受信バッファ１に記憶されている印刷データが「印刷データが記憶されている受信バッファに対応するインタフェースのうち最も優先度の高いインタフェースに対応する受信バッファに記憶されている印刷データ」となる。
【００４６】
（３）ＰＣ側の印刷処理
図６は、アプリケーションによって表示される印刷画面５１の一例を示す模式図である。アプリケーションによって表示されるメニューでユーザが印刷を選択すると、アプリケーションは表示部に印刷画面５１を表示する。ユーザは印刷画面５１で論理プリンタの選択や優先印刷の選択などを行うことができる（指定処理の一例）。論理プリンタの選択欄５１ｂでは、登録した論理プリンタが選択可能に表示される。
【００４７】
図６では論理プリンタＡが選択されている状態を示している。また、図６において「優先印刷する」は高い優先度（１）を指定することに相当し、「優先印刷しない」は低い優先度（０）を指定することに相当する。
それらの選択を行った後にユーザが［ＯＫ］ボタン５１ａをクリックすると、アプリケーションは以下に説明する印刷処理を実行する。
【００４８】
図７は、アプリケーションを実行するＣＰＵ２１（以下、単に「アプリケーション」という）によって実行されるＰＣ２側の印刷処理の流れを示すフローチャートである。
【００４９】
Ｓ１０１では、アプリケーションは、選択された論理プリンタに対応付けられているプリンタドライバのドライバ名を論理プリンタ情報から取得する。
【００５０】
Ｓ１０２では、アプリケーションは選択された論理プリンタに対応付けられているプリンタドライバが優先印刷可能なプリンタドライバであるか否かを判断する。
具体的には例えば、アプリケーションは取得したドライバ名がドライバ情報に記述されているか否かを判定し、ドライバ情報に記述されていれば優先印刷可能なプリンタドライバであると判断し、記述されていなければ優先印刷可能なプリンタドライバではないと判断する。
アプリケーションは、優先印刷可能なプリンタドライバである場合はＳ１０３に進み、優先印刷可能なプリンタドライバではない場合はＳ１０９に進む。
【００５１】
Ｓ１０３では、アプリケーションは選択された論理プリンタと対になる論理プリンタをＯＳから取得する。
具体的には例えば、選択された論理プリンタの論理プリンタ情報のデバイス・ディスクリプタを参照する。前述したように、デバイス・ディスクリプタから論理プリンタが対応するプリンタを特定することができる。そして、アプリケーションは特定したプリンタと同じプリンタを示すデバイス・ディスクリプタを格納している論理プリンタ情報を取得する。前述したように、論理プリンタＡのデバイス・ディスクリプタと論理プリンタＢのデバイス・ディスクリプタとは同じであるので、選択された論理プリンタが論理プリンタＡである場合は論理プリンタＢが対になる論理プリンタとして取得される。
【００５２】
Ｓ１０４では、アプリケーションは選択された論理プリンタに対応付けられているインタフェースのインタフェース番号Ｘ、及び、対になる論理プリンタに対応付けられているインタフェースのインタフェース番号Ｙを論理プリンタ情報から取得する。
例えば、選択された論理プリンタが論理プリンタＡである場合は、Ｘは０でありＹは１である。一方、選択された論理プリンタが論理プリンタＢである場合は、Ｘは１でありＹは０である。
【００５３】
Ｓ１０５では、アプリケーションは印刷画面５１で優先印刷が選択されたか否かを判断し、優先印刷が選択された場合はＳ１０６に進み、優先印刷が選択されていない場合はＳ１０８に進む。
【００５４】
Ｓ１０６では、アプリケーションは対になる論理プリンタに対応付けられているインタフェースのインタフェース番号Ｙが、選択された論理プリンタに対応付けられているインタフェースのインタフェース番号Ｘより大きいか否かを判定する。
言い換えると、アプリケーションは、対になる論理プリンタが通信に用いるインタフェースの優先度が、選択された論理プリンタが通信に用いるインタフェースの優先度より高いか否かを判定する。
アプリケーションは、インタフェース番号Ｙがインタフェース番号Ｘより大きい場合はＳ１０７に進み、小さい場合はＳ１０９に進む。
【００５５】
Ｓ１０７では、アプリケーションは対になる論理プリンタに切り替える（対になる論理プリンタが選択されている状態にする）。
Ｓ１０８では、アプリケーションは対になる論理プリンタに対応付けられているインタフェースのインタフェース番号Ｙが、選択された論理プリンタに対応付けられているインタフェースのインタフェース番号Ｘより大きいか否かを判定する。
アプリケーションは、インタフェース番号Ｙがインタフェース番号Ｘより小さい場合はＳ１０７に進み、大きい場合はＳ１０９に進む。
ここで、インタフェース番号Ｙがインタフェース番号Ｘより小さい場合にＳ１０７に進むのは、Ｓ１０８が実行されるのは優先印刷を行わないときであるので、優先度の低いインタフェースを介して通信する論理プリンタに切り替えるためである。
【００５６】
Ｓ１０９では、アプリケーションは印刷ページが有るか否かを判定する。
ここで、一つの印刷データは複数枚の被記録媒体に印刷される複数ページ分のデータを含むことができ、印刷ページとはそのうちの１ページ分のデータのことをいう。
アプリケーションは、印刷ページが有る場合はＳ１１０に進み、ない場合は処理を終了する。Ｓ１０９の処理が最初に実行されるときは印刷ページが有るはずであるのでＳ１１０に進むことになる。
【００５７】
Ｓ１１０では、アプリケーションは印刷ページに基づいて印刷命令（処理命令の一例）を生成し、生成した印刷命令と、現在切り替えられている方の論理プリンタを示す論理プリンタ情報とを、現在切り替えられている論理プリンタに対応付けられているプリンタドライバに出力する（出力処理の一例）。なお、論理プリンタ情報を全て出力するのではなく、論理プリンタを示す情報（あるいは論理プリンタを示す情報とその後のプリンタドライバの処理で必要となる情報）のみを出力してもよい。
【００５８】
なお、論理プリンタＡ、Ｂには同じプリンタドライバが対応付けられているので、論理プリンタＡ、Ｂのいずれが選択された場合も同じプリンタドライバに出力される。
優先印刷が選択されている場合は、現在切り替えられている方の論理プリンタを示す論理プリンタ情報として論理プリンタＢを示す論理プリンタ情報が出力され、優先印刷が選択されていない場合は論理プリンタＡを示す論理プリンタ情報が出力されることになる。
【００５９】
ここで、論理プリンタ情報は、「アプリケーションプログラムからデバイスドライバに出力される優先度」の一例である。論理プリンタが一意に特定されればインタフェースが一意に特定され、インタフェースが一意に特定されれば優先度が一意に特定されるからである。
【００６０】
論理プリンタ情報によって示される論理プリンタに対応付けられているプリンタドライバを実行するＣＰＵ２１は、アプリケーションから出力された印刷命令に基づいて印刷データを生成し（生成処理の一例）、論理プリンタ情報によって示されるＵＳＢポート（当該論理プリンタに対応付けられているＵＳＢポート）を介してプリンタ３に印刷データを送信する（送信処理の一例）。すなわち、指定された優先度が設定されているインタフェースを介してプリンタ３に印刷データを送信する。
【００６１】
（４）プリンタ側の印刷処理
図８は、プリンタ３側の印刷処理の流れを示すフローチャートである。本処理はプリンタ３に電源が投入されている間、繰り返し実行される。
Ｓ２０１では、制御部３１は最も優先度の高いインタフェース（インタフェース１）に対応する受信バッファである受信バッファ２に印刷データが有るか否か（記憶されているか否か）を判定し、有る場合はＳ２０２に進み、ない場合はＳ２０５に進む（判断処理の一例）。
【００６２】
Ｓ２０２では、制御部３１は、インタフェース０を介してＵＳＢホスト部２７に受信待機通知を送信する。ＵＳＢホスト部２７はインタフェース０を介して受信待機通知を受信すると、インタフェース０を介して受信待機解除通知を受信するまでインタフェース０を介した新たな印刷データの送信を停止する。
【００６３】
Ｓ２０３では、制御部３１は受信バッファ２から印刷データを読み出す。各受信バッファはＦＩＦＯバッファとして構成されており、制御部３１は受信バッファ２に複数の印刷データが記憶されている場合には、最も先に記憶された印刷データを読み出す。
【００６４】
Ｓ２０４では、制御部３１はＳ２０３で読み出した印刷データを印刷部３２に印刷させる。印刷後、制御部３１はＳ２０１に戻って処理を繰り返す。
制御部３１は印刷後にＳ２０１に戻るので、印刷が終了するまで判断処理は実行されない。すなわち、印刷部３２に印刷データを印刷させているときは判断処理が中断されることになる。
【００６５】
Ｓ２０５では、制御部３１は、インタフェース０を介してＵＳＢホスト部２７に受信待機解除通知を送信する。ＵＳＢホスト部２７はインタフェース０を介して受信待機解除通知を受信すると、インタフェース０を介した新たな印刷データの送信を再開する。なお、Ｓ２０５の処理はＳ２０２が実行された後に最初にＳ２０５が実行された時にのみ実行される。
Ｓ２０６では、制御部３１は受信バッファ１に印刷データが有るか否かを判定し、有る場合はＳ２０７に進み、ない場合はＳ２０１に戻る（判断処理の一例）。
【００６６】
Ｓ２０７では、制御部３１は受信バッファ１から印刷データを読み出す。受信バッファ１に複数の印刷データが記憶されている場合には、制御部３１は最も先に記憶された印刷データを読み出す。
Ｓ２０８では、制御部３１はＳ２０７で読み出した印刷データを印刷部３２に印刷させる。印刷後、制御部３１はＳ２０１に戻って処理を繰り返す。つまり、制御部３１は、印刷が終了すると、最も優先度の高いインタフェースに対応する受信バッファ（受信バッファ２）に戻って再度順に印刷データが有るか否かを判断する。
【００６７】
（５）実施形態の効果
以上説明した本発明の実施形態１に係るプリンタ３によると、先に優先度の低いインタフェースに対応する受信バッファ（受信バッファ１）に印刷データが記憶されていても、優先度の高いインタフェースに対応する受信バッファ（受信バッファ２）に印刷データが記憶されると、受信バッファ２に記憶されている印刷データを先に印刷させるので、優先度に応じて印刷データを並べ替えるといった複雑な処理を行うことなく印刷データを優先度の順で印刷することができる。
よってプリンタ３によると、プリンタ３の処理負担を軽減しつつ印刷データを優先度に応じた印刷順で印刷できる。
【００６８】
更に、プリンタ３によると、印刷部３２に印刷データを印刷させているときは、その印刷が終了してから次の処理に進む。結果として、受信バッファ１に記憶されている印刷データを印刷させている途中で受信バッファ２に印刷データが記憶された場合も、当該印刷中の印刷データの印刷が継続され、その印刷データの印刷が終了した後に、受信バッファ２に記憶された印刷データが印刷される。
つまり、プリンタ３によると、優先度の低いインタフェースに対応する受信バッファに記憶されている印刷データの印刷中に優先度の高いインタフェースに対応する受信バッファに印刷データが記憶されても当該印刷中の印刷データの印刷を中断させない。これにより、制御処理を簡素にできる。
【００６９】
更に、プリンタ３によると、優先度が高いインタフェース（インタフェース１）に対応する受信バッファ（受信バッファ２）に印刷データが記憶されている場合は、その受信バッファに記憶されている全ての印刷データの印刷が終了するまで、優先度が低いインタフェース（インタフェース０）を介した新たな印刷データの送信を待機させる。これにより、優先度の高いインタフェースに対応する受信バッファ（受信バッファ２）に記憶されている印刷データの印刷中は、優先度の低いインタフェースを介した印刷データを受信しないので、優先度の高いインタフェースを介して受信した印刷データを速やかに印刷することができる。
【００７０】
＜実施形態２＞
次に、本発明の実施形態２を図９ないし図１０によって説明する。
実施形態２では、優先度の低いインタフェースに対応する受信バッファ（受信バッファ１）に記憶されている印刷データを印刷部３２に印刷させる処理を別スレッドとして実行し、受信バッファ１に記憶されている印刷データを印刷させているときも優先度の高いインタフェースに対応する受信バッファ（受信バッファ２）に印刷データが記憶されているか否かを判断する。
そして、受信バッファ２に印刷データが記憶されていると判断した場合は、受信バッファ１に記憶されている印刷データの印刷を中断し、受信バッファ２に記憶されている印刷データを先に印刷させる。
【００７１】
図９及び図１０は、実施形態２に係るプリンタ側の印刷処理の流れを示すフローチャートである。ここでは実施形態１と実質的に同一の処理には同一の符号を付して説明を省略する。
Ｓ３０１では、制御部３１は受信バッファ１に記憶されている印刷データを印刷中であるか否かを判定し、印刷中の場合はＳ３０２に進み、印刷中でない場合はＳ２０３に進む。
【００７２】
Ｓ３０２では、制御部３１は受信バッファ１に記憶されている印刷データの印刷を中断させる。なお、印刷の中断は印刷中のページの印刷が終了するのを待って行ってもよい。
Ｓ３０３では、制御部３１は受信バッファ１に記憶されている印刷データの印刷が中断中であるか否かを判定し、中断中である場合はＳ３０４に進み、中断中でなければＳ２０１に戻る。
【００７３】
Ｓ３０４では、制御部３１は受信バッファ１に記憶されている印刷データの印刷を再開させる。
Ｓ３０５では、制御部３１は受信バッファ１に記憶されている印刷データを印刷中であるか否かを判定し、印刷中の場合はＳ２０１に戻り、印刷中でない場合はＳ２０６に進む。
【００７４】
Ｓ３０６では、制御部３１はＳ２０７で読み出した印刷データを印刷部３２に印刷させる。前述したように制御部３１はＳ３０６の処理を別スレッドとして実行する。このため、制御部３１はＳ３０６の処理が終了するのを待つことなくＳ２０１に戻る。これにより、印刷部３２に印刷データを印刷させているときも判断処理が実行されることになる。
実施形態２に係るプリンタはその他の点において実施形態１に係るプリンタと実質的に同一である。
【００７５】
以上説明した本発明の実施形態２に係るプリンタによると、優先度の高いインタフェースに対応する受信バッファ（受信バッファ２）に印刷データが記憶されていると判断した場合は、優先度の低いインタフェースに対応する受信バッファ（受信バッファ１）に記憶されている印刷データの印刷を中断し、受信バッファ２に記憶されている印刷データを先に印刷させる。これにより、優先度の高いインタフェースを介して受信した印刷データをより速やかに印刷させることができる。
【００７６】
なお、実施形態２では優先度の高いインタフェースに対応する受信バッファ（受信バッファ２）に記憶されている印刷データの印刷は別スレッドとして実行しない。そのため受信バッファ２に記憶されている印刷データを印刷させているときは判断処理を中断するが、受信バッファ２に記憶されている印刷データの印刷も別スレッドとして実行することにより、受信バッファ２に記憶されている印刷データを印刷部３２に印刷させているときも判断処理を実行するようにしてもよい。
その場合は、例えばＳ２０１とＳ３０１との間、及び、Ｓ２０４とＳ３０３との間に、受信バッファ２に記憶されている印刷データを印刷中であるか否かを判断する処理を実行し、印刷中である場合はＳ２０１に戻るようにしてもよい。
【００７７】
＜実施形態３＞
次に、本発明の実施形態３を図１１ないし図１３によって説明する。
実施形態３では、優先印刷を行うか否かを、プリンタドライバによって表示される印刷条件設定画面でユーザに選択させ、優先印刷するか否かに応じてプリンタドライバがＵＳＢポートを切り替えることによって優先印刷と通常印刷とを切り替える。
【００７８】
図１１は、実施形態３に係る優先印刷を概念的に説明するための模式図である。実施形態３では、アプリケーションは優先印刷するか否かをユーザに選択させず、ユーザが選択した論理プリンタに対応付けられているプリンタドライバに、印刷命令とユーザが選択した論理プリンタを示す論理プリンタ情報とを出力する。
なお、論理プリンタ情報を全て出力するのではなく、論理プリンタを示す情報（あるいは論理プリンタを示す情報とその後のプリンタドライバの処理で必要となる情報）のみを出力してもよい。
【００７９】
そして、プリンタドライバは、ユーザが優先印刷を選択した場合は、論理プリンタ情報によって示される論理プリンタにＵＳＢ００１が対応付けられていればそれに替えてＵＳＢ００２を対応付け（切り替え）、ＵＳＢ００２を介してプリンタ３に印刷データを送信する。
逆に、ユーザが優先印刷を選択しなかった場合は、論理プリンタ情報によって示される論理プリンタにＵＳＢ００２が対応付けられていればそれに替えてＵＳＢ００１を対応付け（切り替え）、ＵＳＢ００１を介してプリンタ３に印刷データを送信する。
【００８０】
図１２は、印刷画面５２及び印刷条件設定画面５３を示す模式図である。アプリケーションによって表示される印刷画面５２でユーザが［プロパティ］ボタン５２ａをクリックすると、選択されている論理プリンタに対応付けられているプリンタドライバが呼び出される。
ここでは論理プリンタＡが選択されて［プロパティ］ボタン５２ａがクリックされたものとする。この場合、論理プリンタＡに対応付けられているプリンタドライバが呼び出され、呼び出されたプリンタドライバは印刷条件設定画面５３を表示する。なお、論理プリンタＢが選択された場合も同じプリンタドライバが呼び出される。
【００８１】
印刷条件設定画面５３では、用紙サイズ、縦横、カラー／モノクロなどの印刷設定項目毎に設定値を設定することができる。この印刷設定項目の一つとして優先印刷が表示され、ユーザは優先印刷の選択を行うことができる。
ユーザが印刷条件設定画面５３を閉じて印刷画面５２で［ＯＫ］ボタン５２ｂをクリックすると、アプリケーションからプリンタドライバに印刷命令とユーザが選択した論理プリンタを示す論理プリンタ情報とが出力される。
プリンタドライバは印刷命令が出力されると以下に説明する印刷処理を実行する。
【００８２】
図１３は、実施形態３に係るＰＣ側の印刷処理の流れを示すフローチャートである。ここでは実施形態１と実質的に同一の処理には同一の符号を付して説明を省略する。
Ｓ４０１では、論理プリンタ情報によって示される論理プリンタ（ここでは論理プリンタＡ）に対応付けられているプリンタドライバを実行するＣＰＵ２１（以下、単に「プリンタドライバ」という）は、論理プリンタＡに対応付けられているＵＳＢポート（論理プリンタＡで使用するＵＳＢポートとして設定されているＵＳＢポート）のポート名と、そのポート名に対応付けられているインタフェースのインタフェース番号ＸとをＯＳから取得する。
【００８３】
Ｓ４０２では、プリンタドライバは、論理プリンタＡで使用するＵＳＢポートとして設定されているＵＳＢポートと対になっているＵＳＢポートのポート名と、そのポート名に対応付けられているインタフェース番号ＹとをＯＳから取得する。
具体的には、論理プリンタＡの論理プリンタ情報からデバイス・ディスクリプタを参照する。前述したように、デバイス・ディスクリプタから論理プリンタＡが対応するプリンタを特定することができる。そして、アプリケーションは特定したプリンタと同じプリンタを示すデバイス・ディスクリプタを格納している論理プリンタＢに対応付けられているポート名（ＵＳＢ００２）とインタフェース番号（１）とを取得する。
【００８４】
Ｓ４０３では、プリンタドライバは、選択された論理プリンタで使用するＵＳＢポートとして、対になっているＵＳＢポート（ＵＳＢ００２）を設定するようＯＳに要求する。これにより、対になっているＵＳＢ００２が当該選択された論理プリンタで使用するＵＳＢポートとして対応付けられる。
なお、ＯＳによっては、選択された論理プリンタとＵＳＢポートとの対応付けを変更したときに、論理プリンタ情報にもその対応付けを反映する場合もある。その場合は、論理プリンタＡにＵＳＢ００１が対応付けられており、論理プリンタＢにもＵＳＢ００１が対応付けられているといったことが起こる得る。そうなると、優先印刷が選択されているにもかかわらずＵＳＢ００１が用いられてしまう。このようなＯＳの場合には、プリンタドライバは例えばＵＳＢ接続した直後の論理プリンタ情報（図４に示す状態の論理プリンタ情報）をコピーして図示しない不揮発性メモリに記憶しておき、対になっているＵＳＢポートのポート名とそのポート名に対応付けられているインタフェース番号とについては、そのコピーした論理プリンタ情報から取得するようにしてもよい。
Ｓ４０４では、プリンタドライバは印刷データを生成し、選択された論理プリンタで使用するＵＳＢポートとして設定されているＵＳＢポートを介してプリンタ３に印刷データを送信する。
【００８５】
以上説明した本発明の実施形態３に係るプリンタドライバによると、プリンタ３の処理負担を軽減しつつ印刷データを優先度に応じた印刷順で印刷できる。
【００８６】
＜実施形態４＞
次に、本発明の実施形態４を図１４によって説明する。
実施形態４は、実施形態３の変形例である。
図１４は、実施形態４に係る優先印刷を概念的に説明するための模式図である。実施形態３では二つの論理プリンタ（Ａ及びＢ）を登録する場合を例に説明したが、実施形態４では登録する論理プリンタ（図１４では論理プリンタＡ）を一つのみとする。具体的には例えば、２つの論理プリンタを登録した後、いずれか一方の論理プリンタを削除する処理をインストーラに実行させる。
【００８７】
実施形態４の構成によれば、アプリケーションによって表示される印刷画面５２に論理プリンタＢは表示されないことになる。従って、ユーザは印刷画面５２で多数の論理プリンタの中から論理プリンタを選択する必要がなくなり、論理プリンタの選択操作がし易くなる。
実施形態４はその他の点において実施形態３と実質的に同一である。
【００８８】
＜他の実施形態＞
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００８９】
（１）上記実施形態では受信バッファが二つである場合を例に説明したが、受信バッファの数は必要に応じて適宜選択可能である。
【００９０】
（２）上記実施形態１では、アプリケーションによって表示される印刷画面５１でユーザが優先印刷を選択する場合を例に説明したが、印刷画面５１で優先印刷を選択させるのではなく、プリンタの選択欄５１ｂで論理プリンタＡ又は論理プリンタＢを選択させることによって優先印刷するか否かを選択させてもよい。
具体的には、論理プリンタＡが選択された場合は、プリンタドライバは優先度の低いインタフェース（インタフェース０）が対応付けられているＵＳＢポート００１に印刷命令を出力し、論理プリンタＢが選択された場合は優先度の高いインタフェース（インタフェース１）が対応付けられているＵＳＢポート００２に印刷命令を出力してもよい。
選択された論理プリンタに対応付けられているＵＳＢポートに印刷命令を出力することは一般に行われていることであるので、論理プリンタＡ又は論理プリンタＢを選択させることによって優先印刷するか否かを選択させるようにすると、一般に普及している多くのアプリケーションにおいてユーザは優先印刷するか否かを選択することができる。
【００９１】
（３）上記実施形態１では、ＰＣ２はＳ２０２、Ｓ２０５を実行することにより、優先度が高いインタフェース（インタフェース１）に対応する受信バッファ（受信バッファ２）に印刷データが記憶されている場合は、優先度が低いインタフェース（インタフェース０）を介した新たな印刷データの送信を待機するが、待機させずに印刷データを送信させるようにしてもよい。印刷データの送信を待機させない場合には、受信バッファ１がフルになることにより、結果的に、同じ効果が得られることになるからである。
ただし、印刷データの送信を待機させるようにすると、より確実に効果を得ることができる。
【００９２】
（４）上記実施形態では「データ」として印刷データを例に説明したが、データは印刷データに限られない。
例えば、データは印刷データと、プリンタにステータスを問い合わせる問い合わせコマンドとであってもよい。リアルタイムなプリンタのステータスを問い合わせたい場合、受信バッファに記憶されている印刷データの印刷が終了してからでないとその問い合わせコマンドが処理されないとすると、ステータスが得られるまでに待ち時間が生じる。この場合、印刷データは優先度の低いインタフェースを介して送信し、問い合わせコマンドは優先度の高いインタフェースを介して送信するようにすることにより、プリンタに既に印刷データが送信されていてもリアルタイムにステータスを得ることができる。
【００９３】
なお、優先度の高いインタフェースを介して送信するコマンドは問い合わせコマンドに限られず、印刷データより先に処理されることが望ましい任意のコマンドを送信することができる。
【００９４】
（５）上記実施形態ではデータ処理装置としてプリンタを例に説明したが、データ処理装置はプリンタに限られない。例えば、データ処理装置はＰＣから送信されたファクシミリ（ＦＡＸ）データを外部のＦＡＸ装置に送信するＦＡＸ装置であってもよい。この場合、優先度の高いインタフェースに対応する受信バッファに記憶されているＦＡＸデータを、優先度の低いインタフェースに対応する受信バッファに記憶されているＦＡＸデータより先に送信することにより、ＦＡＸ装置の処理負担の増大を抑制しつつＦＡＸデータを優先度に応じた送信順で送信できる。
また、データ処理装置はデータ処理としてデータに何らかの加工（例えば画像処理）を施すものや、データをデータベースに登録する処理を行うものであってもよい。
【００９５】
（６）上記実施形態では優先印刷するか否かをユーザに指定させていたが、予め決められた印刷設定がなされていたら、自動的に優先印刷を行うように指定してもよい。
【００９６】
（７）上記実施形態ではＵＳＢを介して通信する場合を例に説明したが、通信規格はＵＳＢに限られるものではない。例えば、ＴＣＰ／ＩＰネットワークを介して通信する場合に本発明を適用してもよいし、時分割多重方式で一つの物理回線を複数の論理回線に分割して通信を行うその他の通信回線を介して通信する場合に本発明を適用してもよい。
【符号の説明】
【００９７】
１・・・印刷システム
２・・・パーソナルコンピュータ
３・・・プリンタ
５・・・ＵＳＢケーブル
２１・・・ＣＰＵ
２５・・・ディスプレイ駆動回路
２７・・・ＵＳＢホスト部
２８・・・表示装置
２９・・・入力装置
３１・・・制御部
３２・・・印刷部
３４・・・ＵＳＢクライアント部
３５・・・ＲＡＭ
【図１】
0005376253.tif 000002
【図２】
0005376253.tif 000003
【図３】
0005376253.tif 000004
【図４】
0005376253.tif 000005
【図５】
0005376253.tif 000006
【図６】
0005376253.tif 000007
【図７】
0005376253.tif 000008
【図８】
0005376253.tif 000009
【図９】
0005376253.tif 000010
【図１０】
0005376253.tif 000011
【図１１】
0005376253.tif 000012
【図１２】
0005376253.tif 000013
【図１３】
0005376253.tif 000014
【図１４】
0005376253.tif 000015