(57)【要約】【課題】  周辺装置制御部が複数の周辺装置で共通で利用可能な周辺装置を同一のポートに複数接続した場合でも、周辺装置制御部の初期化が常に行われ、周辺装置制御部を正常に初期化することができる周辺装置制御方法を提供する。【解決手段】  上記の課題を解決するために、本発明の周辺装置制御システムは、  周辺装置制御部と、  前記周辺装置制御部を情報処理装置に登録する周辺装置制御部登録手段とを有する情報処理装置と、  前記情報処理装置に接続された周辺装置とを有する周辺装置制御システムであり、  前記周辺装置制御部登録手段は、前記周辺装置用に前記周辺装置制御部を情報処理装置に登録する際に、登録名を前記周辺装置毎に変更して、  前記周辺装置制御部を情報処理装置に登録することを特徴とする。【選択図】  図７
2008234301.tif 000002
【特許請求の範囲】
【請求項１】
周辺装置制御部と、
前記周辺装置制御部を情報処理装置に登録する周辺装置制御部登録手段とを有する情報処理装置と、
前記情報処理装置に接続された周辺装置とを有する周辺装置制御システムにおいて、
前記周辺装置制御部登録手段は、前記周辺装置用に前記周辺装置制御部を情報処理装置に登録する際に、登録名を前記周辺装置毎に変更して、
前記周辺装置制御部を情報処理装置に登録することを特徴とする周辺装置制御システム。
【請求項２】
周辺装置制御部が複数の周辺装置で共通で利用できる場合でも、
周辺装置制御部を情報処理装置に登録する際は、登録名は周辺装置毎に変更して情報処理装置に登録することを特徴とする請求項１の周辺装置制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に接続された周辺装置を制御する周辺装置制御システムに関するものである。
【背景技術】
【０００２】
コンピュータなどの情報処理装置に接続されるインクジェットプリンタ、レーザービームプリンタなどの周辺装置の管理方法として、Ｗｉｎｄｏｗｓ（登録商標）２０００、ＸＰなどのＯＳでは、Ｌａｎｇｕａｇｅ Ｍｏｎｉｔｏｒ（以下、ＬＭとも示す）という周辺装置と通信を行うモジュールが登録できる仕組みになっている。
【０００３】
プリンタドライバや、周辺装置のステータスを表示するアプリケーションは、ＬＭと通信を行い、周辺装置のステータスを表示したり、ステータスに応じて、プリンタドライバのＵＩ表示を変更したりしている。
【０００４】
例えば特許文献１では、印刷前にＬＭを経由してインク情報を取得し、印刷データとミスマッチの場合は警告を表示する方法が開示されている。
【特許文献１】特開２００６−１１３７２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
印刷や後述するＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）などにＡＰＩによってＬＭへのアクセスが発生する際、最初にＬＭの初期化関数であるＯｐｅｎＰｏｒｔ（）という関数がＳｐｏｏｌｅｒより呼ばれる。
【０００６】
ＯｐｅｎＰｏｒｔ（）のパラメータには、プリンタ名が渡され、ＬＭは内部処理で使用するためにプリンタ名をメモリ領域に覚えておくことができる。
【０００７】
ＬＭが複数の周辺装置で共通で利用可能な場合、ＬＭの登録名は各周辺装置で共通にすることができる。
【０００８】
ところがＷｉｎｄｏｗｓ（登録商標）２０００、ＸＰなどのＯＳでは、ＬＭの登録名が同一な複数の周辺装置を同一のポートに接続した場合、ＬＭの初期化関数であるＯｐｅｎＰｏｒｔ（）は一度しか呼ばれないという問題があった。
【０００９】
例えば、ＬＭのモジュールおよび登録名が同一のプリンタＡとプリンタＢを、ＬＰＴ１へ順にインストールする。
【００１０】
プリンタＡに対して印刷が行われると、ＬＭのＯｐｅｎＰｏｒｔ（）が呼ばれる。次にプリンタＢに対して印刷が行われると、ＬＭのＯｐｅｎＰｏｒｔ（）は呼ばれない。このため、プリンタＢで印刷が行われているにもかかわらず、ＬＭがメモリに覚えているプリンタ名は”プリンタＡ”のため、ＬＭが誤動作する問題が発生していた。
【００１１】
例えば、プリンタＢのＬＭが、プリンタから受け取ったステータスをプリンタＢのドライバＵＩに、レジストリ経由で通知する場合、メモリに覚えているプリンタ名 ”プリンタＡ” を用いて誤ったレジストリパスを作成してしまい、そのパスにステータスを書き込んでしまう。一方、プリンタＢのドライバＵＩは、”プリンタＢ”で指定されるレジストリパスからプリンタのステータスを読み込む。このため、プリンタＢのＬＭからプリンタＢのドライバＵＩへのプリンタのステータスの通知がうまくいかない。
【００１２】
本発明は、これらの問題に着目し、ＬＭが複数の周辺装置で共通で利用可能な周辺装置を同一のポートに複数接続した場合でも、ＬＭの初期化関数のＯｐｅｎＰｏｒｔ（）が常に呼ばれ、ＬＭの内部情報を正常に初期化することができる周辺装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明の周辺装置制御システムは、
周辺装置制御部と、
前記周辺装置制御部を情報処理装置に登録する周辺装置制御部登録手段とを有する情報処理装置と、
前記情報処理装置に接続された周辺装置とを有する周辺装置制御システムであり、
前記周辺装置制御部登録手段は、前記周辺装置用に前記周辺装置制御部を情報処理装置に登録する際に、登録名を前記周辺装置毎に変更して、
前記周辺装置制御部を情報処理装置に登録することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、周辺装置制御部が複数の周辺装置で共通で利用可能な周辺装置を同一のポートに複数接続した場合でも、周辺装置制御部の初期化が正常に行われ、周辺装置制御部が正常に動作することができる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照して、本発明の実施形態例を詳細に説明する。
【００１６】
＜本実施形態の周辺装置制御システムの構成例＞
図１は、本実施形態に係る情報処理装置及び周辺装置からなる周辺装置制御システムを実現した時のシステムの構成例を表すブロック図である。
【００１７】
図１において、１０１は情報処理装置であり、一般的なPCで構成される。
【００１８】
ＰＣ１０１は図２で後述するハードウェアで構成される。
【００１９】
ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）として、米国マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）ＸＰがインストールされている。
【００２０】
１０６はプリンタであり、カラーインクジェットプリンタで構成され、本実施形態における周辺装置である。
【００２１】
プリンタ１０６は、図３で後述するようなハードウェアで構成され、ＰＣ１０１とセントロニクスインタフェース１０５を介して接続されており、互いに双方向通信が可能である。
【００２２】
１０４は、Language Monitor（以下、ＬＭとも示す）であり、Ｗｉｎｄｏｗｓ（登録商標）用のダイナミックリンクライブラリで構成される。
【００２３】
１０２は、プリンタドライバである。
【００２４】
１０３は、レジストリである。
【００２５】
プリンタドライバ１０２やＬＭ１０４は、レジストリ１０３に任意の情報を格納したり参照することができる。
【００２６】
また、レジストリ１０３には、プリンタ１０６に対応するＬＭの登録名及びモジュール名が格納される。
【００２７】
（ＰＣのハードウエア構成例）
図２は、ＰＣ１０１のハードウェア構成例を示すブロック図である。
【００２８】
図２において、ＰＣ１０１は、演算制御用の制御部であるＣＰＵ８０４により制御される。
【００２９】
ＣＰＵ８０４は、ランダムアクセスメモリ部（ＲＡＭ８０１）を一時記憶部として使用し、記憶部であるハードディスクドライブ部（ＨＤＤ８０２）からＲＡＭ８０１にロードされたプログラムにしたがってＰＣを制御する。
【００３０】
入力部の一例であるキーボード部（ＫＢＤ８０３）はデータ入力あるいは動作指示に使用され、表示部の一例である表示用ディスプレイ（ＬＣＤ８０６）はデータ表示や状態報知に使用される。
【００３１】
通信制御部の一例であるネットワークボード（ＮＢ８０５）は、ネットワークを介する通信を行なう。
【００３２】
インタフェース部（Ｉ／Ｆ部８０８）は、周辺機器（本例ではプリンタ）との接続を制御する。
【００３３】
バス８０７が、以上のＰＣの構成要素を互いに接続する。
【００３４】
記憶部８０２は、可搬性ＣＤ−ＲＯＭまたは内部据付のＲＯＭ、メモリカードなどであってもよく、プリントする画像データなどの大容量のデータや本実施形態で使用されるプログラムが記憶される。
【００３５】
（プリンタのハードウエア構成例）
図３は、プリンタのハードウェア構成例を示すブロック図である。
【００３６】
図３において、プリンタ１０６は、インタフェース部（Ｉ／Ｆ部）９０２と、ＲＡＭ９０３と、ＲＯＭ９０４と、ＣＰＵ９０５と、エンジン９０６とを有する。
【００３７】
そして、Ｉ／Ｆ部９０２は、コンピュータ（ＰＣ）のセントロニクスインタフェース（Ｉ／Ｆ部８０８）に接続してある。
【００３８】
ＲＯＭ９０４は制御プログラム等がストアしてある。
【００３９】
ＣＰＵ９０５は、ＲＯＭ９０４にストアしてある制御プログラムに従ってプリンタ１０６の各部を制御するものである。
【００４０】
又、ＲＡＭ９０３は、ＣＰＵ９０５の主メモリとワークメモリとして用いられ、受信したデータを一旦保存するための受信バッファを有する。
【００４１】
エンジン９０６は、ＲＡＭ９０３に保存されたデータに基づきプリントを行うものである。
【００４２】
尚、大容量の画像データを保持するためのＨＤＤなどを有してもよい。
【００４３】
本実施形態における周辺装置のエンジン９０６としてはインクジェット方式を例に説明を行うが、これに限定されることなく、例えば、電子写真方式、熱転写方式等のエンジン（媒体への記録手段）等を適用することもできる。
【００４４】
（本実施形態の周辺装置制御システムの動作例）
図４は、本実施形態に係る情報処理装置および周辺装置からなる周辺装置制御システムのソフトウェア機能例を示すブロック図である。
【００４５】
図４において、２０１はＰＣ１０１のソフトウェア構成例である。ここでは、本実施形態に関係あるソフトウェアのみを示す。
【００４６】
ＯＳ（Operating System）として米国マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）ＸＰがインストールされている。
【００４７】
２０２はプリンタドライバであり、印刷メディアや給紙方法など印刷に関わる設定を行うＵＩを備えている。
【００４８】
プリンタドライバ２０２の名称は、プリンタドライバ１である。
【００４９】
プリンタドライバ２０２は文書作成ソフトウェア等のアプリケーションデータを、プリンタが印刷できるデータ形式に変換して印刷データを作成し、スプーラ２０３に送る。
【００５０】
スプーラ２０３は、印刷データを管理するモジュールである。
【００５１】
ＬＭ２０４は、データの通信Ｉ／Ｆとしてデータの送受信を制御する。
【００５２】
ＬＭ２０４の実体は、ＬＭ．ＤＬＬというダイナミックリンクライブラリである。
【００５３】
ＬＭ２０４は、プリンタ２０６用としてレジストリ２０７に登録されており、登録名は、ＬＭ１である。
【００５４】
２０５はセントロニクスインタフェースであり、双方向通信が可能な公知のインタフェースである。
【００５５】
ポート番号として、ＬＰＴ１が割り当てられている。
【００５６】
２０６はカラーインクジェットプリンタで本実施形態における周辺装置である。プリンタ名は、プリンタ１である。
【００５７】
２０７は、ＯＳやアプリケーションの情報を格納するレジストリである。
【００５８】
これはＷｉｎｄｏｗｓ（登録商標）ＸＰの枠組みで提供される機能である。
【００５９】
このレジストリの中に、プリンタ２０６に対応するＬＭの登録名及びモジュール名が書き込まれている。
【００６０】
プリンタドライバ２０２とＬＭ２０４は、レジストリ２０７に任意の情報を格納したり参照することができる。
【００６１】
２０８はドライバインストールパッケージである。
【００６２】
図５は、ドライバインストールパッケージ２０８の構成を示すブロック図である。
【００６３】
１００１は、ＩＮＦファイルである。
【００６４】
ＩＮＦファイル１００１には、プリンタ２０６や後述するプリンタ２１１に対応するプリンタドライバやＬＭのモジュール名やＬＭの登録名が記述されており、プリンタ２０６やプリンタ２１１に対応するプリンタドライバとＬＭをＰＣ１０１にインストールする時に参照される。
【００６５】
１００２は、ＬＭのモジュールファイルであり、ダイナミックリンクライブラリとして構成されている。
【００６６】
１００３は、プリンタドライバのモジュールファイルであり、ダイナミックリンクライブラリとして構成されている。尚、１００２及び１００３において、モジュールファイルは1つである必要はなく、複数で構成されていてもかまわない。
【００６７】
図６は、ＰＣ１０１からプリンタ２０６を取り外して替わりにプリンタ２１１をプリンタ２０６と同一のセントロニクスインタフェース２０５に接続したときのブロック図である。
【００６８】
図４との差分についてのみ説明する。
【００６９】
２０９は、プリンタ２１１に対応するプリンタドライバであり、名称は、プリンタドライバ２である。
【００７０】
２０４は、プリンタ２１１に対応するＬＭであり、プリンタ２０６用のものと同一である。
【００７１】
プリンタ２１１用としてレジストリ２０７に登録されており、登録名は、ＬＭ２である。
【００７２】
図７は、ドライバインストールパッケージ２０８内のＩＮＦファイル１００１の記述例を表す図である。
【００７３】
ここでは本実施形態に係るＬＭに関する部分についてのみ説明する。
【００７４】
尚、ＩＮＦファイルのフォーマットに関してはＭｉｃｒｏｓｏｆｔ（登録商標）  Ｄｅｖｅｌｏｐｅｒ  Ｎｅｔｗｏｒｋ（以下、ＭＳＤＮ）で公開されている。
【００７５】
３０１、３０３は、ＤＤＩｎｓｔａｌｌ Ｓｅｃｔｉｏｎである。
【００７６】
３０１はプリンタ２０６のＬＭに関する情報が記述されている。
【００７７】
３０３はプリンタ２１１のＬＭに関する情報が記述されている。
【００７８】
３０２、３０４は、ＬａｎｇｕａｇｅＭｏｎｉｔｏｒ  ｅｎｔｒｙ であり、ＬＭの登録名とモジュール（ダイナミックリンクライブラリ）名が記述されている。
【００７９】
３０２、３０４では、ＬＭの登録名とモジュール名に関して３０５、３０６を参照するように記述されている。
【００８０】
３０５、３０６は、実際のＬＭの登録名とモジュール名に関する情報が記述されている。
【００８１】
３０５の記述より、プリンタ２０６のＬＭの登録名は、ＬＭ１、モジュール名は、ＬＭ．ＤＬＬ であることが分かる。
【００８２】
３０６の記述より、プリンタ２１１のＬＭの登録名は、ＬＭ２、モジュール名は、ＬＭ．ＤＬＬ であることが分かる。
【００８３】
尚、ＤＤＩｎｓｔａｌｌ Ｓｅｃｔｉｏｎ、ＬａｎｇｕａｇｅＭｏｎｉｔｏｒ  ｅｎｔｒｙに関してはＭＳＤＮで公開されている公知の情報である。
【００８４】
以上図７の記述により、プリンタ２０６とプリンタ２１１のＬＭのモジュールは、共通でＬＭ２０４あるが、登録名が異なることがわかる。
【００８５】
図８は、ドライバインストールパッケージ２０８を用いてプリンタドライバ２０２、プリンタドライバ２０９をＰＣ１０１にインストールする手順を示すフローチャートである。
【００８６】
インストール手順は、プリンタドライバ２０２、プリンタドライバ２０９で同一である。
【００８７】
ここではプリンタドライバ２０２を例に説明する。
【００８８】
ＩＮＦファイル１００１は図７で説明した記述が書かれている。
【００８９】
インストール処理は、プリンタ２０６がＰＣ１０１に接続されたとき、ＯＳによってＰｌｕｇ ＡＮＤ Ｐｌａｙ処理が開始されたときに開始される。
【００９０】
もしくは、ユーザがＯＳのＡｄｄ Ｐｒｉｎｔｅｒ Ｗｉｚａｒｄにより手動で開始することもできる。
【００９１】
ここで、Ｐｌｕｇ ＡＮＤ ＰｌａｙとＡｄｄ Ｐｒｉｎｔｅｒ Ｗｉｚａｒｄは、Ｗｉｎｄｏｗｓ（登録商標）ＸＰが提供する機能である。
【００９２】
Ｐｌｕｇ ＡＮＤ Ｐｌａｙ、もしくはＡｄｄ Ｐｒｉｎｔｅｒ Ｗｉｚａｒｄによりインストール処理が開始され（Ｓ４０１）、プリンタドライバ、ＬＭのインストール処理が開始される（Ｓ４０２）。
【００９３】
Ｓ４０２の処理を図９のフローチャートを用いて詳細に説明する。
【００９４】
ここでは本実施形態に係るＬＭのインストール処理の手順のみ示す。
【００９５】
ＩＮＦファイル１００１の記述から、プリンタ２０６に対応するＬＭのモジュール名はＬＭ．ＤＬＬつまり、ＬＭ２０４であることが分かる。
【００９６】
ＬＭ２０４がＯＳ指定の場所にコピーされる（Ｓ５０２）。
【００９７】
ＯＳ指定の場所は、Ｗｉｎｄｏｗｓ（登録商標）ＸＰの場合は、ｓｙｓｔｅｍ３２フォルダである。
【００９８】
またＩＮＦファイル１００１の記述から、プリンタ２０６に対応するＬＭの登録名が、ＬＭ１であることが分かる。ＬＭのモジュール名および登録名がレジストリ２０７に登録される（Ｓ５０３）。登録されたモジュール名は、ＬＭ．ＤＬＬ、登録名は、ＬＭ１である。
【００９９】
以上でＬＭ２０４のインストール処理およびプリンタドライバ２０２のインストール処理は終了する（Ｓ５０４）。
【０１００】
図８の説明に戻る。
【０１０１】
次にＩｎｓｔａｌｌ ＥｖｅｎｔがＷｉｎｄｏｗｓ（登録商標）ＸＰによって発生し（Ｓ４０３）、プリンタドライバ２０２のＥｘｐｏｒｔ関数である
ＤｒｖＰｒｉｎｔｅｒＥｖｅｎｔ（）が呼ばれる（Ｓ４０４）。
【０１０２】
ＤｒｖＰｒｉｎｔｅｒＥｖｅｎｔ（）の処理で、プリンタドライバ２０２はＧｅｔＰｒｉｎｔｅｒＤａｔａ（）をコールする（Ｓ４０６）。
【０１０３】
すると、ＬＭ２０４のＥｘｐｏｒｔ関数であるＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）が呼ばれるが、その前にＬＭ２０４を初期化するために同じくＬＭ２０４のＥｘｐｏｒｔ関数であるＯｐｅｎＰｏｒｔ（）が呼ばれる（Ｓ４０８）。
【０１０４】
Ｓ４０８でＬＭ２０４は初期化処理を行う。初期化処理の詳細は図１０で説明する。
【０１０５】
次に、ＬＭ２０４のＥｘｐｏｒｔ関数であるＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）が呼ばれる（Ｓ４０９）。
【０１０６】
ＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）の処理の詳細は図１２で説明する。
【０１０７】
ＬＭ２０４がＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）の処理を終えると、プリンタドライバ２０２は、ＤｒｖＰｒｉｎｔｅｒＥｖｅｎｔ（）の処理を終了し（Ｓ４０７）、インストール処理が終了する（Ｓ４０４）。
【０１０８】
ここで、
Ｉｎｓｔａｌｌ Ｅｖｅｎｔ、
ＤｒｖＰｒｉｎｔｅｒＥｖｅｎｔ（）、
ＧｅｔＰｒｉｎｔｅｒＤａｔａ（）
ＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）、
ＯｐｅｎＰｏｒｔ（）
は、ＭＳＤＮで公開されている公知の情報である。
【０１０９】
図１０は、ＬＭ２０４のＯｐｅｎＰｏｒｔ（）での初期化処理の詳細を示すフローチャートである。
【０１１０】
ＯｐｅｎＰｏｒｔ（）の処理が開始され（Ｓ６０１）、ＬＭ２０４は、ポート情報構造体を作成する（Ｓ６０２）。
【０１１１】
ポート情報構造体の詳細については、図１１で説明する。
【０１１２】
ＬＭ２０４は、ＯｐｅｎＰｏｒｔ（）の引数の１つとして渡されるプリンタ名をポート情報構造体のメンバに格納する（Ｓ６０３）。
【０１１３】
ＬＭ２０４は、ポート情報構造体のアドレスを、ＯｐｅｎＰｏｒｔ（）の引数の１つであるpHandleにセットして（Ｓ６０４）、ＯｐｅｎＰｏｒｔ（）の処理を終了する（Ｓ６０５）。
【０１１４】
ＯｐｅｎＰｏｒｔ（）の引数に関しては、ＭＳＤＮで公開されている。
【０１１５】
図１１は、ポート情報構造体の詳細を説明するブロック図である。
【０１１６】
ここでは、本実施形態に関係のある部分のみを説明する。
【０１１７】
pszPrinterNameメンバには、プリンタ名が格納される。
【０１１８】
ここでは、”プリンタ１”が格納される。
【０１１９】
図１２は、ＬＭ２０４のＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）の処理の詳細を示すフローチャートである。
【０１２０】
ＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）の処理が開始され（Ｓ７０１）、ＬＭ２０４は、セントロニクスインタフェース２０５を経由してプリンタ２０６からプリンタのステータスを取得する（Ｓ７０２）。
【０１２１】
ＬＭ２０４は、ＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）の引数として渡されるポート情報構造体のpszPrinterNameメンバを参照し、レジストリパスを作成する（Ｓ７０３）。
【０１２２】
レジストリパスは以下のようになる。
【０１２３】
HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\Print\Printers
\プリンタ１\PrinterDriverData
ＬＭ２０４はこのレジストリパスにＳ７０２で取得したプリンタのステータスを書き込み（Ｓ７０４）、ＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）の処理を終了する。
【０１２４】
図１３は、ＬＭ２０４がレジストリに書き込んだプリンタのステータスの一例を示す図である。
【０１２５】
ここでは、レジストリパス
HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\Print\Printers
\プリンタ１\PrinterDriverData 
に、ＬＭ２０４が、プリンタ２０６から取得したプリンタのステータスが書き込まれている。
【０１２６】
プリンタのステータスは、プリンタ２０６がプリンタブルディスク（ＣＤ−Ｒ）印刷に対応しているか否かに関するもので、
値の名前    ＣＤ−Ｒ
値の型      ＲＥＧ＿ＳＺ
値          ＯＮ
と書き込まれており、プリンタ２０６がプリンタブルディスク（ＣＤ−Ｒ）印刷に対応していることが分かる。
【０１２７】
以上説明した処理が、プリンタドライバ２０９の場合でも同様に行われる。
【０１２８】
プリンタ２１１に対応するＬＭのモジュールは、プリンタ２０６と同じＬＭ２０４である。
【０１２９】
しかしＳ５０３にて、プリンタ２１１に対応するＬＭの登録名は、プリンタ２０６とは別の ＬＭ２ としてレジストリ２０７に登録される。
【０１３０】
このため、プリンタ２１１が、プリンタ２０６と同じセントロニクスインタフェース２０５に接続されていても、
ＬＭの登録名が異なるため、Ｓ４０８でＬＭ２０４の初期化関数であるＯｐｅｎＰｏｒｔ（）が正常に呼ばれる。
【０１３１】
ＬＭ２０４の初期化が正常に行われるため、ＬＭ２０４はＳ７０２〜Ｓ７０４にて正しいレジストリパスにプリンタのステータスを書き込むことができる。
【０１３２】
図１４は、プリンタドライバ２０２が印刷設定を行うために表示するＵＩ画面の一例である。
【０１３３】
ＵＩ８０１上には、ユーザが印刷する用紙の種類を設定できるコンボボックス８０２が配置されている。
【０１３４】
用紙の種類として、普通紙、フォト用紙、プリンタブルディスク（ＣＤ−Ｒ）が選択可能である。
【０１３５】
図１５は、図１４のＵＩを表示するためのプリンタドライバ２０２の処理を示すフローチャートである。
【０１３６】
プリンタドライバ２０２の処理が開始され（Ｓ９０１）、プリンタドライバ２０２はレジストリ２０７を参照し、プリンタ２０６のプリンタのステータスを取得する（Ｓ９０２）。レジストリのパスは図１３で説明したパスが使われる。
【０１３７】
プリンタ２０６がプリンタブルディスク（ＣＤ−Ｒ）印刷に対応しているかどうかをプリンタのステータスから判断し（Ｓ９０３）、
対応している場合、プリンタドライバ２０２は、用紙の種類に、プリンタブルディスク（ＣＤ−Ｒ）を追加し（Ｓ９０４）、ＵＩを表示する（Ｓ９０５）。
【０１３８】
対応していない場合、プリンタドライバ２０２は、そのままＵＩを表示される（Ｓ９０５）。
【０１３９】
以上の説明したＳ９０１〜Ｓ９０６の処理が、プリンタドライバ２０９の場合でも同様に行われる。
【０１４０】
上記実施形態では、情報処理装置としてパーソナルコンピュータを想定したが、この例に限られることはない。例えばＤＶＤビデオプレーヤー、ゲーム、セットトップボックス、インターネット家電等、同様な使用方法が可能な任意の端末に対して実現することができ、本発明はその場合でも有効である。
【０１４１】
又、上記実施形態では、周辺装置としてプリンタを例示しているが、周辺装置として他に、複写機、ファクシミリ、および印刷、スキャナ、ファックスの機能などを備える複合機などのいずれかが、本発明の適用対象となり得る。
【０１４２】
又、上記実施形態では、ＯＳに例としてＷｉｎｄｏｗｓ（登録商標）ＸＰを使用したが、これらのＯＳに限られることなく、任意のＯＳを使用することができる。
【０１４３】
又、上記実施形態では、ＰＣ１０１とプリンタ２０６、プリンタ２１１との間のインタフェースとして、セントロニクスインタフェースを用いたが、このインタフェースに限られない。例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、無線ＬＡＮ、ＩＥＥＥ１３９４、ＢＬＵＥＴＯＯＴＨ（登録商標）、ＩｒＤＡ、ＵＳＢインタフェース、シリアル等の任意のインタフェースを用いるようにしてもよい。
【０１４４】
又、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４５】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１４６】
又、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部又は全部を行い、その処理によって前述した第１の実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４７】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４８】
以上説明したように、本実施形態によれば、ＬＭが複数の周辺装置で共通で利用可能な周辺装置を同一のポートに複数接続した場合でも、ＬＭの初期化関数のＯｐｅｎＰｏｒｔ（）が常に呼ばれ、ＬＭの内部情報を正常に初期化でき、ＬＭが正しいレジストリパスにプリンタのステータスを書き込むことができる。
【図面の簡単な説明】
【０１４９】
【図１】本実施形態に係る情報処理装置及び周辺装置からなる周辺装置制御システムの構成例を示すブロック図である。
【図２】本実施形態に係る情報処理装置であるパーソナルコンピュータ（ＰＣ）の構成例を説明するブロック図である。
【図３】本実施形態に係る周辺装置であるプリンタの構成例を説明するブロック図である。
【図４】本実施形態に関わる情報処理装置及び周辺装置からなる周辺装置制御システムのソフトウェア機能例のブロック図である。
【図５】第１実施形態でドライバインストールパッケージの構成内容を説明する図である。
【図６】第１実施形態で情報処理装置及び周辺装置からなる周辺装置制御システムのソフトウェア機能のブロック図である。
【図７】第１実施形態でＩＮＦファイルに記載する内容を説明する図である。
【図８】第１実施形態でプリンタドライバをＰＣにインストールする処理を表すフローチャートである。
【図９】第１実施形態でＬＭをＰＣにインストールする処理を表すフローチャートである。
【図１０】第１実施形態でＬＭの初期化処理を表すフローチャートである。
【図１１】第１実施形態でＬＭが使用するポート情報構造体の中身を説明する概念図である。
【図１２】第１実施形態でＬＭのＧｅｔＰｒｉｎｔｅｒＤａｔａＦｒｏｍＰｏｒｔ（）の処理を表すフローチャートである。
【図１３】第１実施形態でレジストリに格納されるプリンタのステータスの一例を示す図である。
【図１４】第１実施形態でプリンタドライバのＵＩ画面の一例を示す図である。
【図１５】第１実施形態で図１４のＵＩ画面の表示処理を表すフローチャートである。
【図１】
2008234301.tif 000003
【図２】
2008234301.tif 000004
【図３】
2008234301.tif 000005
【図４】
2008234301.tif 000006
【図５】
2008234301.tif 000007
【図６】
2008234301.tif 000008
【図７】
2008234301.tif 000009
【図８】
2008234301.tif 000010
【図９】
2008234301.tif 000011
【図１０】
2008234301.tif 000012
【図１１】
2008234301.tif 000013
【図１２】
2008234301.tif 000014
【図１３】
2008234301.tif 000015
【図１４】
2008234301.tif 000016
【図１５】
2008234301.tif 000017