(57)【特許請求の範囲】
【請求項１】
印刷されたドキュメントを出力するシステムであって、
電子信号を印刷されたドキュメントとして変換し、プリンタの構成状態を有するプリンタと、
プリンタで印刷するドキュメントを定義するプリント信号を送信し、プリンタの構成状態を維持するローカルプリント・レジストリを有する第１クライアントデバイスと、
プリンタで印刷する第２ドキュメントを定義するプリント信号を送信する第２クライアントデバイスと、
プリンタ及び第１および第２クライアントデバイスに接続されていて、プリンタの構成状態を維持するプリントサーバ・レジストリを有するプリントサーバと、
前記プリントサーバ上で動作するソフトウェアであって、プリンタを定期的にポーリングし、そのポーリングの結果とプリントサーバ・レジストリとを比較して、プリンタの構成状態の変化を決定し、プリンタの構成状態の変化を第１クライアントデバイスと第２クライアントデバイスへ転送するステップを当該プリントサーバに実行させるソフトウェアと、を備え、
前記プリントサーバは、構成状態の変化をプリンタからクライアントデバイスへ転送するパイプサーバスレッドを使用することを特徴とするシステム。
【請求項２】
印刷されたドキュメントを出力するシステムであって、
電子信号を印刷されたドキュメントとして変換し、プリンタの構成状態を有するプリンタと、
プリンタで印刷するドキュメントを定義するプリント信号を送信し、プリンタの構成状態を維持するローカルプリント・レジストリを有する第１クライアントデバイスと、
プリンタで印刷する第２ドキュメントを定義するプリント信号を送信する第２クライアントデバイスと、
プリンタ及び第１および第２クライアントデバイスに接続されていて、プリンタの構成状態を維持するプリントサーバ・レジストリを有するプリントサーバと、
前記プリントサーバ上で動作するソフトウェアであって、プリンタを定期的にポーリングし、そのポーリングの結果とプリントサーバ・レジストリとを比較して、プリンタの構成状態の変化を決定し、プリンタの構成状態の変化を第１クライアントデバイスと第２クライアントデバイスへ転送するステップを当該プリントサーバに実行させるソフトウェアと、を備え、
前記プリントサーバは、第１のオペレーティングシステムで動作し、前記第１及び第２のクライアントデバイスは、前記プリントサーバ・レジストリをローカルレジストリとして使用する第２のオペレーティングシステムで動作することを特徴とするシステム。
【請求項３】
前記プリントサーバ・レジストリ内のデータは第１クライアントのローカルレジストリと、第２クライアントの第２ローカルレジストリへ定期的に転送されることを特徴とする請求項１または２に記載のシステム。
【請求項４】
前記転送は、プリンタの構成状態の変化が起きたと、第１クライアントのポーリングおよび第２クライアントによるポーリングが決定したときに起きることを特徴とする請求項１または２に記載のシステム。
【請求項５】
前記プリントサーバは、プリンタ構成状態の変化の知らせを受け取って、プリントサーバ・レジストリを更新するドライバを有することを特徴とする請求項１または２に記載のシステム。
【発明の詳細な説明】
【０００１】
【従来の技術】
コンピュータデータをフォーマットし、データソース（例えばコンピュータ）から出力装置（例えばプリンタ）へコンピュータデータを転送するのに、プリントドライバが長年使用されてきた。しかし、異なる製造者のプリンタは、一般にソフトウェアとハードウェア構成が異なるので、一般に、プリントドライバを特定のプリンタ構成に合うようにカスタマイズする必要がある。プリントドライバをカスタマイズするため、ユーザが関連データをコンピュータにエントリする。
【０００２】
プリンタをカスタマイズするデータをユーザがエントリするのは時間がかかるし、間違いを起こしやすい。このため、プリンタの状態データと構成データを受け取って、処理することができる双方向ドライバが開発された。
【０００３】
しかし、最も広く使用されているオペレーティングシステム、マイクロソフト社の Windows(登録商標)オペレーティングシステムは、双方向ドライバをサポートするように設計されていない。マイクロソフトオペレーティングシステムにおける双方向ドライバの現行手段は、双方向のデータ流れを可能にするためスプーラを迂回する。スプーラを迂回することはマイクロソフト社の仕様書に従っていない。マイクロソフト社の仕様書に従っていないことは、使用する Windows（登録商標）オペレーティングシステムに関係無く、問題を引き起こす。多数のクライアントがプリントサーバを通じてプリンタと通信する Windows NT(登録商標）システムにおいては、一般にシステム・アドミニストレータだけがプリンタサーバ内のプリンタ構成の設定を変更することができるので、プリントスプーラを迂回することはプリントサーバ内のプリンタ情報の更新を妨げる。プリントサーバを使用する Windows９５（登録商標）および Windows９８（登録商標）システムにおいては、Windows（登録商標）はプリンタ構成データをローカルクライアントデータであるとみなし、したがってプリントサーバを更新することができないので、プリントサーバデータは更新されない。
【０００４】
このため、改良された双方向プリントドライバが要望されている。
【０００５】
【発明の実施の形態】
図１は、プリントサーバ１００に結合されたプリンタ１０４を含む、ネットワークで接続されたシステムを示す。プリントサーバ１００は多数のクライアント１０８、１１２、１１６からプリンタ１０４へ印刷するデータを転送する。プリントサーバ１００は、さらに、プリンタ１０４からクライアント１０８、１１２、１１６へプリンタ状態データと構成データを含むプリンタデータを転送する。
【０００６】
データの流れを制御するために、各クライアント１０８、１１２、１１６においてローカルスプーラ・プログラムが進行する。一実施例においては、スプーラ・プログラムはマイクロソフト社の Windows 98（登録商標）または Windows NT（登録商標）など、オペレーティングシステムの一部分である。ユーザがインストールしたポートモニタ内のポートドライバは、プリントスプーラとインタフェースして、プリントスプーラからのデータを、対応するプリンタに適したフォーマットに変換する。たとえば、ゼロックス社製のプリンタと通信する時は、ドキュメントのフォーマッティングをLPRまたはPort 9100プロトコルに従わせるために、Xerox TCP/IPポートモニタをサーバコンピュータにインストールすることができる。プリントモニタはプリンタ構成とプリンタ状態に関するデータを維持する。プリンタ構成データの例に、両面複写情報などのプリンタのセットアップに関する情報、用紙サイズや色を指示することができるトレーおよび封筒情報、および用紙に関する事前印刷されるヘッダ情報、等が含まれる。プリンタ状態データの例に、トナーレベルが低いかどうか、あるいはプリンタ内に紙詰りが起きているかどうかに関する情報が含まれる。本出願の便宜上、プリンタ構成データとプリンタ状態データの両方を含めるため、用語「集約プリンタデータ」を使用する。
【０００７】
単方向プリントモニタは、クライアントコンピュータからプリンタへデータの流れを許すだけである。したがって、プリンタ構成またはプリンタ状態に対する更新はエンドユーザによって手動でエントリされる。前に検討したように、そのようなデータのエントリは間違いを起こしやすい。双方向プリントモニタによって、プリンタは自動的にモニタデータを更新することができる。しかし、Windows NT（登録商標）および Windows 98（登録商標）内の Microsoftスプーラアーキテクチャは、双方向プリントモニタをサポートするように設計されなかった。このため、Microsoftオペレーティングシステムにおいて動作する双方向プリントモニタの最新の実施例においては、プリントデバイスドライバがプリンタのIPアドレスを得て、プリンタを直接アドレスし、オペレーティングシステムのプリントスプーラを迂回する。
【０００８】
オペレーティングシステムのプリントスプーラを迂回することは、Microsoft Windows（登録商標） オペレーティングシステムの現世代のためのオペレーティングシステム・プロトコルを無視する。さらに、オペレーティングシステムのプリントスプーラを迂回することは、プリンタサーバを使用してプリンタ設定を維持し、監視するWindows NT（登録商標）ネットワークにおいては、別の問題を引き起こす。詳細に述べると、プリントサーバを使用してプリンタ設定を維持する場合は、一般に、プリントサーバのローカル構成を変更する権限がプリントサーバのアドミニストレータだけに与えられているので、プリントサーバに接続されたクライアントコンピュータは、保存されたプリンタ構成の設定を変更したり、他の方法で更新することはできない。
【０００９】
Microsoft Windows（登録商標） オペレーティングシステムにおいて双方向プリントドライバを実現し、プリントサーバにおいてプリンタ構成をアップグレードできるように、本発明の一実施例はデータを更新するポーリング法を使用する。図２は、ポーリング「プッシュ」アーキテクチャにおけるデータの通信を示すフローチャートである。ブロック２０４において、ポーリング・デバイス（ポートモニタ内に実現することができる）は、要求信号を定期的にプリンタへ送る。サーバ・アドミニストレータは定期的な要求信号間の時間間隔を設定できる。一般的なプリンタデータの要求は、プリンタ構成データとプリンタ状態データを含むことがあるが、それらに限定されない。プリンタ構成データの例に、用紙の種類、用紙のサイズ、用紙の仕上げ（光沢またはつや消し）、および封筒トレーが含まれる。プリンタ状態データは一般にプリンタ動作の状態を記述している。プリンタ状態データの例に、プリンタの準備は完了したかどうか、プリンタは紙詰まりしているか、あるいはトナーのレベルは低いか、などが含まれる。ブロック２０８において、プリンタは要求信号に答える応答信号を送信する。応答信号は要求されたデータを与える。
【００１０】
ブロック２１２において、プロセッサは前のポーリング要求からの保存されたデータと、ポーリング要求に応じて受け取ったプリンタデータとを比較する。もしポーリングしたデータと保存されたデータとが一致しており、変化が起きなかったならば、制御フラグをセットされなく、システムは、ブロック２１４において、別のポーリング要求を送信するまでのプリセット時間間隔だけ待機する。しかし、もし受け取ったデータが保存されたデータと一致しなければ、プリンタ状態またはプリンタ構成に変化が起きており、ブロック２１６において、対応する制御フラグがセットされる。一実施例においては、ポートモニタマネージャは、制御フラグの設定と保存された設定を用いて、将来のプリンタ命令を指示する。代替実施例においては、ブロック２２０に示すように、ポートモニタマネージャはプリントドライバを起こして、構成変更を行わせる。
【００１１】
ポーリングデバイスがプリンタサーバ内に実現されると、システムを通じてプリンタ構成または状態の変化を「プッシュする」ことができる。ここで使用する用語「プッシュする」は、システムを通じてプリンタからプリントサーバへ、そしてプリントサーバからクライアントへデータを転送することをいう。ブロック２２４において、プリントサーバはプリンタ構成データおよびプリンタ状態データの変化を、プリンタ命令を発したクライアントコンピュータへ送信する。そのような変化を連絡する１つの方法は、制御フラグを送信する方法である。
【００１２】
マイクロソフト社の Windows NT（登録商標）オペレーティングシステムにおいて、プリントドライバに構成の変化を知らせる好ましい方法は、マイクロソフト社が出版したWindows NT DDK(Device Driver Kit)に定義、説明されているPrint Driver Event APIによる方法である。サーバ・レジストリがローカル・レジストリであるとみなされないオペレーティングシステムにおいては、クライアントはパイプサーバスレッドを使用して、制御フラグまたは更新されたプリンタデータをサーバ・レジストリからクライアント・コンピュータへ転送することを要求する。サーバ・レジストリがローカル・レジストリであるとみなされないオペレーティングシステムの例に、Windows 95（登録商標）と Windows 98（登録商標）が含まれる。したがって、前に説明した実施例においては、プリントサーバまたはプリント待ち行列に接続されたクライアントコンピュータは自動的に更新された設定を受け取る。
【００１３】
図３は、Microsoft Windows（登録商標） NT クライアントシステム３０４から複数のプリンタ３０６、３０８、３１０、３１２への考えられるデータ流れ経路を示す。Windows（登録商標） NTプリントサーバ・アーキテクチャの詳細な説明は、前に引用したWindows NT DDKに記載されている。アプリケーション３１４（一般に、Microsoft Power Point（登録商標）または Microsoft Word（登録商標）など、テキストまたは図形を生成するソフトウェア）は、ドキュメントを生成する。アプリケーション３１４は、データ経路３１８で示すように、グラフィックドライバ・インタフェース３１６(GDI)を呼び出すことによってプリントジョブを生成する。グラフィックドライバ・インタフェース３１６はスプールファイルを生成する。専用アプリケーションにおいては、データ経路３２０に沿って示すように、GDIを使用しないで、アプリケーションプログラムがスプールファイルを直接生成する。
【００１４】
プリントプロバイダによって定義される大部分のファンクションは、入力としてプリンタハンドルを要求する。Windows NT（登録商標）オペレーティング環境の例では、クライアントスプーラは、クライアントWinspooler.drv３２２内の OpenPrinterを呼び出すことによってプリンタハンドルを得る。OpenPrinter コマンドの呼出しによって、Winspool.drv ３２２はAPIサーバ３２４(spoolsv.exe)を呼び出す。スプーラの能力は利用可能なAPIファンクションによって定義される。
【００１５】
プリントプロバイダの１つがプリントハンドルを供給し、プリントプロバイダを示すリターン値が指定されたプリンタ名を認識するまで、クライアントスプーラ・ルータ３２６(Windows NT（登録商標）では、spoolss.dll)が各プリントプロバイダの OpenPrinterファンクションを呼び出す。呼び出すプリンタは、ローカルプリンタ、Windows NT（登録商標）を実行しているリモートプリンタ、その他のオペレーティングシステムを実行しているリモートプリンタのいずれでもよい。ローカルプリンタはWin32spl.dll３２８を使用してローカル接続を通じて呼び出される。Windows（登録商標） NTプリントサーバは Win32spl.dll３３０を使用してリモート接続を通じて呼び出すことができる。互換性のある Non Windowsオペレーティングシステムを使用するプリントサーバは、他のProvider DLL３２２を使用して呼び出すことができる。Windows NT（登録商標）および／またはWindows 2000（登録商標）クライアントシステムによってサポートされた Non Windows DLLの例として、Novell NetWareプリントサーバのための Nwprovau.dllと、URLへ送られたプリントジョブを取り扱うHTTPプリントプロバイダのためのinetpp.dllがあるが、それらに限定されない。
【００１６】
カーネルモードまたはポートドライバ・スタック３３４は、クライアントシステム３０４からのオープンプリンタ呼出しを、ローカルプリンタ３０６へ、リモートプリンタ３０７へ、対応するプリンタ３０８、３１０に結合されたネットワーク接続サーバ３３６、３３８へ、そして対応するプリンタ３１２に結合されたWindows NT（登録商標）サーバシステム３４０へ送る。Windows NT（登録商標）サーバシステム３４０は、リモートプリントサーバ・ルータ３４４の所でクライアントシステム３０４からのリモートプロシージャ呼出し(RPC)信号３４２を受け取る。プリントサーバ・ルータ３４４は、サーバLocalspl.dll３４８およびプリントサーバのカーネルモード・ポートドライバスタック３５０を通ってプリンタ３１２へ伝わるそれ自身の OpenPrinterファンクション３４６を生成する。
【００１７】
プリンタの１つがプリンタ・ハンドルを与え、プリンタ３１２を示すリターン値が指定されたプリンタ名を認識するまで、プリンタスプーラ・ルータ３４４は各プリンタ３１２の OpenPrinterファンクションを呼び出す。そのあと、プリンタスプーラ・ルータ３４４はそれ自身のハンドルをクライアントシステム３０４へ戻す。プリントルータ・ハンドルはプリンタ・ハンドルとプリントサーバ・ハンドルの両方を含んでいる。このプリントサーバ・ハンドルはアプリケーション３１４へ戻される。転送されたハンドルによって、アプリケーション３１４は次の呼出しを正しいプリントサーバとプリンタへ送ることができる。
【００１８】
図４は、発明の一実施例において実現されたポートモニタ・アーキテクチャ４００を示す。発明の一実施例においては、図４のポートモニタを使用して、サーバは、ポーリング法を用いてプリンタ状態と構成に関する質問をプリンタへ送信する。プリンタ状態または構成に変化が起きると、ポートモニタはサーバレジストリに保存されたプリンタ構成と状態データを更新する。あるクライアントオペレーティングシステム、たとえば Windows NT（登録商標）は、サーバレジストリをローカルレジストリとして使用する。しかし、別のクライアントオペレーティングシステム、たとえばWindows 95（登録商標）やWindows 98（登録商標）を含む Windows（登録商標）9xシリーズのオペレーティングシステムは、独立したローカルレジストリを保有している。そのようなシステムにおいては、クライアントが定期的にサーバにポーリングし、プリンタ構成および／または状態の変化を決定することができる。そのような変化が検出されると、クライアントはプリンタ構成または状態の変化をサーバ・スレッド(server thread)を通じてサーバから検索することができる。
【００１９】
ブロック４０２は、プロトコルサポート４０４のハードウェアとソフトウェアを含んでおり、プロトコル・サポート４０４は各ポートセルたとえば第１ポート４０６と第２ポート４０８からプリントデータストリームを受け取る。プロトコルサポート４０４は、プリンタへ出力するため、データを変換して、許容可能なプリンタプロトコルに合致するプリントデータストリームにする。一般的なIEEE承認のプロトコルは、他のプロトコルも同様に可能であるが、LPR(Line Print Protocol)、バイト・カウンティング付きLPR、およびAP Socket 9100を含んでいる。
【００２０】
プリントシステムは動的システムであるので、プリンタとクライアントをネットワークに加えることができる。図４のブロック４１０は、プリントサーバにポートを加えるのに使用される構成要素を含んでいる。ブロック４１０において、ポートウィザードソフトウェア４１２は自動プリンタ・ディスカバリ・動的リンク・ライブラリ(DLL: Dynamic Link Library)４１４と通信する。ディスカバリDDL４１４は、ディスカバリAPI４１６を使用して、付属のプリンタまたは利用可能なプリンタを決定する。利用可能なプリンタを決定した後、ポートウィザードソフトウェア４１２は、add port サブルーチン４１８を使用してポートを加える。Configure port サブルーチン４２０は加えられたポートを正しく配置する。プリントスプーラ４２４がオペレーティングシステムの一部分である場合は、ブロック４０２のポート管理ソフトウェアと、ブロック４１０のadd port ソフトウェアは共に、ブロック４２２に示したポートモニタ・アプリケーションプログラム・インタフェース(API: Application Program interface)を使用して、要求をフォーマットして、プリントスプーラへ送信する。オペレーティングシステムがマイクロソフト社の Windows（登録商標）オペレーティングシステムである場合は、ブロック４２２内のポートモニタAPIは、Windows（登録商標）プリントスプーラと通信するのに用いられるマイクロソフト定義のAPIである。
【００２１】
図４において、ポートデバイスデータ・マネージャ４２６は、ポートモニタプリンタ・マネージャ４２８とインタフェースする。発明の一実施例においては、ポートデバイスデータ・マネージャ４２６とポートモニタプリンタ・マネージャ４２８は共にプリンタとクライアントコンピュータ間で情報を転送するプリントサーバの一部分である。
【００２２】
ポートデバイスデータ・マネージャ４２６は、プリントサーバに接続された各プリンタごとに構成データと状態データを維持するロックされた共用メモリ４３０を含んでいる。ポートマネージャAPI４４０は、標準通信プロトコルたとえばSNMPを使用して、プリンタとの通信を管理する。SNMP通信はプリンタ情報を含むテキストベース・ファイルによって制御される。そのようなテキストベース・ファイルの例は、図４に“product config. ini”４２２として含まれている。通信ネットワークすなわち対応する Bidi スレッドたとえば第１ポートスレッド４３２は、構成データ４３４と状態データ４３６をプリンタからロックされた共用メモリ４３０の適当な記憶場所４３８へ伝える。
【００２３】
状態データと構成データを維持する１つの方法は、記憶場所４３８に保存された構成データと状態データを、新しく受け取った構成データと状態データで絶えず置き換えることである。しかし、すべてのクライアントへのすべてのプリンタ構成データと状態データの定期的に繰返される再送信は、過大なネットワークバンド幅を無駄遣いする。プリントサーバからクライアントデバイスへの構成データと状態データの再送信最小限度にするために、構成データまたは状態データのすべての変化を表す適当な制御フラグ４４４を設定することによって、構成データと状態データの変化を集約することができる。発明の一実施例においては、ロックされた共用メモリはさらに制御フラグ４４４も保存する。
【００２４】
記載した通信ネットワークすなわち第１ポートスレッド４３２はプリンタに接続された各ポートごとに複製することができる。たとえば、図４に、第２プリンタ（図示せず）から対応する構成データ４４８と状態データ４５０を受け取る第２ポートスレッド４４６を示す。ロックされた共用メモリ４３０の第２記憶領域４５２は、構成データと状態データのほかに、制御フラグの対応する設定を維持する。第２記憶領域４５２内のデータは、プリントサーバによって使用することができるほか、クライアントコンピュータへ再送信することができる。
【００２５】
ポートモニタプリンタ・マネージャ４２８は、ポートデバイス・マネージャ４２６のロックされた共用メモリ４３０からデータを受け取るマルチタスキング・プリンタマネージャ・スレッド４５４を含んでいる。データは構成データ、状態データ、および／または制御フラグを含むことがある。プリンタ変化通知スレッド４５６はプリントサーバのそれぞれのポートに接続されたプリンタにおける変化を追跡する。Microsoft Windows（登録商標） 環境においてプリンタ変化通知スレッド４５６が実現されると、プリンタ変化通知スレッド４５６は標準Microsoft APIを使用してプリンタ変化を検出することができる。ポートモニタプリンタ・マネージャ４２８は、プリンタ変化通知スレッド４５６とプリンタマネージャ・スレッド４５４からの情報と、プリンタリスト４５８に保存された利用可能プリンタデータとポートリスト４６０に保存された利用可能ポートデータとを統合する。プリンタリスト４５８に識別されたプリンタは、一般にプリンタに対応するリジストリ４６８内の対応するエントリを有する。プリンタリスト４５８内の各プリンタエントリは、プリンタ名、デバイスId、ポート名、ポートハンドル、構成Id、状態Id、およびプリンタイベントを含むことがあるが、それらに限定されない。ポートリスト４６０は、各ポートに関係のあるデータたとえばポートハンドル、および前の制御状態を含むことがあるが、それらに限定されない。
【００２６】
プリントマネージャ・スレッド４５４は、プリンタリスト４５８、ポートリスト４６０、及びロックされた共用メモリ４３０から受け取ったデータを集約し、集約されたデータを、プリンタレジストリ４６８内の集約データ領域４６９へ送る。その他に、プリントマネージャ・スレッド４５４はプリントドライバ４６２に変化を知らせる。プリントドライバ４６４は集約されたデータ４６９をプリントドライバ４６２に適合する内部フォーマットデータ４７１へ変換する。内部フォーマットデータ４７１は、プリンタレジストリ４６８の対応する領域に保存される。一般的なプリントドライバの動作は、Microsoft Windows NT DDKに記載されている。
【００２７】
クライアント４６４がローカルプリントドライバを維持し、したがってサーバプリントドライバの使用を自動的に受け継がないとき、（そのようなオペレーティングシステムの例としては、Microsoft Windows 95（登録商標）および／または Windows 98（登録商標）を使用して動作するクライアントコンピュータと呼ばれるWindows（登録商標）9xクライアントがある。）  クライアント４６４はパイプサーバ・スレッド４６６が集約されたデータ４６９を検索することを要求する。パイプサーバ・スレッド４６６は、データ要求コマンドばかりでなく、パイプサーバ・スレッド４６６が生成した構成および状態情報の応答のクライアント送信の両方を実行または容易にすることができる。
【００２８】
一部のクライアントはローカルドライバとしてプリントサーバドライバの使用を受け継ぐオペレーティングシステムを使用するかもしれない。そのようなオペレーティングシステムの一例は Windows NT（登録商標）オペレーティングシステムである。各 Windows NT（登録商標）クライアント、たとえばクライアント４７０はレジストリ４６８から直接データにアクセスできる。
【００２９】
図５は、双方向通信を制御する手段を提供することができるユーザインタフェースの一例である。画面５０４に、ポート設定の要約５０６が提供されている。それらのどの値も、Backボタン５０８を選択して、選択した特性を変更することによって、それらの値のどれでも修正できる。ポート構成の完了はFinishボタン５１２を作動させることによって達成できる。
【００３０】
図６の画面５１６に、ポートを構成する追加の詳細な手続を示す。画面５１６の双方向セッティング・セクション５２０によって、ユーザは双方向通信を使用可能または使用不能にすることができる。さらに、画面５１６の対応する時間間隔ボックス５２４、５２８に記入することによって、ユーザはプリンタ構成の更新およびプリンタ状態の更新の間の時間間隔を定義することができる。
【００３１】
以上の説明は例証するつもりであることは理解されるであろう。説明した実施例から、この分野の専門家はその変更や修正を思い浮かべるであろう。たとえば、説明の焦点は、プリンタと Windows（登録商標）オペレーティングシステムを実行しているクライアント間のデータの転送であった。しかし、説明したオペレーティングシステムに似たアーキテクチャを使用する他のオペレーティングシステムも同様に説明した発明を具体化することができる。さらに別の例として、説明したプリンタ状態データとプリンタ構成データの例のほかに、異なる形式のプリンタデータを転送することができる。したがって、そうでないと指示されないかぎり、この説明は特許請求の範囲を限定すると解釈すべきでない。
【図面の簡単な説明】
【図１】プリントサーバを通じてプリンタと通信するクライアントデバイスを含むネットワークシステムを示すブロック図である。
【図２】データ「プッシュ」構成内の双方向プリントドライバの動作を示すフローチャートである。
【図３】プリントプロバイダ内の考えられるデータ流れの略図である。
【図４】  Windows（登録商標）オペレーティングシステムに使用する考えられるデータ流れを含む考えられるポートモニタ・アーキテクチャの略図である。
【図５】ポート情報および双方向通信設定をセットアップするための考えられるユーザインタフェース・ディスプレイの第１の例を示す図である。
【図６】プリンタ状態データと構成データをモニタする際に用いられるポーリング情報を調整するための考えられるユーザインタフェース・ディスプレイの第２の例を示す画面を示す図である。
【符号の説明】
１００  プリントサーバ
１０８  クライアント
１０４  プリンタ
３０４  Windows NT（登録商標）クライアントシステム
３１２  プリンタ
３１４  アプリケーション
３１６  グラフィックス・ドライバ・インタフェース
３１８、３２０  データ経路
３２２  Winspool.drv
３２４  APIサーバ
３２６  スプーラルータ
３２８  localspl.dll
３３０  Win32spl.dll
３３２  他のProvider DLL
３３４  ポートドライバスタック
３３６、３３８  ネットワークで接続されたサーバ
３４０  Windows NT（登録商標）サーバシステム
３４２  リモートプロシージャ呼出しインタフェース(RPC)信号
３４４  リモートプリントサーバ・ルータ
３４６  OpenPrinter ファンクション
３４８  Localspl.dll
３５０  ポートドライバ・スタック
４００  ポートモニタ・アーキテクチャ
４０４  プロトコルサポート
４０６  第１ポート
４０８  第２ポート
４１２  ポートウィザード・ソフトウェア
４１４  ディスカバリ・リンク・ライブラリ(DLL)
４１６  ディスカバリAPI
４１８  add port サブルーチン
４２０  configure port サブルーチン
４２４  プリントスプーラ
４２６  ポートデバイスデータ・マネージャ
４２８  ポートモニタプリンタ・マネージャ
４３０  ロックされた共用メモリ
４３２  第１ポートスレッド
４３４  構成データ
４３６  状態データ
４３８  記憶場所
４４０  ポートマネージャAPI
４４２  Product config.ini
４４４  制御フラグ
４４６  第２ポートスレッド
４４８  構成データ
４５０  状態データ
４５２  第２記憶領域
４５４  プリントマネージャ・スレッド
４５６  プリンタ変化通知スレッド
４５８  プリンタリスト
４６０  ポートリスト
４６２  プリンタドライバ
４６４  クライアント
４６６  パイプサーバスレッド
４６８  プリンタレジストリ
４６９  集約されたデータ
４７１  内部フォーマットデータ
５０４  画面
５０６  要約
５０８  Backボタン
５１２  finishボタン
５１６  画面
５２０  双方向セッティング・セクション
５２４、５２８  時間間隔ボックス
【図１】
0004705272.tif 000002
【図２】
0004705272.tif 000003
【図３】
0004705272.tif 000004
【図４】
0004705272.tif 000005
【図５】
0004705272.tif 000006
【図６】
0004705272.tif 000007