(57)【特許請求の範囲】
【請求項１】
周辺装置に接続された情報処理装置に対してインストールさせるべきデバイスドライバーを、第１のアーキテクチャのデバイスドライバー及び第２のアーキテクチャのデバイスドライバーを含む複数のデバイスドライバーのリストから指定する指定手段と、
接続された情報処理装置で動作するＯＳ（オペレーティングシステム）の情報を取得する取得手段と、
前記ＯＳの情報に基づき、該ＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートするか否かを判断する判断手段と、
前記指定手段により第１のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該ＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第１のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第２のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第２のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信する送信手段と、を有し、
前記送信手段は、前記指定手段により第２のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該ＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第２のアーキテクチャのデバイスドライバーに対応する識別情報を前記情報処理装置に対して送信することを特徴とする周辺装置。
【請求項２】
前記取得手段は、前記情報処理装置が前記周辺装置にＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）で接続された場合には、前記指定手段により指定されたデバイスドライバーに対応する識別情報またはダミーの識別情報が前記情報処理装置に対して送信された後に、前記情報処理装置で動作するＯＳの情報を取得し、
前記送信手段は、前記指定手段により第１のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該ＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、バスリセットが発行された後に、前記指定手段により指定された第１のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第２のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第２のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信することを特徴とする請求項１に記載の周辺装置。
【請求項３】
前記判断手段は、更に、前記ＯＳの情報に基づき、該ＯＳが第１のアーキテクチャのデバイスドライバーのみをサポートするか否かを判断し、
前記送信手段は、前記指定手段により第２のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該ＯＳが第１のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第２のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第１のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第１のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信し、
前記送信手段は、前記指定手段により第１のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該ＯＳが第１のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第１のアーキテクチャのデバイスドライバーに対応する識別情報を前記情報処理装置に対して送信することを特徴とする請求項１または２に記載の周辺装置。
【請求項４】
前記取得手段は、前記情報処理装置が前記周辺装置にＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）で接続された場合には、前記指定手段により指定されたデバイスドライバーに対応する識別情報またはダミーの識別情報が前記情報処理装置に対して送信された後に、前記情報処理装置で動作するＯＳの情報を取得し、
前記送信手段は、前記指定手段により第２のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該ＯＳが第１のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、バスリセットが発行された後に、前記指定手段により指定された第２のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第１のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第１のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信することを特徴とする請求項３に記載の周辺装置。
【請求項５】
前記情報処理装置では、前記送信手段により送信された識別情報を用いて、プラグアンドプレイが実行されることを特徴とする請求項１乃至４のいずれか１項に記載の周辺装置。
【請求項６】
予め前記周辺装置に設定されたコマンドタイプは、前記周辺装置のベンダーによって設定されることを特徴とする請求項１乃至５のいずれか１項に記載の周辺装置。
【請求項７】
前記コマンドタイプは、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）であることを特徴とする請求項１乃至６のいずれか１項に記載の周辺装置。
【請求項８】
周辺装置における方法であって、
前記周辺装置に接続された情報処理装置に対してインストールさせるべきデバイスドライバーを、第１のアーキテクチャのデバイスドライバー及び第２のアーキテクチャのデバイスドライバーを含む複数のデバイスドライバーのリストから指定する指定工程と、
接続された情報処理装置で動作するＯＳ（オペレーティングシステム）の情報を取得する取得工程と、
前記ＯＳの情報に基づき、該ＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートするか否かを判断する判断工程と、
前記指定工程で第１のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断工程で該ＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定された第１のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第２のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第２のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信する送信工程と、を有し、
前記送信工程では、前記指定工程で第２のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断工程で該ＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定された第２のアーキテクチャのデバイスドライバーに対応する識別情報が前記情報処理装置に対して送信されることを特徴とする方法。
【請求項９】
請求項１乃至７の何れか１項に記載の手段としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパーソナルコンピューターなどの情報処理装置とプリンターなどの周辺装置を接続する時のデバイスドライバーのインストールのための技術に関する。
【背景技術】
【０００２】
従来から、複数の種類のデバイスドライバーが用意されている周辺装置が存在する。例えば、多種のＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）をサポートするプリンターが存在する。これらのプリンターでは、全てのＰＤＬの種類に対する識別情報（例えば、プラグアンドプレイＩＤ）を管理している。プラグアンドプレイ（ＰｎＰ）と呼ばれる技術では、情報処理装置が、いずれかの識別情報をプリンターから取得することで該識別情報に対応するＰＤＬのプリンタードライバーをインストールすることができる。
【０００３】
しかしながら１つのＰＤＬのプリンタードライバーしか使用しないユーザーにとって、複数のＰＤＬ用のプリンタードライバーは必要ないため、特許文献１に記載の技術のように、どのＰＤＬのプラグアンドプレイを発生させるかをユーザーに選択させることができる技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−０９７１５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）において、ｖ３プリンタードライバー、ｖ４プリンタードライバーと呼ばれる、同じＯＳ上で動作するアーキテクチャの全く異なるプリンタードライバーが登場してきている。アーキテクチャの異なるプリンタードライバーは提供する画面（ＧＵＩ）や、機能や使用手順が異なっている。例えば、ｖ４プリンタードライバーは、従来のプリンタードライバーとは異なり、タッチパネルディスプレイに特化したＧＵＩを用意しているといった特徴を持っている。
【０００６】
ここで、将来的には、最新のＯＳにおいて、古いアーキテクチャのプリンタードライバーをサポートしなくなることが考えられる。このような場合には、ネットワーク環境上に存在する複数の情報処理装置において、その最新のＯＳがインストールされている装置と、そうでない装置とが混在することが考えられる。
【０００７】
先行技術の方法で、プリンターに古いアーキテクチャのプリンタードライバーに対応するＩＤを設定してしまうと、その最新のＯＳでは、該当するプリンタードライバーがプラグアンドプレイでインストールできなくなるという課題が生じる。情報処理装置とプリンターが新たに接続するたびに、プリンターで設定されるプラグアンドプレイで利用される識別情報を、ユーザーが情報処理装置のＯＳを判別して変更するといったことも考えられるが、これは手間がかかる作業と言える。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の周辺装置は、周辺装置に接続された情報処理装置に対してインストールさせるべきデバイスドライバーを、第１のアーキテクチャのデバイスドライバー及び第２のアーキテクチャのデバイスドライバーを含む複数のデバイスドライバーのリストから指定する指定手段と、接続された情報処理装置で動作するＯＳ（オペレーティングシステム）の情報を取得する取得手段と、前記ＯＳの情報に基づき、該ＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートするか否かを判断する判断手段と、前記指定手段により第１のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該ＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第１のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第２のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第２のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信する送信手段と、を有し、前記送信手段は、前記指定手段により第２のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該ＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第２のアーキテクチャのデバイスドライバーに対応する識別情報を前記情報処理装置に対して送信することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、接続された情報処理装置のＯＳを調べて、周辺装置側のインストール対象となるデバイスドライバーの指定を手動変更しなくても、該ＯＳにとって適切なアーキテクチャのデバイスドライバーのＩＤがプラグアンドプレイのために周辺装置から情報処理装置に送信されるようになる。
【図面の簡単な説明】
【００１０】
【図１】コンピューターとプリンターとの接続形態を示す図である。
【図２】コンピューターとプリンターの構成を示す図である。
【図３】プリンターが提供するユーザーインタフェースの遷移を示す図である。
【図４】実施例１におけるネットワーク（ＷＳＤ）接続時の処理を説明するためのフローチャートである。
【図５】第２のアーキテクチャのデバイスドライバーに対応するＩＤをコンピューターに対して送信する処理の詳細を説明するためのフローチャートを示す図である。
【図６】本実施例によりコンピューターに対して送信されるＰｎＰ  ＩＤの例を示す図である。
【図７】ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓの具体例を示す図である。
【図８】ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓへの応答の具体例を示す図である。
【図９】実施例２におけるＵＳＢ接続時の処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１２】
（実施例１）
図１（ａ）は、実施例１におけるコンピューター１０００とプリンター２０００との接続形態を示す図である。ネットワーク１００に対してコンピューター１０００と、その周辺装置としてのプリンター２０００が接続されている。本発明はデバイスドライバーのインストール技術に関するものであるが、実施例１ではＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ｏｎ  Ｄｅｖｉｃｅｓ）  Ｄｉｓｃｏｖｅｒｙによるプリンタードライバーに係るネットワークプラグアンドプレイを例に説明する。よってプリンター２０００はＷＳＤの機能が有効になっていることを前提として以降の説明を行う。なお、ＷＳＤ以外にも、ＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）など、ネットワークプラグアンドプレイと同様にデバイスドライバーのインストールが実現可能な他のネットワークプロトコルであっても、本発明に適用可能である。
【００１３】
図２はコンピューター１０００とプリンター２０００の構成をブロック図として示した図である。
【００１４】
まず、情報処理装置としてのコンピューター１０００の構成について説明する。コンピューター１０００はＣＰＵ１０４１とメモリ１０４２により構成される制御部１０４０が全体を制御している。表示部１０１０はディスプレイなどの出力装置、操作部１０２０はマウスやキーボードなどの入力装置を示す。また、記憶部１０３０にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１０３１や各種プログラム１０３２などのソフトウェアが保存されている。それらのプログラムは必要に応じてメモリ１０４２にロードされ、ＣＰＵ１０４１によって実行される。ＯＳ１０３１はコンピューター１０００の基本動作をつかさどるソフトウェアである。ネットワーク通信部１０５０はネットワーク１００に接続して外部装置とのデータの入出力を行う。ＵＳＢ通信部１０６０はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）で接続された外部装置とのデータの入出力を行う。本発明においてコンピューター１０００の処理は、全て記憶部１０３０に記憶されたソフトウェアを制御部１０４０におけるメモリ１０４２にロードしてＣＰＵ１０４１が実行することによって実現される。なお、ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。
【００１５】
ここで、本発明が想定するＯＳには、ｖ３プリンタードライバー及びｖ４プリンタードライバーといったアーキテクチャの全く異なるプリンタードライバーがともに動作するものと、ｖ３プリンタードライバー及びｖ４プリンタードライバーのいずれか片方のみしか動作しないものが存在する。コンピューター１０００のＯＳ１０３１としては、その３種類のＯＳのいずれもがインストールされる可能性がある。
【００１６】
次に、プリンター２０００の構成を説明する。プリンター２０００はＣＰＵ２０４１とメモリ２０４２により構成される制御部２０４０が全体を制御している。表示部２０１０はパネルなどの出力装置、操作部２０２０はタッチパネルや各種ボタンによる入力装置を示す。また、記憶部２０３０にはＯＳ２０３１や各種プログラム２０３２が保存されている。これらのソフトウェアは必要に応じてメモリ２０４２にロードされ、ＣＰＵ２０４１によって実行される。ＯＳ２０３１はプリンターの基本動作をつかさどるソフトウェアである。ネットワーク通信部２０５０はネットワーク１００に接続して外部装置とのデータの入出力を行う。ＵＳＢ通信部１０６０はＵＳＢで接続された外部装置とのデータの入出力を行う。印刷部２０７０は制御部２０４０の指示に従って用紙にトナーやインクを定着させて目的の画像を物理用紙上に形成することで印刷を行う。本発明においてプリンター２０００の処理は、全て記憶部２０３０に記憶されたソフトウェアを制御部２０４０におけるメモリ２０４２にロードしてＣＰＵ２０４１が実行することによって実現される。
【００１７】
図３は、デバイスドライバーの識別情報をユーザーに選択させるために、プリンター２０００が提供するユーザーインタフェース（ＵＩ）の遷移を示す図である。ここでは、識別情報としてプリンタードライバーのＰＤＬに対応するＰｎＰ  ＩＤを例示している。よって、このＵＩにより選択された識別情報は、情報処理装置におけるデバイスドライバーのインストールに利用されることになる。
【００１８】
ＵＩは、プリンター２０００の表示部２０１０で表示され、タッチパネルや各種ボタンなどの操作部１０２０によるユーザーからの入力を受け付けて遷移する。
【００１９】
「システム管理設定」２１１０は、プリンター２０００の各種システム管理を設定するためのＵＩである。本実施例におけるＰｎＰ  ＩＤの選択設定は、「ページ記述言語（ＰｎＰ）」２１１１を選択することで可能になる。選択後のＵＩが「ページ記述言語（ＰｎＰ）」２１２０の画面である。ここでは、接続形態ごと（「ネットワーク」２１２１、「ＵＳＢ」２１２２）に対して、ＰｎＰ  ＩＤが指定できる。
【００２０】
「ネットワーク」２１２１を選択後のＵＩが、「ネットワーク  ＰｎＰ  ＩＤ」２１３０の画面である。この画面には、プリンター２０００がＰｎＰ  ＩＤとして使用できるＩＤに対応するデバイスドライバーが全て列挙されている。プリンター２０００のシステム管理者は、この画面上のリストから、ネットワークプラグアンドプレイをさせたいＰＤＬのプリンタードライバーを指定する。
【００２１】
ここで、リスト内のＩＤの後端にある「（Ｖ３）」は、従前のＯＳにおいて利用されていたアーキテクチャのプリンタードライバーであることを示している。一方で、「（Ｖ４）」は、新しいＯＳにおいて利用されるようになったアーキテクチャのプリンタードライバーであることを示している。例えば、ｖ４プリンタードライバーは、従来のアーキテクチャのプリンタードライバーとは異なり、タッチパネルディスプレイに特化したＧＵＩを用意しているといった特徴を持っている。また、“ＰＤＬ１”と“ＰＤＬ２”などは、それぞれ異なる種類のＰＤＬであることを示している。
【００２２】
プリンター２０００のデフォルトの設定は、「ＰＤＬ１（Ｖ３）」２１３２である。「ＦＡＸ（Ｖ３）」２１３１は、コンピューター１０００上に、Ｖ３アーキテクチャのＦＡＸドライバーをプラグアンドプレイに従いインストールさせるための選択肢である。例えば、システム管理者が「ＦＡＸ（Ｖ３）」２１３１を選択すると、プリンター２０００のネットワークＰｎＰ  ＩＤの設定が「ＦＡＸ（Ｖ３）」に変更され、表示画面は「ページ記述言語（ＰｎＰ）」に戻る。
【００２３】
なお、「ＰＤＬ３（Ｖ３／Ｖ４）」２１３３は、特殊なＰｎＰ  ＩＤに対応する選択肢を示す。具体的には、Ｖ３アーキテクチャのＰＤＬ３用のプリンタードライバーも、Ｖ４アーキテクチャのＰＤＬ３用のプリンタードライバーも、ともに同じＰｎＰ  ＩＤに対応づけられている場合がある。よって、この特殊なＰｎＰ  ＩＤが選択され、プリンター２０００が、どちらのアーキテクチャも使用可能なＯＳが動作するコンピューター１０００に接続した場合には、該ＯＳ１０３１にとって優先度の高いプリンタードライバーが選択的にインストールされ、使用されることになる。
【００２４】
「ＰＤＬ１（Ｖ４）」２１３６は、Ｖ４アーキテクチャのＰＤＬ１用のプリンタードライバーをププラグアンドプレイに従いインストールさせるための選択肢である。
【００２５】
Ｖ４アーキテクチャのＰＤＬ２用のプリンタードライバーについては、選択肢に存在しない。これは、プリンターベンダーによって、該プリンタードライバーがサポートされていないなどの理由に依る。また、本実施例では複数あるＰＤＬの中から“ＰＤＬ１”が最も推奨されるＰＤＬ（すなわち、推奨ＰＤＬ）としてベンダーによって設定されているものとする。
【００２６】
画面２１２０の「ＵＳＢ」２１２２選択後のＵＩが、「ＵＳＢ  ＰｎＰ  ＩＤ」２１４０の画面であるが、内容は「ネットワークＰｎＰ  ＩＤ」２１３０と同等なのでここでは説明は割愛する。
【００２７】
以上のように、本実施例において、プリンター２０００のシステム管理者はネットワーク接続、ＵＳＢ接続のそれぞれで別のＰｎＰ  ＩＤを指定することができるようになっている。
【００２８】
図４は、図３で示したＰｎＰ  ＩＤが設定されている状態で、プリンター１０００をネットワーク１００に接続した時のプリンター２０００の処理を示したフローチャートである。この処理は記憶部２０３０に記憶されたソフトウェアを制御部２０４０におけるメモリ２０４２にロードしてＣＰＵ２０４１が実行することによって実現される。
【００２９】
まず、Ｓ１０１で、プリンター２０００は、ネットワーク１００に接続されたことを検知する。Ｓ１０２で、プリンター２０００は、ネットワーク１００に向かってネットワーク参加メッセージをマルチキャストする。例えば、ネットワーク参加メッセージは、ＷＳＤ  Ｄｉｓｃｏｖｅｒｙにおける「Ｈｅｌｌｏ」メッセージを示す。
【００３０】
その後、Ｓ１０３で、プリンター２０００は、ネットワーク１００に接続されていたコンピューター１０００からの探索要求を受信する。例えば、探索要求は、ＷＳＤ  Ｄｉｓｃｏｖｅｒｙにおける「Ｐｒｏｂｅ」メッセージを示す。Ｓ１０４で、プリンター２０００は、その要求の応答をコンピューター１０００に対して送信する。例えば、この応答は、ＷＳＤ  Ｄｉｓｃｏｖｅｒｙにおける「ＰｒｏｂｅＭａｔｃｈ」メッセージを示す。さらに、Ｓ１０５で、プリンター２０００はコンピューター１０００にＭｅｔａＤａｔａの送信を行う。
【００３１】
Ｓ１０６で、プリンター２０００は、コンピューターからの構成情報を受信する。例えば、構成情報は、ＷＳＤ  Ｄｉｓｃｏｖｅｒｙにおける「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」メッセージを示し、その具体例は、図７で後述する。
【００３２】
Ｓ１０７で、プリンター２０００は、コンピューター１０００のＯＳ情報を確認する。ここでの確認方法としては、例えば、構成情報内のＸＭＬデータに入っているＯＳ情報を取得するようにしてもよい。また、ＸＭＬデータを解析して必要なＯＳ情報を判定してもよい。ここで、必要なＯＳ情報を取得する方法については、ネットワークに接続された他の情報リソースから取得する、など他の方法を用いても構わない。
【００３３】
Ｓ１０８で、プリンター２０００は、Ｓ１０７で取得したＯＳ情報に基づき、コンピューター１０００のＯＳが第１のアーキテクチャのデバイスドライバーのみをサポートするＯＳであるかどうかを判断する。ここで、第１のアーキテクチャとは、例えば、前述したＶ３アーキテクチャを意味する。Ｓ１０８で、第１のアーキテクチャのみをサポートするＯＳであった場合にはＳ１１０にすすみ、そうでない場合にはＳ１０９に進む。
【００３４】
Ｓ１１０では、プリンター２０００は、図３の画面２１３０での指定に従い、第１のアーキテクチャのデバイスドライバーに対応するＩＤをコンピューター１０００に対して送信する。具体的には、図３の画面２１３０で、「ＰＤＬ１（Ｖ３）」２１３２が指定されていた場合には、当該指定に従い、Ｖ３アーキテクチャのＰＤＬ１用のプリンタードライバーに対応するＰｎＰ  ＩＤをコンピューター１０００に対して送信する。なお、図３の画面２１３０で、「ＰＤＬ２（Ｖ３）」、「ＰＤＬ３（Ｖ３／Ｖ４）」が指定されていた場合にも、それら指定に従い、プリンター２０００は、各ＰＤＬに対応するＰｎＰ  ＩＤをコンピューター１０００に対して送信する。
【００３５】
Ｓ１０９で、プリンター２０００は、Ｓ１０７で取得したＯＳ情報に基づき、コンピューター１０００のＯＳが第２のアーキテクチャのデバイスドライバーのみをサポートするＯＳであるかどうかを判断する。ここで、第２のアーキテクチャとは、例えば、前述したＶ４アーキテクチャなどの、第１のアーキテクチャとは全く異なるアーキテクチャを意味する。Ｓ１０９で、第２のアーキテクチャのみをサポートするＯＳであった場合にはＳ１１２にすすみ、そうでない場合にはＳ１１１に進む。
【００３６】
Ｓ１１１では、コンピューター１０００のＯＳが第１及び第２のアーキテクチャをともにサポートしているので、プリンター２０００は、図３の画面２１３０での指定に従うＰｎＰ  ＩＤをコンピューター１０００対して送信する。
【００３７】
Ｓ１１２で、プリンター２０００は、図３の画面２１３０での指定に従い、第２のアーキテクチャのデバイスドライバーに対応するＩＤをコンピューター１０００に対して送信する。例えば、「ＰＤＬ１（Ｖ３）」２１３２のようなＶ３アーキテクチャに係るＰＤＬに対応する指定が行われていたとしても、この指定を参考に、Ｖ４アーキテクチャのＰｎＰ  ＩＤをコンピューター１０００に対して送信する。Ｓ１１２での、図３の画面２１３０での指定とは異なるＩＤをコンピューター１０００に対して送信する際の判定方法については、図５を用いて更に詳細に説明する。なお、図３の画面２１３０で、「ＰＤＬ３（Ｖ３／Ｖ４）」、「ＦＡＸ（Ｖ４）」、「ＰＤＬ１（Ｖ４）」のいずれかが指定されていた場合には、それら指定に従い、プリンター２０００は、各ＰＤＬに対応するＰｎＰ  ＩＤをそのままコンピューター１０００に対して送信する。
【００３８】
なお、Ｓ１１０〜Ｓ１１２で示した、Ｓ１０６で受信した構成情報（例えば、「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」）に対するコンピューター１０００への応答の具体例は、図８を用いて後述する。
【００３９】
図５は、図４のＳ１１２における処理をより詳細に説明するためのフローチャートである。
【００４０】
まず、Ｓ３０１で、プリンター２０００は、図３で示す画面２１３０を介して指定されたデバイスドライバーが、第２のアーキテクチャのデバイスドライバーに対応するものであるか否かを判断する。第２のアーキテクチャのデバイスドライバーが指定されていた場合に、Ｓ３０４で、プリンター２０００は、画面２１３０を介して指定されたデバイスドライバーに対応するＩＤをコンピューター１０００に対して送信する。例えば、画面２１３０で、「ＰＤＬ３（Ｖ３／Ｖ４）」２１３３や「ＰＤＬ１（Ｖ４）」２１３４が指定されていた場合には、Ｓ３０４でその指定に対応するＰｎＰ  ＩＤが、そのままコンピューター１０００に対して送信される。
【００４１】
Ｓ３０１で第２のアーキテクチャのデバイスドライバーが指定されていなかった場合に、Ｓ３０２に進む。Ｓ３０２で、プリンター２０００は、画面２１３０で指定されたデバイスドライバーが扱うコマンドタイプ（ＰＤＬ情報）を確認する。そして、Ｓ３０３で、プリンター２０００は、Ｓ３０２で確認されたコマンドタイプを扱う第２のアーキテクチャのデバイスドライバーに対応するＩＤが存在するかを判断する。例えば、「ＰＤＬ１（Ｖ３）」２１３２が指定されていた場合には、ＰＤＬ１を扱えるＶ４のプリンタードライバーを示す「ＰＤＬ１（Ｖ４）」２１３４が存在するので、Ｓ３０３では“ＹＥＳ”と判断されることになる。Ｓ３０３で“ＹＥＳ”と判断された場合には、Ｓ３０５で、プリンター２０００は、Ｓ３０２で確認されたコマンドタイプを扱う第２のアーキテクチャのデバイスドライバーに対応するＩＤをコンピューター１０００に対して送信する。例えば、Ｓ３０２で確認されたコマンドタイプを扱う第２のアーキテクチャのデバイスドライバーが、「ＰＤＬ１（Ｖ４）」２１３４であるならば、「ＰＤＬ１（Ｖ４）」２１３４に対応するＰｎＰ  ＩＤがコンピューター１０００に対して送信される。
【００４２】
Ｓ３０３で“ＮＯ”と判断された場合、例えば、画面２１３０で「ＰＤＬ２（Ｖ３）」が指定されていた場合には、Ｓ３０６に進む。Ｓ３０６で、プリンター２０００は、推奨コマンドタイプを扱える第２のアーキテクチャのデバイスドライバーに対応するＩＤをコンピューター１０００に対して送信する。本実施例のプリンター２０００では、前述のとおり推奨ＰＤＬを「ＰＤＬ１」としているため、具体的には「ＰＤＬ１（Ｖ４）」２１３４に対応するＰｎＰ  ＩＤとしてコンピューター１０００に対して送信する。
【００４３】
なお、Ｓ１１０でも、図５と同等の方法で、プリンター２０００がコンピューター１０００に対して送信する第１のアーキテクチャのデバイスドライバーに対応するＩＤを決定することができる。具体的には、画面２１３０で第２のアーキテクチャのデバイスドライバーが指定されていた場合に、該指定されたデバイスドライバーのコマンドタイプと、推奨のコマンドタイプとを用いて、コンピューター１０００に対して送信すべきＩＤを決定する。
【００４４】
上記に依れば、本実施例では、接続先のコンピューター１０００で動作するＯＳ１０３１の情報に応じて、サポートされていないアーキテクチャのデバイスドライバー用のＩＤを返すことがなくなる。また、新しいアーキテクチャのデバイスドライバーが用意されていなかった場合であっても、デバイスベンダーの推奨するコマンドタイプ（ＰＤＬ）のデバイスドライバーをプラグアンドプレイに利用することが可能となる。
【００４５】
図６は、図４及び図５の処理が適用された際の、パネル指定されたプリンタードライバーと、プリンター２０００が実際にコンピューター１０００に返すＰｎＰ  ＩＤとの関係を表にした図である。
【００４６】
図６では、第１のアーキテクチャのデバイスドライバーのみをサポートするＯＳとして、Ｖ３のみサポートするＷｉｎｄｏｗｓ（登録商標）を例示している。同様に、第２のアーキテクチャのデバイスドライバーのみをサポートするＯＳとして、Ｖ４のみサポートするＷｉｎｄｏｗｓ（登録商標）を例示している。また、プリンター２０００に設定された推奨するコマンドタイプとして、「ＰＤＬ１」を例示している。
【００４７】
図７は、プリンター２０００がＳ１０６で受信する構成情報としての「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」の具体例を示す図である。
【００４８】
「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」はＷＳＤで規定されたＸＭＬ形式のＳＯＡＰメッセージであり、全て「Ｅｎｖｅｌｏｐｅ」（４００１〜４０１７）で囲まれている。「Ｅｎｖｅｌｏｐｅ」（４００１〜４０１７）は、「Ｈｅａｄｅｒ」（４００２〜４００８）と「Ｂｏｄｙ」（４００９〜４０１６）とで構成される。
【００４９】
「Ｈｅａｄｅｒ」（４００２〜４００８）は、「Ｔｏ」（４００３）と「Ａｃｔｉｏｎ」（４００４〜４００６）及び「ＭｅｓｓａｇｅＩＤ」（４００７）とから成る。「Ｔｏ」（４００３）には本ＳＯＡＰメッセージの宛先としてプリンター２０００のアドレスが記載されている。「Ａｃｔｉｏｎ」（４００４〜４００６）にはこのＳＯＡＰメッセージが「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」（４００５）であることが記載されている。「ＭｅｓｓａｇｅＩＤ」（４００７）にはこのＳＯＡＰメッセージを示すＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）が記載されている。
【００５０】
「Ｂｏｄｙ」（４００９〜４０１６）は、本ＳＯＡＰメッセージの要求である「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓＲｅｑｕｅｓｔ」（４０１０〜４０１５）で構成されている。「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓＲｅｑｕｅｓｔ」（４０１０〜４０１５）は「ＲｅｑｕｅｓｔｅｄＢｙ」（４０１１）と「ＲｅｑｕｅｓｔｅｄＥｌｅｍｅｎｔｓ」（４０１２〜４０１４）から成る。「ＲｅｑｕｅｓｔｅｄＢｙ」（４０１１）は、本ＳＯＡＰメッセージの送信元のＯＳの種類が記載されている。プリンター２０００はＳ１０７において「ＲｅｑｕｅｓｔｅｄＢｙ」（４０１１）を参照することで、要求元のＯＳ情報を確認することができる。「ＲｅｑｕｅｓｔｅｄＥｌｅｍｅｎｔｓ」（４０１２〜４０１４）に本ＳＯＡＰメッセージが要求している情報の名前が記載されている。ここでは「ＰｒｉｎｔｅｒＤｅｓｃｒｉｐｔｉｏｎ」（４０１３）が記載されている。
【００５１】
図８は、プリンター２０００がＳ１１０〜Ｓ１１２で送信する「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」への応答の具体例を示す図である。
【００５２】
「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」の応答はＷＳＤで規定されたＸＭＬ形式のＳＯＡＰメッセージであり、全て「Ｅｎｖｅｌｏｐｅ」（５００１〜５０２３）で囲まれている。「Ｅｎｖｅｌｏｐｅ」（５００１〜５０２３）は、「Ｈｅａｄｅｒ」（５００２〜５００９）と「Ｂｏｄｙ」（５０１０〜５０２２）とで構成される。
【００５３】
「Ｈｅａｄｅｒ」（５００２〜５００９）は、「Ｔｏ」（５００３）と「Ａｃｔｉｏｎ」（５００４〜５００６）と「ＭｅｓｓａｇｅＩＤ」（５００７）及び「ＲｅｌａｔｅｓＴｏ」（５００８）とから成る。「Ｔｏ」（５００３）には本ＳＯＡＰメッセージの宛先としてコンピューター１０００のアドレスが記載されている。本実施例では「ａｎｏｎｙｍｏｕｓ」が記載されている。「Ａｃｔｉｏｎ」（５００４〜５００６）にはこのＳＯＡＰメッセージが「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓＲｅｓｐｏｎｓｅ」（５００５）であることが記載されている。「ＭｅｓｓａｇｅＩＤ」（５００７）にはこのＳＯＡＰメッセージを示すＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）が記載されている。「ＲｅｌａｔｅｓＴｏ」（５００８）はどのＳＯＡＰメッセージに対する応答かが記載されている。本実施例では図７に示す「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」に対する応答なので「ＭｅｓｓａｇｅＩＤ」（４００７）と同じＵＵＩＤが記載される。
【００５４】
「Ｂｏｄｙ」（５０１０〜５０２２）は、本ＳＯＡＰメッセージの要求である「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓＲｅｓｐｏｎｓｅ」（５０１１〜５０２１）で構成されている。「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓＲｅｓｐｏｎｓｅ」（５０１１〜５０２１）は「ＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」（５０１２〜５０２０）から成る。「ＲｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」（５０１２〜５０２１）は「ＥｌｅｍｅｎｔＤａｔａ」（５０１３〜５０１９）から成る。「ＥｌｅｍｅｎｔＤａｔａ」（５０１３〜５０１９）はコンピューター１０００から要求されている「ＰｒｉｎｔｅｒＤｅｓｃｒｉｐｔｉｏｎ」（５０１４〜５０１８）で構成されている。「ＰｒｉｎｔｅｒＤｅｓｃｒｉｐｔｉｏｎ」（５０１４〜５０１８）は「ＣｏｌｏｒＳｕｐｐｏｒｔｅｄ」（５０１５）、「ＤｅｖｉｃｅＩｄ」（５０１６）、「ＰｒｉｎｔｅｒＮａｍｅ」（５０１７）とから成る。「ＣｏｌｏｒＳｕｐｐｏｒｔｅｄ」（５０１５）はプリンター２０００がカラー機か、白黒機かを示している。本実施例ではカラー機なので「ｔｒｕｅ」が記載されている。「ＤｅｖｉｃｅＩｄ」（５０１６）にはプリンター２０００のプラグアンドプレイＩＤが記載されている。前述した図４のＳ１１０〜Ｓ１１２や図５で説明したＩＤの送信については、「ＤｅｖｉｃｅＩｄ」（５０１６）の値としてＩＤが格納されることで実現される。「ＰｒｉｎｔｅｒＮａｍｅ」（５０１７）にはプリンター２０００のプリンター名が記載されている。
【００５５】
（実施例２）
実施例１ではＷＳＤ  Ｄｉｓｃｏｖｅｒｙなどのネットワークプラグアンドプレイを例に説明したが、実施例２ではＵＳＢ接続によるプラグアンドプレイに関して説明する。
【００５６】
図１（ｂ）は、実施例２におけるコンピューター１０００とプリンター２０００との接続形態を示している。コンピューター１０００とプリンター２０００はＵＳＢケーブル２００によって接続されている。図２の構成図と図３のＵＩ遷移図は実施例１と同じであるので割愛する。
【００５７】
図９は、図３の画面２１４０でいずれかのデバイスドライバーが指定された後に、コンピューター１０００をＵＳＢケーブル２００でプリンター２０００に接続した時のプリンター２０００の処理を説明するためのフローチャートである。この処理は実施例１と同様、記憶部２０３０に記憶されたソフトウェアを制御部２０４０におけるメモリ２０４２にロードしてＣＰＵ２０４１が実行することによって実現される。
【００５８】
まず、プリンター２０００は、Ｓ２０１でコンピューター１０００にＵＳＢ接続されたことを検知すると、Ｓ２０２で画面２１４０を介して指定されたデバイスドライバーに対応するＩＤをコンピューター１０００に対して送信する。その後、Ｓ２０３で、プリンター２０００は、その送信したＩＤを用いて、コンピューター１０００のＯＳ１０３１とＵＳＢのコネクションを確立する。
【００５９】
Ｓ２０４で、プリンター２０００は、接続されたコンピューター１０００のＯＳ１０３１の情報を確認する。ここでの確認方法としては、例えば、コンピューター１０００にあらかじめインストールしておいたデバイスドライバーと通信して情報を取得することができる。また、ＵＳＢ接続後のＯＳの挙動から判別する、別途格納されている他の情報リソースから取得する、など様々な方法が考えられるが、どのような方法を用いても構わない。
【００６０】
Ｓ２０５で、プリンター２０００は、Ｓ２０４で確認したＯＳ情報に基づき、コンピューター１０００で動作しているＯＳ１０３１が第１のアーキテクチャのみをサポートするＯＳであるか否かを判断する。第１のアーキテクチャのみをサポートするＯＳであった場合にはＳ２０７に進み、そうでない場合にはＳ２０６に進む。
【００６１】
Ｓ２０７で、プリンター２０００は、現在、図３の画面２１４０で、第１のアーキテクチャのデバイスドライバーが指定されているかを判定する。ここで、画面２１４０で第１のアーキテクチャのデバイスドライバー（例えば、「ＰＤＬ１（Ｖ３）」）が指定されていた場合には本処理を終了する。一方で、画面２１４０で第２のアーキテクチャのデバイスドライバー（例えば、「ＰＤＬ１（Ｖ４）」）が指定されていた場合にはＳ２０８に進む。Ｓ２０８で、プリンター２０００は、ＵＳＢのバスリセットを発行する。バスリセットの方法としては、例えば通常はプルアップされているＵＳＢのＤ＋信号線を一時的に停止することでリセットを行うことができる。その後、Ｓ２０９で、プリンター２０００は、第１のアーキテクチャのデバイスドライバーに対応するＩＤを決定し、コンピューター１０００に対して決定されたＩＤを送信する。Ｓ２０９でのＩＤの再送により、第１のアーキテクチャのデバイスドライバーのためのプラグアンドプレイがコンピューター１０００で実行されることになる。なお、Ｓ２０９における第１のアーキテクチャのデバイスドライバーに対応するＩＤの決定方法は図５で説明した方法と同様の手順で行うことができる。具体的には、画面２１４０で第２のアーキテクチャのデバイスドライバーが指定されていた場合に、該指定されたデバイスドライバーのコマンドタイプと、推奨のコマンドタイプとを用いて、コンピューター１０００に対して送信すべきＩＤを決定することになる。
【００６２】
Ｓ２０６で、プリンター２０００は、Ｓ２０４で確認したＯＳ情報に基づき、コンピューター１０００で動作しているＯＳ１０３１が第２のアーキテクチャのみをサポートするＯＳであるか否かを判断する。第２のアーキテクチャのみをサポートするＯＳであった場合にはＳ２１０に進み、そうでない場合には本処理を終了する。
【００６３】
Ｓ２１０で、プリンター２０００は、現在、図３の画面２１４０で、第２のアーキテクチャのデバイスドライバーが指定されているかを判定する。ここで、画面２１４０で第２のアーキテクチャのデバイスドライバー（例えば、「ＰＤＬ１（Ｖ４）」）が指定されていた場合には本処理を終了する。一方で、画面２１４０で第１のアーキテクチャのデバイスドライバー（例えば、「ＰＤＬ１（Ｖ３）」）が指定されていた場合にはＳ２１１に進む。Ｓ２１１で、プリンター２０００は、ＵＳＢのバスリセットを発行する。その後、Ｓ２１２で、プリンター２０００は、第２のアーキテクチャのデバイスドライバーに対応するＩＤを決定し、コンピューター１０００に対して決定されたＩＤを送信する。Ｓ２０９でのＩＤの再送により、第２のアーキテクチャのデバイスドライバーのためのプラグアンドプレイがコンピューター１０００で実行されることになる。なお、Ｓ２０９における第２のアーキテクチャのデバイスドライバーに対応するＩＤの決定方法は図５で説明した方法と同様の手順で行うことができる。
【００６４】
なお、図９のＳ２０２で、画面２１４０で指定されたデバイスドライバーに対応するＩＤをコンピューター１０００に対して送信する例を示した。しかしながら、別のダミーＩＤを送信してもよい。この場合は、ダミーＩＤ用のデバイスドライバーを使用して、コンピューター１０００のＯＳ情報を取得する。さらに、このような場合には、ＯＳ情報取得後は、必ずバスリセットを行い、画面２１４０で指定されたデバイスドライバーに対応するＩＤ、または、Ｓ２０９、Ｓ２１２で決定されたＩＤをコンピューター１０００に対して送信する。
【００６５】
本実施例によれば、ＵＳＢ接続時であっても接続されたコンピューター１０００のＯＳ情報に適合するデバイスドライバーに対応するＩＤをコンピューター１０００に送信することができる。従って、ＵＳＢで接続されたコンピューター１０００のＯＳでサポートされていないアーキテクチャのデバイスドライバーに対応するＩＤを返すことがなくなる。
【００６６】
以上、実施例１と実施例２を用いて本発明の実施形態とその効果について図面を用いて説明した。なお、本発明ではコンピューター１０００のＯＳ１０３１としてＷｉｎｄｏｗｓ（登録商標）を用いて説明したが他のＯＳであっても同様に実施可能である。また、周辺装置としてプリンターを例示したが、スキャナーなど、同様の背景をもつ他の機器でも本発明を適用することができる。
【００６７】
（他の実施例）
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
【００６８】
ここで、本発明は、上述した実施形態の機能を実現する１以上のソフトウェア（プログラム）を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の１以上のコンピュータ（ＣＰＵやＭＰＵ等）によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピューターにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路（例えば、ＡＳＩＣ）によっても、本発明は実現可能である。
【符号の説明】
【００６９】
１０００  コンピューター
２０００  プリンター
２１３０  ネットワークＰｎＰ  ＩＤ選択画面
２１４０  ＵＳＢ  ＰｎＰ  ＩＤ選択画面
【図１】
0006486233.tif 000002
【図２】
0006486233.tif 000003
【図３】
0006486233.tif 000004
【図４】
0006486233.tif 000005
【図５】
0006486233.tif 000006
【図６】
0006486233.tif 000007
【図７】
0006486233.tif 000008
【図８】
0006486233.tif 000009
【図９】
0006486233.tif 000010