(57)【要約】      （修正有）【課題】ホストコンピュータに装置を接続しても複雑な手順を踏むことなく「不明なデバイス」として認識されないようにして、その装置を使用できるようにすること。【解決手段】上位装置と接続された、複数の機能を有する装置において、前記複数の機能のうち前記上位装置において専用ドライバによって動作する機能については隠された機能を有効にするための情報を前記上位装置から受信したときに前記上位装置に見せるようにする制御手段、を備えることを特徴としている。【選択図】図４
2006178704.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と接続可能な、複数の機能を有する装置において、
前記複数の機能のうち前記上位装置において専用ドライバによって動作する機能については隠された機能を有効にするための情報を前記上位装置から受信したときに前記上位装置に見せるようにする制御手段、
を備えることを特徴とする装置。
【請求項２】
請求項１記載の装置において、
前記制御手段は、前記複数の機能のうち前記上位装置において汎用ドライバによって動作する機能については前記情報の有無に拘わらず前記上位装置に見せるようにする、ことを特徴とする装置。
【請求項３】
請求項１記載の装置において、
前記制御手段は、前記情報を受信しないとき前記専用ドライバによって動作する機能は見せないようにする、ことを特徴とする装置。
【請求項４】
請求項１記載の装置において、
更に、前記専用ドライバによって動作する機能を前記上位装置に見せるか否かのフラグ情報を記憶した記憶手段を備え、
前記制御手段は、前記フラグ情報に基づいて前記専用ドライバで動作する機能を前記上位装置に見せるようにする、ことを特徴とする装置。
【請求項５】
請求項４記載の装置において、
前記制御手段は、前記情報を受信したときに前記専用ドライバによって動作する機能を前記上位装置に見せるように前記フラグ情報を切り換える、ことを特徴とする装置。
【請求項６】
請求項４記載の装置において、
前記制御手段は、前記フラグ情報から前記機能を前記上位装置に見せないときに前記装置内の内部記憶手段をストレージ機能とする情報を出力する、ことを特徴とする装置。
【請求項７】
請求項６記載の装置において、
前記専用ドライバによる動作を可能にするためのプログラムが前記内部記憶手段に格納され、前記プログラムは前記上位装置において実行される、ことを特徴とする装置。
【請求項８】
複数の機能を有する装置と接続可能な上位装置において、
前記複数の機能のうち専用ドライバによって動作する機能が隠され、かつ当該機能を動作させる前記専用ドライバが存在するとき、前記隠された機能を有効するにするための情報を前記装置に出力する制御手段、
を備えることを特徴とする上位装置。
【請求項９】
請求項８記載の上位装置において、
前記制御手段は、前記機能が隠され、かつ当該機能を動作させる専用ドライバが存在しないとき、前記機能が隠された状態のまま動作する、ことを特徴とする上位装置。
【請求項１０】
請求項８記載の上位装置において、
前記制御手段は、前記装置が隠す機能を有する装置であって、かつ前記装置から受信した情報のうち前記装置の有する機能の種別情報に前記専用ドライバによって動作する機能が含まれていないときに、前記機能が隠されていると判断する、ことを特徴とする上位装置。
【請求項１１】
複数の機能を有する装置と接続可能な上位装置において、
前記装置の内部記憶手段を前記装置のストレージ機能として示されたとき前記内部記憶手段に記憶されたプログラムを自動実行し、専用ドライバがあれば当該専用ドライバによって動作する、隠された前記機能を有効にするための情報を前記装置に出力する制御手段、
を備えることを特徴とする上位装置。
【請求項１２】
複数の機能を有する装置と接続可能な上位装置におけるプログラムであって、
前記複数の機能のうち専用ドライバによって動作する機能が隠され、かつ当該機能を動作させる前記専用ドライバが存在するとき、前記隠された機能を有効するにするための情報を前記装置に出力する処理、
をコンピュータに実行させるプログラム。
【請求項１３】
請求項１２記載のプログラムであって、
前記プログラムは前記上位装置に標準装備され、前記機能と前記専用ドライバとを結び付けるためのコンポジットドライバに含まれ、前記コンポジットドライバによって前記出力する処理をコンピュータに実行させる、ことを特徴とするプログラム。
【請求項１４】
請求項１２記載のプログラムであって、
前記プログラムは前記装置の内部記憶手段に記憶されたアプリケーションプログラムに含まれ、前記アプリケーションプログラムによって前記出力する処理をコンピュータに実行させることを特徴とするプログラム。
【請求項１５】
上位装置と接続可能な、複数の機能を有する下位装置において、
未通知の機能を有効にする要求情報を前記上位装置から受信したときに、当該未通知の機能を通知する制御手段、
を備えることを特徴とする下位装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機能を有する装置、及び当該装置と接続された上位装置に関する。詳しくは、隠された機能を有効にするための情報を受信するまでは上位装置に対して所定の機能を通知しないようにした装置、及び専用ドライバがあればその情報を出力するようにした上位装置に関する。
【背景技術】
【０００２】
従来から、プリンタや複写機などの装置はパーソナルコンピュータなどのホストコンピュータと接続して利用される。この接続に際し、近年ＵＳＢ（Universal Serial Bus）と呼ばれるインターフェースが普及している。ＵＳＢインターフェースは、一つのホストコンピュータに複数の装置（デバイス）を接続できるという利点を有する。
【０００３】
一方、ホストコンピュータにかかる装置を接続して利用するにはプリンタドライバなどの専用ドライバをインストールする必要があるが、ＵＳＢインターフェースは装置をホストに接続すると自動的に専用ドライバのインストールが行われる、いわゆるプラグアンドプレイの機能を備えている。従って、ＵＳＢはホストコンピュータの電源をオフにする等の煩雑な操作をユーザに強いることなく専用ドライバをインストールすることができるため、ユーザの利便性の向上を図ることができる。
【０００４】
しかし、専用ドライバをインストールする前にホストコンピュータに接続するとホストは接続された装置を「不明なデバイス」として誤って認識する場合がある。通常、ＵＳＢではホストと装置とを接続した際に、ホストは装置の有する機能（プリンタの機能やファクシミリの機能等）に関する情報を受信する。そして、専用ドライバが存在しない状態で装置を接続すると、その機能に関する情報を受信したにも拘わらず、その機能を動作させるための専用ドライバがホストに存在しないため、ホストは装置を「不明なデバイス」として認識する。一旦「不明なデバイス」として認識されると、ホストはレジストリと呼ばれるＯＳの設定データに当該装置を「不明なデバイス」として登録し、以後ユーザは当該機器の機能を使用できなくなる。
【０００５】
そこで、従来は、「不明なデバイス」として登録されたデバイスに対してそのレジストリを自動的に削除するようにしたものがある（例えば、以下の特許文献１）。
【特許文献１】特開２００１−３１２４５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１では「不明なデバイス」となっているレジストリを削除するため、レジストリパスを作成する等手順が複雑である。
【０００７】
そこで、本発明は上記問題点に鑑みてなされたもので、その目的は、ホストコンピュータに装置を接続しても複雑な手順を踏むことなく「不明なデバイス」として認識されないようにして、その装置を使用できるようにすることにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明は、上位装置と接続可能な、複数の機能を有する装置において、前記複数の機能のうち前記上位装置において専用ドライバによって動作する機能については隠された機能を有効にするための情報を前記上位装置から受信したときに前記上位装置に見せるようにする制御手段、を備えることを特徴としている。これにより、例えば、隠された機能を有効にするための情報が受信されるまでその機能は上位装置に見せないことになるため、上位装置ではその機能を動作させるための専用ドライバがない状態でもその装置は「不明なデバイス」とはならないことになる。
【０００９】
また、上記目的を達成するために本発明は、複数の機能を有する装置と接続可能な上位装置において、前記複数の機能のうち専用ドライバによって動作する機能が隠され、かつ当該機能を動作させる前記専用ドライバが存在するとき、前記隠された機能を有効するにするための情報を前記装置に出力する制御手段、を備えることを特徴としている。これにより、例えば、隠された機能を動作させるための専用ドライバがあれば隠された機能を有効にするための情報を出力するため、その後その機能が表明されても専用ドライバの存在により接続された装置は「不明なデバイス」とはならない。
【００１０】
更に、上記目的を達成するために本発明は、複数の機能を有する装置と接続可能な上位装置において、前記装置の内部記憶手段を前記装置のストレージ機能として示されたとき前記内部記憶手段に記憶されたプログラムを自動実行し、専用ドライバがあれば当該専用ドライバによって動作する、隠された前記機能を有効にするための情報を前記装置に出力する制御手段、を備えることを特徴としている。これにより、例えば、装置側の内部記憶手段に記憶されたプログラムによりアプリケーションが自動実行され、このアプリケーションにより隠された機能を有効にするための情報が装置に出力されるため、煩雑な手順を踏むことなく装置の機能を使用することができる。
【００１１】
更に、上記目的を達成するために本発明は、複数の機能を有する装置と接続可能な上位装置におけるプログラムであって、前記複数の機能のうち専用ドライバによって動作する機能が隠され、かつ当該機能を動作させる前記専用ドライバが存在するとき、前記隠された機能を有効するにするための情報を前記装置に出力する処理、をコンピュータに実行させるプログラムであることを特徴としている。これにより、例えば、隠された機能を動作させるための専用ドライバがあれば隠された機能を有効にするための情報を出力するため、その後その機能が表明されても専用ドライバの存在により接続された装置は「不明なデバイス」とはならない。
【００１２】
更に、上記目的を達成するために本発明は、上位装置と接続可能な、複数の機能を有する下位装置において、未通知の機能を有効にする要求情報を、前記上位装置から受信したときに、当該未通知の機能を通知する制御手段、を備えることを特徴としている。
【発明を実施するための最良の形態】
【００１３】
本発明を実施するための最良の形態について以下説明する。
【実施例１】
【００１４】
図１は本発明が適用されるシステムの一例を示す。図１に示すように本システムは、全体として、上位装置としてのホストコンピュータ１０と下位装置（デバイス）としてのプリンタ２０とから構成される。
【００１５】
ホストコンピュータ１０は、制御手段としてのＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、及びＵＳＢ−ＩＦ（インターフェース）１４とから構成され、互いにバスを介して接続される。また、プリンタ２０は、制御手段としてのＣＰＵ２１、内部記憶手段としてのＲＯＭ２２、ＲＡＭ２３、ＵＳＢ−ＩＦ２４、実装ストレージ部２５、及び印刷エンジン２６とから構成され、互いにバスを介して接続される。そして、ホストコンピュータ１０とプリンタ２０とはそれぞれのＵＳＢ−ＩＦ１４、２４によりケーブルを介して接続される。図１に示すハードウェア構成自体は既存のホストコンピュータ及びプリンタと同様の構成である。なお、実装ストレージ部２５はカードスロットやＭＯ（Magneto-Optical disk）やＨＤＤ（Hard Disk Drive）などから構成される。
【００１６】
このように構成されたシステムにおける動作について以下説明するが、まず、ＵＳＢインターフェースにおける一般的な動作について簡単に説明する。
【００１７】
ホストコンピュータ１０とプリンタ２０とが接続されると、ホスト１０は接続されたプリンタ２０の情報を得るためにデバイスリクエストと呼ばれるコマンドをプリンタ２０に出力する。プリンタ２０はこのコマンドに応答するためにディスクリプタと呼ばれる情報を返す。ＵＳＢでは種々のデバイスリクエストやディスクリプタが定義され、接続された装置の各種情報を得るようにしている。
【００１８】
ホストコンピュータ１０から出力されるこれらコマンド等のデータは実際にはＵＳＢ−ＩＦ１４、２４を介してプリンタ２０に出力されるが、図２に示すようにソフトウェア上エンドポイントと呼ばれる部分に対して出力される。このように、ＵＳＢの通信はホスト１０とエンドポイントとの間で行われる。このエンドポイントを装置に複数持たせるようにすることで種々の転送方法（ホスト１０への出力のみ、入出力双方等）が可能になる。
【００１９】
また、これらのエンドポイントをまとめてインターフェースと呼ばれる機能別の単位にまとめることができる。例えば、図１のプリンタ２０の例ではプリンタ機能を有するインターフェースと、実装ストレージ機能を有するインターフェースなどである。１つの装置内に複数のインターフェースを持たせることで、複数の機能を有するデバイスであるとホストコンピュータ１０に認識させることができる。
【００２０】
図３は、装置の構成例を示す図である。図３（Ａ）は、ストレージ機能のみ有する装置の例を示し、図３（Ｂ）はさらにプリンタ機能も有する装置の例である。装置ではこの構成に関する情報を保持し、ホスト１０からのデバイスリクエスト（一般に標準デバイスリクエストと呼ばれる）によりディスクリプタとしてこの情報を出力する。これにより、ホスト１０は装置の有する機能を認識することができる。なお、この標準デバイスリクエストは、装置のエンドポイントのうちエンドポイント＃０に対して出力される。そのため、エンドポイント＃０はＵＳＢとして接続される装置の全てに標準装備される必要がある。
【００２１】
次に、図４等を参照して本システムの動作について説明する。このうち、図４乃至図５はホストコンピュータ１０における動作である。
【００２２】
まず、プリンタ２０とホストコンピュータ１０とが接続されると（Ｓ１０）、ホストコンピュータ１０のＣＰＵ１１はエンドポイント＃０に対して標準デバイスディスクリプタを要求する（Ｓ１１）。具体的には、標準デバイスリクエストの一つであるGet_DESCRIPTORリクエストと呼ばれるコマンドが出力される。このコマンドを受けたプリンタ２０は、ディスクリプタの一つである標準デバイスディスクリプタをホスト１０に出力する。標準デバイスディスクリプタには装置の属性や特性に関する情報、例えば装置固有のＩＤ（プロダクトＩＤ）などの情報が含まれる。例えば、これらの情報がプリンタ２０のＲＯＭ２２などに格納されＣＰＵ２１によって読み出されることでかかる標準デバイスディスクリプタが出力される。
【００２３】
次いで、この標準デバイスディスクリプタを受信すると（Ｓ１２）、ＣＰＵ１１は接続された装置のデバイスタイプがコンポジットか否か判断する（Ｓ１３）。即ち、ＣＰＵ１１はデバイスクラスとして「コンポジット」を宣言している装置か否かを判断する。例えば、接続された装置がプリンタやファクシミリ等の複数の機能を備える複合機で「コンポジット」と宣言した装置や、プリンタなど単一の機能を有する装置であっても「コンポジット」と宣言した装置などである。ＣＰＵ１１は、受信した標準デバイスディスクリプタの「サブクラスコード」から、コンポジットか否かを判断する。
【００２４】
デバイスタイプがコンポジットでないとき（Ｓ１３でＮＯ）、処理は標準動作に移行し（図５のＳ２２）、本発明に係る処理は行われない。本発明に係る処理は、接続された装置のデバイスタイプが「コンポジット」と宣言された装置に対して行われるためである。
【００２５】
一方、デバイスタイプがコンポジットのとき（Ｓ１３でＹＥＳ）は、ホスト１０はコンポジットドライバを起動する（Ｓ１４）。ここでコンポジットドライバとは、装置の有するインターフェース（機能）と、その機能を動作させるための専用ドライバとを結びつけるためのドライバである。これにより、結び付けられた専用ドライバが動作することによってその機能が実現される。なお、結びつけは、例えば、ホスト１０のＲＡＭ１３などの所定アドレスに格納された機能に関する情報と専用ドライバとをポインタで接続する等により行われる。ここで、専用ドライバとは、ホストコンピュータ１０のＯＳ（Operating System）に標準装備された汎用ドライバとは異なり、ホスト１０において個別にインストールしなければならないドライバである。
【００２６】
次いで、ＣＰＵ１１はディスクリプタが対象機種のものか否か判断する（Ｓ１５）。即ち、接続された装置は専用ドライバによって動作する機能を隠すことができる機種か否かを判断する。例えば、対象機種のプロダクトＩＤがＲＯＭ１２などに格納され、受信した標準ディスクリプタに記述されたプロダクトＩＤとを比較することにより判断する。
【００２７】
対象機種の装置でないと（Ｓ１５でＮＯ）、本発明に係る処理を行うことができないため、処理は標準動作に移行する（Ｓ２２）。
【００２８】
一方、対象機種であれば（Ｓ１５でＹＥＳ）、ＣＰＵ１１は全体構成情報をプリンタ２０に要求する（Ｓ１６）。具体的には、ホスト１０からGet_CONFIGRATIONリクエストやＩＮトークンパケットを出力し、プリンタ２０からはこれらコマンドに対応する標準構成（コンフィグレーション）ディスクリプタや標準インターフェースディスクリプタを出力する。標準構成ディスクリプタによりプリンタ２０の有するインターフェース（機能）の数を得、標準インターフェースディスクリプタによりそのインターフェースの種類を得る。これらのディスクリプタにより、ホスト１０は図３に示すようなプリンタ２０の全体構成を得ることができる（図５のＳ１７）。
【００２９】
ここで、プリンタ２０は、ホスト１０において専用ドライバによって動作するインターフェース（機能）についてはそのインターフェースを隠してホスト１０にディスクリプタを返す。例えば、図１のプリンタ２０の構成に着目する。この例ではプリンタ２０にはプリンタとしての機能とストレージとしての機能との２つの機能を有する。この場合に、プリンタとしての機能を見せて、つまり、プリンタインターフェースを含めて、標準構成ディスクリプタと標準インターフェースディスクリプタとをホスト１０に出力すると、プリンタドライバがホスト１０にインストールされていれば問題ないが、インストールされていなければ、ホスト１０はプリンタ２０を「不明なデバイス」として認識する（レジストリにプリンタ２０を「不明なデバイス」として登録する）。ホスト１０ではプリンタとしての機能は見えているにも拘わらず、その機能を動作させるための専用ドライバがインストールされていないからである。
【００３０】
そこで、プリンタ２０のＣＰＵ２１はプリンタインターフェースを隠して、ストレージのインターフェースのみ存在するものとしてディスクリプタを出力する。一方、ストレージとしての機能は通常ホストコンピュータ１０の汎用ドライバとしてＯＳ内に標準装備されており、ドライバのインストールを個別に行う必要がない。そのため、ストレージとしてのインターフェースが存在するものとしてディスクリプタを返しても、ストレージ自体は「不明なデバイス」としてホスト１０は認識しない。本発明に係る装置は、個別にインストールしなければならない専用ドライバが必要な装置の機能は隠すように情報を出力し、汎用ドライバで動作する機能は見せるようにして情報をホスト１０に出力する。この例の場合に、ホスト１０は接続されたプリンタ２０を図３（Ａ）に示すように認識する。従って、ホスト１０では図６（Ａ）に示すようにレジストリが生成される。なお、このレジストリはＣＰＵ１１によって生成され、例えば、ＲＡＭ１３に格納される。
【００３１】
図５の処理に戻り、全体構成情報を受信すると、上述したコンポジットドライバによってプリンタインターフェースがあるか否かが判断される（Ｓ１９）。つまり、受信したディスクリプタからプリンタインターフェースが実際に隠されているか否かを判断する。プリンタ機能を隠すことができる機種であり（Ｓ１５でＹＥＳ）、しかもプリンタインターフェースがディスクリプタに含まれていなければ（Ｓ１９でＮＯ）、プリンタインターフェースが隠されていると判断することできるからである。なお、コンポジットドライバによってこの判断が行われるのは、プリンタの機能とプリンタドライバとを結び付けるための判断として必要だからである。
【００３２】
プリンタインターフェースがないと（Ｓ１９でＮＯ）、次いでコンポジットドライバによってプリンタドライバがインストールされているか否かが判断される（Ｓ２０）。そして、プリンタドライバがあれば（ＹＥＳ）、コンポジットドライバによってプリンタ２０に対して許可コマンドが発行される（Ｓ２１）。
【００３３】
ホスト１０にプリンタドライバがあれば、その後プリンタインターフェースが見える状態になっても、ホスト１０はプリンタ２０を「不明なデバイス」として認識しない。従って、コンポジットドライバはプリンタドライバと隠されたプリンタインターフェースの結び付けの動作をしてもよいと判断できる。
【００３４】
この許可コマンドは隠された機能を有効にするためのコマンドである。言い換えると未通知の機能を通知させるための要求情報である。この許可コマンドを受信したプリンタ２０はホスト２０から要求があれば隠されたインターフェースを含めてディスクリプタを返す。なお、許可コマンドは、デバイスリクエストにベンダー独自のリクエストを記述することができるため、このリクエストにより発行される。
【００３５】
一方、プリンタドライバがホスト１０にないとき（Ｓ２０でＮＯ）、プリンタとしての機能が見えていない状態のまま維持して標準動作に移行する（Ｓ２２）。この場合、ホスト１０にはプリンタドライバがなく、プリンタとしての機能も見えていない状態のため、ホスト１０はプリンタ２０を「不明なデバイス」として認識しない。
【００３６】
その後、許可コマンド（Ｓ２１）を受信したプリンタ２０は再接続動作をホスト１０に対して行う。再接続後のディスクリプタ等のやりとりで隠されたプリンタとしての機能を見せるためである。再接続動作は、まず、物理的な接続が行われたまま、ＣＰＵ２１によって所定のスイッチをダウンして信号線を遮断し論理的な切断を行う。その後、スイッチをアップさせて再接続を行う。
【００３７】
そして、再接続後、処理は図４のＳ１０に再び移行し、Ｓ１１からＳ２２までの処理が行われる。この場合に、プリンタ２０のＣＰＵ２１は、ディスクリプタにプリンタインターフェースを含めるようにすることでプリンタとしての機能をホスト１０に見せる（Ｓ１６、Ｓ１７）。ホスト１０ではプリンタ２０を図３（Ｂ）に示すように認識する。従って、ホスト１０では図６（Ｂ）に示すようにレジストリが生成される。また、再接続後の処理においては、ホスト１０はプリンタインターフェースが見える状態のため（Ｓ１９でＹＥＳ）、許可コマンド等の発行を再び行うことなく処理は標準動作に移行する（Ｓ２２）。
【００３８】
このように、プリンタ２０はホストコンピュータ１０と接続されると、ホスト１０から許可コマンドを受信しない限りそのプリンタとしての機能を隠し（プリンタとしての機能を通知しない）、許可コマンドを受信したときに初めてその機能をホスト１０に見せる（通知する）ようにしている。従って、ホスト１０にプリンタドライバがない状態であってもそのプリンタドライバによって動作する機能は許可コマンドを受信しない限り隠された状態でホスト１０に認識されるので、プリンタ２０は「不明なデバイス」にはならない。
【００３９】
一方、ホストコンピュータ１０は、プリンタ２０からの情報を基に隠されたプリンタとしての機能を認識し、その機能を動作させるためのプリンタドライバがあればその機能を有効にするための許可コマンドを装置に出力し、プリンタドライバがないとその機能が隠された状態のまま動作する。従って、プリンタドライバがあれば許可コマンドによりその後その機能を認識しても装置を「不明なデバイス」として認識しない。また、プリンタドライバがないとその機能が見えない状態のまま動作するので、この場合でもプリンタ２０を「不明なデバイス」として認識しない。また、かかる動作はホスト１０のコンポジットドライバによって行われるため、ユーザは複雑な手順を踏むことなくプリンタ２０の使用が可能となる。
【実施例２】
【００４０】
上述した例では、コンポジットドライバによって許可コマンドを発行する例について説明した。本実施例ではプリンタ２０のＲＯＭ２２に格納された自動実行アプリケーションによって許可コマンドを発行する例について説明する。
【００４１】
図７はプリンタ２０側の動作を示すフローチャートである。プリンタ２０が起動し（Ｓ３０）、ＣＰＵ２１はプリンタとしての機能をホスト１０に見せてよいか否か判断する（Ｓ３１）。例えば、標準デバイスディスクリプタや、標準構成ディスクリプタなどをホスト１０に出力する前に行われる。この判断は、図９に示すフラグ情報により行われる。ホスト１０から許可コマンドを受信するまではフラグ「０」の状態で、許可コマンドを受信するとフラグ「１」の状態となる。なお、このフラグ情報はＲＯＭ２２やＲＡＭ２３などに記憶される。
【００４２】
図７に戻り、プリンタとしての機能を見せないとき（Ｓ３１でＮＯ）、ＣＰＵ２１は内部ＲＯＭディスク（仮想ストレージ）をマスストレージクラスとして表明する（Ｓ３２）。許可コマンドを発行するアプリケーションが格納されたＲＯＭ２２をホスト１０に見せ、その後このアプリケーションをホスト１０で実行させるためである。このＲＯＭ２２には、具体的には「Autorun.inf」というファイルが格納されている。ホスト１０のＯＳ上において自動実行すべき種々のプログラム等が記述され、許可コマンド発行のためのアプリケーションも含まれる。
【００４３】
なお、プリンタ２０がこの内部ＲＯＭディスクをストレージとして表明した段階で、ホスト１０はその機能が隠されていることを判断できる。内部ＲＯＭディスクをホスト１０に見せることで、その後ホスト１０はＲＯＭ２２内のアプリケーションを実行し許可コマンドの発行を行うからである。従って、図９に示すように、プリンタ２０において、許可コマンドを受信するまでは（フラグ「０」）、プリンタの機能（プリンタインターフェース）を見せないようにするとともに、その後ホスト１０で許可コマンドの発行が行われるように仮想ストレージである内部ＲＯＭディスクを見せる。一方、許可コマンドを受信すると（フラグ「１」）プリンタの機能を見せるようにするとともに、その後ホスト１０において許可コマンドの発行が行われないように仮想ストレージを見せないようにしている。
【００４４】
その後、プリンタ２０側の処理は終了する（Ｓ３３）。
【００４５】
図８は、ホスト１０側の動作を示すフローチャートである。ホスト１０が起動すると（Ｓ４０）、ホスト１０はプリンタ２０から種々のディスクリプタを受信した後、プリンタ２０によって表明された仮想ストレージに接続する（Ｓ４１）。そして、ホスト１０はプリンタ２０のＲＯＭ２２から「Autorun.inf」を受信して、ＣＰＵ１１において許可コマンド発行のための自動実行アプリケーションが起動される（Ｓ４２）。なお、このアプリケーションはＯＳ上で実行される。
【００４６】
その後、このアプリケーションによって、プリンタドライバがホスト１０内に有るか否かが判断される（Ｓ４３）。ドライバが有れば（ＹＥＳ）、アプリケーションによって許可コマンドが発行される（Ｓ４４）。プリンタ２０において、隠されたプリンタとしての機能を見せるようにするためである。そして、処理は標準動作に移行する（Ｓ４５）。
【００４７】
一方、ドライバがないと（Ｓ４３でＮＯ）、隠されたプリンタの機能が見えていない状態を維持したまま、標準動作に移行する（Ｓ４５）。実施例１と同様である。
【００４８】
その後、プリンタ２０は、許可コマンドを受信するとフラグ情報を「１」に切り換える。そして、上述した実施例１と同様に再接続動作を行うことになる。ホスト１０に再接続後、プリンタ２０のＣＰＵ２１はフラグ情報からプリンタインターフェースをホスト１０に見せてよいと判断し（図７のＳ３１でＹＥＳ）、ディスクプリタにプリンタインターフェースも含めて情報を出力する等の処理を行う（Ｓ３４）。
【００４９】
図１０はプリンタ２０の構成例を示す図である。図９に示すフラグ情報においてフラグが「０」のときは、図１０（Ａ）のようにインターフェースが構成される。上述したようにプリンタ２０は内部ＲＯＭディスクを仮想ストレージとしてディスクリプタを出力する。また、フラグ「１」のときは同図（Ｂ）のようにインターフェースが構成される。この場合、プリンタ２０は許可コマンドを受信したのでプリンタインターフェースを含めてディスクリプタを出力する。
【００５０】
このように、プリンタ２０は許可コマンドを受信するまでプリンタとしての機能を見せないようにする点については実施例１と同様であるが、許可コマンドを発行するための自動実行アプリケーションをＲＯＭ２２に保持し、フラグ情報を基にプリンタとしての機能を見せないときにはこのＲＯＭ２２を仮想ストレージとして表明する。そして、プリンタ２０はホスト１０にこのアプリケーションを実行させ、ホスト１０にプリンタドライバがあればホスト１０から許可コマンドが発行される。従って、実施例１と同様にプリンタ２０は「不明なデバイス」として認識されず、更に、プリンタ２０がホスト１０に許可コマンド発行のためのアプリケーションを自動実行させるようにしているため、煩雑な手順を踏むことなくユーザはプリンタ２０を使用することができる。
【００５１】
上述の実施例１及び実施例２の例では、専用ドライバにより動作する機能としてプリンタを例にして説明した。これ以外にも専用ドライバが必要な、例えば、複写、ファクシミリ等の機能であってもよい。勿論、ホスト１０に接続された装置は許可コマンドを受けるまで、かかる機能を見せないようにし、発行されて始めて見せるようにする。この許可コマンド発行も上述した例と同様にコンポジットドライバや自動実行アプリケーションにより行われるようにすればよい。
【００５２】
また、上位装置に接続された装置としてプリンタ２０を例にして説明した。勿論、これ以外にも複写機能を有する複写機や、ファクシミリ機能を有するファクシリミ装置、これらの機能を有する複合機、等の種々の装置であっても同様に実施することができ、同様の作用効果を奏する。
【００５３】
更に、上述の例ではＵＳＢインターフェースを用いて説明したが、例えば、ＩＥＥＥ１３９４など種々のインターフェースを用いて同様に本発明を実施することが可能である。この場合でも上述した例と同様の作用効果を奏する。
【図面の簡単な説明】
【００５４】
【図１】ホストコンピュータとプリンタとの全体構成を示す図である。
【図２】ＵＳＢにおける通信方法を説明するための図である。
【図３】デバイス（プリンタ）の構成例を示す図である。
【図４】ホストコンピュータでの処理の動作を示すフローチャートである。
【図５】ホストコンピュータでの処理の動作を示すフローチャートである。
【図６】ホストコンピュータで生成されるレジストリの例を示す。
【図７】プリンタでの処理の動作を示すフローチャートである。
【図８】ホストコンピュータでの処理の動作を示すフローチャートである。
【図９】プリンタに格納されたフラグ情報の例を示す図である。
【図１０】デバイス（プリンタ）の構成例を示す図である。
【符号の説明】
【００５５】
１０  ホストコンピュータ、  １１  ＣＰＵ、  ２０  プリンタ、  ２１  ＣＰＵ、  ２２  ＲＯＭ（内部ＲＯＭディスク）
【図１】
2006178704.tif 000003
【図２】
2006178704.tif 000004
【図３】
2006178704.tif 000005
【図４】
2006178704.tif 000006
【図５】
2006178704.tif 000007
【図６】
2006178704.tif 000008
【図７】
2006178704.tif 000009
【図８】
2006178704.tif 000010
【図９】
2006178704.tif 000011
【図１０】
2006178704.tif 000012