(57)【要約】【課題】エンドポイントを削減でき、使い勝手が悪化したり適切な制御ができなくなったりすることのない複合機と、その複合機を制御するためのデバイス制御システムの提供。【解決手段】複合機１１は、ＰＣのＯＳには単一のＵＳＢ−ＬＵＮを持つＵＳＢストレージデバイスとして認識され、その結果、ＵＳＢ規格上、ＳＣＳＩ規格に準拠したデータ伝送経路が構築される。また、複合機１１は、ＳＣＳＩ規格上の論理ユニットを複数備えている。ＰＣから複合機１１に対してＳＣＳＩコマンドを発行する際には、ＳＣＳＩ−ＬＵＮ＝０〜３のいずれかを指定してＳＣＳＩコマンドを発行する。その結果、単一のデータ伝送用エンドポイントを介してデータが伝送され、そのデータはＳＣＳＩコマンド解析タスク１１１によってＳＣＳＩ−ＬＵＮ＝０〜３のいずれかに振り分けられ、カードリーダ機能、プリンタ機能、スキャナ機能、ＰＣ−ＦＡＸ機能のいずれかが機能する。【選択図】図２
2008245046.tif 000002
【特許請求の範囲】
【請求項１】
データストレージ機能、およびデータストレージ機能とは異なる機能の双方を少なくとも含む複数種の機能を備え、コンピュータとはＵＳＢ（Universal Serial Bus）インターフェースを介して接続可能な複合機であって、
前記コンピュータとの接続を確立する際に、ＵＳＢ規格で規定されたＵＳＢストレージクラスのデバイスであると、前記コンピュータが備えるＯＳ（Operating System）に認識させるための情報を出力するデバイス情報出力手段と、
ＳＣＳＩ規格に準拠したデータ形式とされたコマンドを含む出力データが前記コンピュータから伝送されてきた場合に、前記コマンド内に設けられたＬＵＮ（Logical Unit Number）フィールドの格納値に基づいて、前記出力データが前記複数種の機能のいずれを制
御するためのデータであるのかを判断して、前記複数種の機能のいずれかを制御する制御手段と
を備えることを特徴とする複合機。
【請求項２】
前記データストレージ機能とは異なる機能は、プリンタ機能、スキャナ機能、およびＦＡＸ機能の中から選ばれる少なくとも１種の機能である
ことを特徴とする請求項１に記載の複合機。
【請求項３】
前記制御手段は、前記ＬＵＮが０である場合に、前記データストレージ機能を制御するためのデータであると判断する
ことを特徴とする請求項１または請求項２に記載の複合機。
【請求項４】
コンピュータと、データストレージ機能、およびデータストレージ機能とは異なる機能の双方を少なくとも含む複数種の機能を備えた複合機とを、ＵＳＢインターフェースを介して接続してなるデバイス制御システムであって、
前記複合機は、
前記コンピュータとの接続を確立する際に、ＵＳＢ規格で規定されたＵＳＢストレージクラスのデバイスであると、前記コンピュータが備えるＯＳに認識させるための情報を出力するデバイス情報出力手段と、
ＳＣＳＩ規格に準拠したデータ形式とされたコマンドを含む出力データが前記コンピュータから伝送されてきた場合に、前記コマンド内に設けられたＬＵＮフィールドの格納値に基づいて、前記出力データが前記複数種の機能のいずれを制御するためのデータであるのかを判断して、前記複数種の機能のいずれかを制御するデバイス側制御手段と
を備え、
前記コンピュータは、
前記コンピュータ上で機能するデータ処理部からの指令に従って、前記複数種の機能のいずれかを制御するために前記コンピュータからの出力データを前記複合機に伝送する場合に、制御対象となる機能に対応する値を前記ＬＵＮフィールドに格納し、前記コマンドを含む前記出力データを前記複合機へと伝送するコンピュータ側制御手段
を備えることを特徴とするデバイス制御システム。
【請求項５】
前記データストレージ機能とは異なる機能は、プリンタ機能、スキャナ機能、およびＦＡＸ機能の中から選ばれる少なくとも１種の機能である
ことを特徴とする請求項４に記載のデバイス制御システム。
【請求項６】
前記コンピュータが備えるＯＳは、前記複合機をＵＳＢ規格で規定されたＵＳＢストレージクラスのデバイスであると認識した場合に、そのデバイスについて、ＳＣＳＩ規格で規定されたＬＵＮは０で、データストレージ機能を有するデバイスであると認識して、当該デバイスに対する制御を行うように構成されており、
前記複合機が備える前記制御手段は、前記ＬＵＮが０である場合に、前記データストレージ機能を制御するためのデータであると判断する
ことを特徴とする請求項４または請求項５に記載のデバイス制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合機、およびデバイス制御システムに関する。
【背景技術】
【０００２】
従来、ＵＳＢ（Universal Serial Bus）インターフェースを介して接続可能な複合機（ＭＦＰ；multifunction peripheral）は、既に実用化されている。また、この種の複合機における代表的な構成として、複数ある機能毎にデータ転送用のエンドポイントが用意されているものが知られている。
【０００３】
しかし、複数ある機能毎にエンドポイントを用意すると、多機能になるほどエンドポイント数の多い高価なハードウェアが必要になるため、複合機の製造コストが増大し、低価格な複合機を提供することが困難になる、という問題がある。
【０００４】
こうした問題に対し、下記特許文献１，２においては、複合機に実装されるエンドポイントの数を削減するための技術が提案されている（例えば、特許文献１，２参照。）。
例えば、特許文献１に記載の技術の場合、擬似的に、ある機能を備えたデバイスとの接続断、および別の機能を備えたデバイスとの接続が行われたものと、ホスト装置に認識させることで、同一エンドポイントを介して複数の機能を選択的に利用可能としている。
【０００５】
また、特許文献２に記載の技術の場合、データ転送用のエンドポイントとは別に用意される制御用のエンドポイントを利用してデータ転送をも実施することで、データ転送用のエンドポイントを削減している。
【特許文献１】特開２００１−２２２５０３号公報
【特許文献２】特開２００５−１７５９３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の技術では、複合機が備える様々な機能を利用するたびに、ホスト装置側においてデバイスドライバの切り替え（使用しないドライバの無効化、および使用するドライバのロード・有効化等）が発生する。そのため、デバイスドライバの切り替えに相応の時間を要し、また、２つの機能を同時に利用することはできない、という問題がある。
【０００７】
また、上記特許文献１に記載の技術では、複合機のある機能が作動中の場合、その作動が確実に完了するまでは別の機能に切り替えることができないので、どのようなタイミングで切替制御を行うべきか、その判断は容易ではない、という問題もある。
【０００８】
さらに、上記特許文献２に記載の技術では、制御用のエンドポイントがデータ転送に利用されてしまうため、大量にデータが転送されるような状況下では、データ転送に邪魔されて必要な制御を迅速に実施できない状態に陥るおそれがあった。
【０００９】
つまり、上記特許文献１，２に記載の技術によって、エンドポイントを削減することはできても、その結果として、複合機の使い勝手が悪くなったり、適切な制御ができなくなったりするおそれがあった。
【００１０】
本発明は、上記問題を解決するためになされたものであり、その目的は、エンドポイン
トを削減することができ、しかも、使い勝手が悪化したり適切な制御ができなくなったりすることのない複合機と、そのような複合機を制御するためのデバイス制御システムを提供することにある。
【課題を解決するための手段】
【００１１】
以下、本発明において採用した構成について説明する。
請求項１に記載の複合機は、データストレージ機能、およびデータストレージ機能とは異なる機能の双方を少なくとも含む複数種の機能を備え、コンピュータとはＵＳＢインターフェースを介して接続可能な複合機であって、前記コンピュータとの接続を確立する際に、ＵＳＢ規格で規定されたＵＳＢストレージクラスのデバイスであると、前記コンピュータが備えるＯＳに認識させるための情報を出力するデバイス情報出力手段と、ＳＣＳＩ規格に準拠したデータ形式とされたコマンドを含む出力データが前記コンピュータから伝送されてきた場合に、前記コマンド内に設けられたＬＵＮフィールドの格納値に基づいて、前記出力データが前記複数種の機能のいずれを制御するためのデータであるのかを判断して、前記複数種の機能のいずれかを制御する制御手段とを備えることを特徴とする。
【００１２】
このように構成された複合機によれば、コンピュータとの接続を確立する際には、複合機のことを、ＵＳＢ規格で規定されたＵＳＢストレージクラスのデバイスであると、コンピュータが備えるＯＳに認識させることができる。
【００１３】
そのため、コンピュータ側では、複合機のために単一のＵＳＢストレージドライバが用意され、その結果、コンピュータ−複合機間では、ＵＳＢ規格の通信プロトコルに則ってデータ伝送ができる状態になる。
【００１４】
この状態になった場合、上記のようなコンピュータとＵＳＢストレージクラスのデバイスは、内部的には、ＳＣＳＩ規格に準拠した方式でデータ伝送を行うことが、ＵＳＢ規格において規定されている。
【００１５】
ここで、ＳＣＳＩ規格に準拠したデバイスは、ＳＣＳＩ規格上、単一のデバイス内に複数の論理ユニットを持つことができる。また、コンピュータは、各論理ユニットの機能を制御するためのコマンドとして、ＳＣＳＩ規格に準拠したデータ形式とされたコマンド（以下、ＳＣＳＩコマンドともいう。）を発行することができる。
【００１６】
コマンドの発行対象となる論理ユニットを指定する方法は、ＳＣＳＩ規格上、いくつかの方法が規定されているが、ＳＣＳＩ−１では、コマンド内に設けられたＬＵＮフィールドを利用して、一つの論理ユニットを指定する方法が用意されている。
【００１７】
そこで、本発明においては、複合機が、上記の通り、ＵＳＢ規格上、ＳＣＳＩ規格準拠のデバイスとして機能し、さらに、ＳＣＳＩ規格上、複数の論理ユニットを持つデバイスとして機能するように構成した。そして、コンピュータから各論理ユニットへＳＣＳＩコマンドへ伝送する方法としては、ＳＣＳＩ−１に準拠した方法で各論理ユニットへコマンドが伝送されるように構成した。
【００１８】
具体的には、複合機の制御手段は、ＳＣＳＩコマンドを含む出力データがコンピュータから伝送されてきた場合、ＳＣＳＩコマンド中にあるＬＵＮフィールドの格納値に基づいて、出力データが複数種の機能のいずれを制御するためのデータであるのかを判断する。そして、その判断結果に基づいて、複数種の機能のいずれかを制御する。
【００１９】
このような制御を行うことにより、複合機は、複数の論理ユニットを持つデバイスとし
て機能し、コンピュータからの出力データが各論理ユニットへと伝送されることにより、伝送対象となった論理ユニットに対応する機能が作動することになる。
【００２０】
したがって、複合機が備える複数種の機能の内、どの機能を利用するのかをコンピュータ側で指定する際には、ＳＣＳＩコマンド内にあるＬＵＮフィールドの格納値によって、所望の機能を指定できることになる。
【００２１】
なお、以上のような構成を採用しているので、上記複合機は、コンピュータに対しては、ＳＣＳＩ−１準拠のデバイスとして振る舞うことになる。あるいは、例えば、準拠するＳＣＳＩのバージョンが不明なデバイスとして振る舞うことも許容される。
【００２２】
ただし、ＳＣＳＩ規格上、ＳＣＳＩ−２以降準拠のデバイスは、コマンド内に設けられたＬＵＮフィールドの格納値を無視する旨が規定されている。したがって、本発明の如く、複合機がＬＵＮフィールドの格納値を無視しない場合、複合機は、ＳＣＳＩ規格上、少なくともＳＣＳＩ−２以降準拠のデバイスには該当しなくなる。
【００２３】
以上説明したような方式でデータ伝送を行うに当たって、コンピュータが備えるＯＳは、複合機のことを単一のＵＳＢストレージデバイスと認識してデータ伝送を行うだけであり、ＳＣＳＩ規格上の論理ユニットが単一なのか複数あるのかについては関知しない。
【００２４】
そのため、いずれの論理ユニットに対するデータ伝送を行う場合であっても、ＵＳＢ規格上は、同一の論理的な通信路を介してデータ伝送を実施することになり、複合機側では、入力用および出力用のエンドポイントを１つずつ用意すれば済む。
【００２５】
したがって、上記複合機によれば、ＵＳＢ規格上、１つの機能毎にそれぞれに対応する入力用および出力用のエンドポイントが１つずつ用意されるＵＳＢ複合デバイスとは異なり、個々の機能毎に入力用および出力用のエンドポイントを１つずつ用意しなくてもよくなるので、その分だけエンドポイント数を削減することができる。
【００２６】
また、複数の機能を利用するに当たって、あるＵＳＢデバイスとの接続を断って、別のＵＳＢデバイスとの接続を確立するといった状況を擬似的に作り出す必要はない。したがって、コンピュータ側で、デバイスドライバの切り替えに時間を要するといった問題はなく、複数の機能を同時に利用することもできる。
【００２７】
さらに、制御用のエンドポイントがデータ転送に利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
【００２８】
なお、本発明において利用するＬＵＮは、ＳＣＳＩ規格で規定されたＬＵＮであり、ＵＳＢ規格で規定されたＬＵＮとは別のものである。すなわち、ＬＵＮは、ＵＳＢ規格でも規定されており、ＵＳＢストレージデバイスの場合、ＵＳＢ規格上、単一のデバイスが複数のＬＵＮを持つことができる。
【００２９】
しかし、本発明においては、ＳＣＳＩ規格で規定されたＬＵＮを利用しているので、ＵＳＢ規格上は単一の論理ユニットとして認識される構成が、ＳＣＳＩ規格上は複数の論理ユニットとして認識されるものとなる。
【００３０】
ただし、本発明において、ＵＳＢ規格上の論理ユニットが単一であるか複数であるかは任意であり、ＵＳＢ規格上、複数の論理ユニットが存在する構成を採用しても構わない。しかも、ＵＳＢ規格上、複数の論理ユニットが存在する構成を採用した場合は、それら複
数の論理ユニットそれぞれが本発明の構成を採用し得るものとなる。
【００３１】
すなわち、本発明は、ＵＳＢ規格上の単一論理ユニットに対して、ＳＣＳＩ規格上の論理ユニットを複数持たせる構成を採用しているが、このような構成を、ＵＳＢ規格上の複数論理ユニットそれぞれにおいて採用してもよいのである。このような構成を採用すれば、複合機が備える論理ユニットの数をさらに増やすことができるので、個別に制御可能な機能を論理ユニット数分だけ備える複合機において、さらなる多機能化を図ることもできる。
【００３２】
次に、請求項２に記載の複合機は、請求項１に記載の複合機において、前記データストレージ機能とは異なる機能は、プリンタ機能、スキャナ機能、およびＦＡＸ機能の中から選ばれる少なくとも１種の機能であることを特徴とする。
【００３３】
このように構成された複合機によれば、コンピュータが備えるＯＳには、複合機をＵＳＢストレージクラスの単一デバイスであると認識させているにもかかわらず、複数種の機能それぞれに対応するＬＵＮをコンピュータ側で指定することにより、コンピュータからは、データストレージ機能の他に、プリンタ機能、スキャナ機能、およびＦＡＸ機能の中から選ばれる少なくとも１種の機能をも制御できるようになる。
【００３４】
次に、請求項３に記載の複合機は、請求項１または請求項２に記載の複合機において、前記制御手段は、前記ＬＵＮが０である場合に、前記データストレージ機能を制御するためのデータであると判断することを特徴とする。
【００３５】
このように構成された複合機によれば、ＯＳが標準的に備える機能をそのまま利用して、データストレージ機能を制御することができる。
より詳しくは、コンピュータが備えるＯＳの中には、複合機をＵＳＢ規格で規定されたＵＳＢストレージクラスのデバイスであると認識した場合に、そのデバイスについて、ＳＣＳＩ規格で規定されたＬＵＮは０で、データストレージ機能を有するデバイスであるとの前提で制御を行うものがある。
【００３６】
したがって、このようなＯＳを採用している場合に、複合機側において、ＬＵＮが０である場合にデータストレージ機能を制御するためのデータであると判断するように構成しておけば、ＯＳが標準的に備える機能をそのまま利用して、データストレージ機能を制御することができる。
【００３７】
次に、請求項４に記載のデバイス制御システムは、コンピュータと、データストレージ機能、およびデータストレージ機能とは異なる機能の双方を少なくとも含む複数種の機能を備えた複合機とを、ＵＳＢインターフェースを介して接続してなるデバイス制御システムであって、前記複合機は、前記コンピュータとの接続を確立する際に、ＵＳＢ規格で規定されたＵＳＢストレージクラスのデバイスであると、前記コンピュータが備えるＯＳに認識させるための情報を出力するデバイス情報出力手段と、ＳＣＳＩ規格に準拠したデータ形式とされたコマンドを含む出力データが前記コンピュータから伝送されてきた場合に、前記コマンド内に設けられたＬＵＮフィールドの格納値に基づいて、前記出力データが前記複数種の機能のいずれを制御するためのデータであるのかを判断して、前記複数種の機能のいずれかを制御するデバイス側制御手段とを備え、前記コンピュータは、前記コンピュータ上で機能するデータ処理部からの指令に従って、前記複数種の機能のいずれかを制御するために前記コンピュータからの出力データを前記複合機に伝送する場合に、制御対象となる機能に対応する値を前記ＬＵＮフィールドに格納し、前記コマンドを含む前記出力データを前記複合機へと伝送するコンピュータ側制御手段を備えることを特徴とする
。
【００３８】
このように構成されたデバイス制御システムによれば、コンピュータと複合機との接続を確立する際には、複合機のことを、ＵＳＢ規格で規定されたＵＳＢストレージクラスのデバイスであると、コンピュータが備えるＯＳに認識させることができる。
【００３９】
そのため、コンピュータ側では、複合機のために単一のＵＳＢストレージドライバが用意され、その結果、コンピュータ−複合機間では、ＵＳＢ規格の通信プロトコルに則ってデータ伝送ができる状態になる。
【００４０】
この状態になった場合、上記のようなコンピュータとＵＳＢストレージクラスのデバイスは、内部的には、ＳＣＳＩ規格に準拠した方式でデータ伝送を行うことが、ＵＳＢ規格において規定されている。
【００４１】
ここで、ＳＣＳＩ規格に準拠したデバイスは、ＳＣＳＩ規格上、単一のデバイス内に複数の論理ユニットを持つことができる。また、コンピュータは、各論理ユニットの機能を制御するためのコマンドとして、ＳＣＳＩコマンドを発行することができる。
【００４２】
コマンドの発行対象となる論理ユニットを指定する方法は、ＳＣＳＩ規格上、いくつかの方法が規定されているが、ＳＣＳＩ−１では、コマンド内に設けられたＬＵＮフィールドを利用して、一つの論理ユニットを指定する方法が用意されている。
【００４３】
そこで、本発明においては、複合機が、上記の通り、ＵＳＢ規格上、ＳＣＳＩ規格準拠のデバイスとして機能し、さらに、ＳＣＳＩ規格上、複数の論理ユニットを持つデバイスとして機能するように構成した。そして、コンピュータから各論理ユニットへＳＣＳＩコマンドへ伝送する方法としては、ＳＣＳＩ−１に準拠した方法で各論理ユニットへコマンドが伝送されるように構成した。
【００４４】
具体的には、複合機の制御手段は、ＳＣＳＩコマンドを含む出力データがコンピュータから伝送されてきた場合、ＳＣＳＩコマンド中にあるＬＵＮフィールドの格納値に基づいて、出力データが複数種の機能のいずれを制御するためのデータであるのかを判断する。そして、その判断結果に基づいて、複数種の機能のいずれかを制御する。
【００４５】
このような制御を行うことにより、複合機は、複数の論理ユニットを持つデバイスとして機能し、コンピュータからの出力データが各論理ユニットへと伝送されることにより、伝送対象となった論理ユニットに対応する機能が作動することになる。
【００４６】
したがって、複合機が備える複数種の機能の内、どの機能を利用するのかをコンピュータ側で指定する際には、ＳＣＳＩコマンド内にあるＬＵＮフィールドの格納値によって、所望の機能を指定できることになる。
【００４７】
なお、以上のような構成を採用しているので、上記複合機は、コンピュータに対しては、ＳＣＳＩ−１準拠のデバイスとして振る舞うことになる。あるいは、例えば、準拠するＳＣＳＩのバージョンが不明なデバイスとして振る舞うことも許容される。
【００４８】
ただし、ＳＣＳＩ規格上、ＳＣＳＩ−２以降準拠のデバイスは、コマンド内に設けられたＬＵＮフィールドの格納値を無視する旨が規定されている。したがって、本発明の如く、複合機がＬＵＮフィールドの格納値を無視しない場合、複合機は、ＳＣＳＩ規格上、少なくともＳＣＳＩ−２以降準拠のデバイスには該当しなくなる。
【００４９】
以上説明したような方式でデータ伝送を行うに当たって、コンピュータが備えるＯＳは、複合機のことを単一のＵＳＢストレージデバイスと認識してデータ伝送を行うだけであり、ＳＣＳＩ規格上の論理ユニットが単一なのか複数あるのかについては関知しない。
【００５０】
そのため、いずれの論理ユニットに対するデータ伝送を行う場合であっても、ＵＳＢ規格上は、同一の論理的な通信路を介してデータ伝送を実施することになり、複合機側では、入力用および出力用のエンドポイントを１つずつ用意すれば済む。
【００５１】
したがって、上記複合機によれば、ＵＳＢ規格上、１つの機能毎にそれぞれに対応する入力用および出力用のエンドポイントが１つずつ用意されるＵＳＢ複合デバイスとは異なり、個々の機能毎に入力用および出力用のエンドポイントを１つずつ用意しなくてもよくなるので、その分だけエンドポイント数を削減することができる。
【００５２】
また、複数の機能を利用するに当たって、あるＵＳＢデバイスとの接続を断って、別のＵＳＢデバイスとの接続を確立するといった状況を擬似的に作り出す必要はない。したがって、コンピュータ側で、デバイスドライバの切り替えに時間を要するといった問題はなく、複数の機能を同時に利用することもできる。
【００５３】
さらに、制御用のエンドポイントがデータ転送に利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
【００５４】
なお、本発明において利用するＬＵＮは、ＳＣＳＩ規格で規定されたＬＵＮであり、ＵＳＢ規格で規定されたＬＵＮとは別のものである。すなわち、ＬＵＮは、ＵＳＢ規格でも規定されており、ＵＳＢストレージデバイスの場合、ＵＳＢ規格上、単一のデバイスが複数のＬＵＮを持つことができる。
【００５５】
しかし、本発明においては、ＳＣＳＩ規格で規定されたＬＵＮを利用しているので、ＵＳＢ規格上は単一の論理ユニットとして認識される構成が、ＳＣＳＩ規格上は複数の論理ユニットとして認識されるものとなる。
【００５６】
ただし、本発明において、ＵＳＢ規格上の論理ユニットが単一であるか複数であるかは任意であり、ＵＳＢ規格上、複数の論理ユニットが存在する構成を採用しても構わない。しかも、ＵＳＢ規格上、複数の論理ユニットが存在する構成を採用した場合は、それら複数の論理ユニットそれぞれが本発明の構成を採用し得るものとなる。
【００５７】
すなわち、本発明は、ＵＳＢ規格上の単一論理ユニットに対して、ＳＣＳＩ規格上の論理ユニットを複数持たせる構成を採用しているが、このような構成を、ＵＳＢ規格上の複数論理ユニットそれぞれにおいて採用してもよいのである。このような構成を採用すれば、複合機が備える論理ユニットの数をさらに増やすことができるので、個別に制御可能な機能を論理ユニット数分だけ備える複合機において、さらなる多機能化を図ることもできる。
【００５８】
次に、請求項５に記載のデバイス制御システムは、請求項４に記載のデバイス制御システムにおいて、前記データストレージ機能とは異なる機能は、プリンタ機能、スキャナ機能、およびＦＡＸ機能の中から選ばれる少なくとも１種の機能であることを特徴とする。
【００５９】
このように構成されたデバイス制御システムによれば、コンピュータが備えるＯＳには、複合機をＵＳＢストレージクラスの単一デバイスであると認識させているにもかかわらず、複数種の機能それぞれに対応するＬＵＮをコンピュータ側で指定することにより、コ
ンピュータからは、データストレージ機能の他に、プリンタ機能、スキャナ機能、およびＦＡＸ機能の中から選ばれる少なくとも１種の機能をも制御できるようになる。
【００６０】
次に、請求項６に記載のデバイス制御システムは、請求項４または請求項５に記載のデバイス制御システムにおいて、前記コンピュータが備えるＯＳは、前記複合機をＵＳＢ規格で規定されたＵＳＢストレージクラスのデバイスであると認識した場合に、そのデバイスについて、ＳＣＳＩ規格で規定されたＬＵＮは０で、データストレージ機能を有するデバイスであると認識して、当該デバイスに対する制御を行うように構成されており、前記複合機が備える前記制御手段は、前記ＬＵＮが０である場合に、前記データストレージ機能を制御するためのデータであると判断することを特徴とする。
【００６１】
このように構成されたデバイス制御システムによれば、コンピュータのＯＳが、複合機をＯＳがＵＳＢストレージクラスのデバイスであると認識して制御を行うだけで、複合機のデータストレージ機能を制御することができるので、ＯＳが標準的に備える機能をそのまま利用して、複合機のデータストレージ機能を制御することができる。
【発明を実施するための最良の形態】
【００６２】
次に、本発明の実施形態について、より具体的な例を挙げて説明する。
［デバイス制御システムの構成］
図１は、本発明の一例として例示するデバイス制御システム全体のブロック図である。
【００６３】
このデバイス制御システムは、複合機１１およびＰＣ（Personal Computer）１２を備
えてなる。複合機１１およびＰＣ１２は、双方ともＵＳＢインターフェースを有するもので、ＵＳＢ−ＨＵＢ１３を介して接続されて相互間でデータ伝送ができるようになっている。また、ＵＳＢ−ＨＵＢ１３には、他のＵＳＢデバイス１４なども接続されている。
【００６４】
本実施形態において、複合機１１は、プリンタ機能、スキャナ機能、ＰＣ−ＦＡＸ機能、カードリーダ機能（本発明でいうデータストレージ機能の一種）などを備える多機能デバイスで、これらの機能をＰＣ１２から制御できるようになっている。
【００６５】
［複合機の内部構成］
図２は、複合機１１の内部構成を示すブロック図である。
複合機１１は、ＵＳＢインターフェースを構成するためのハードウェアとして、ＵＳＢプロトコルエンジン１０１、制御回路１０３、およびカードリーダ系データ入出力回路１０５などを備えている。ＰＣ１２との間でデータ伝送を行う際には、上記ＵＳＢプロトコルエンジン１０１による制御下で、ＵＳＢ規格の通信プロトコルにてデータが伝送される。
【００６６】
これらのハードウェアは、エンドポイントを介してＰＣ１２との間でデータを伝送するように構成されている。具体的には、制御回路１０３は、コントロール転送用のエンドポイント（以下、ＥＰ０と称する。）を介して、ＰＣ１２との間で各種制御データの入出力（双方向通信）を行う。
【００６７】
また、カードリーダ系データ入出力回路１０５は、入力データ用のエンドポイント（以下、ＥＰ１と称する。）を介して、ＰＣ１２への入力データを伝送する。また、カードリーダ系データ入出力回路１０５は、出力データ用のエンドポイント（以下、ＥＰ２と称する。）を介して、ＰＣ１２から伝送されてくる出力データを取得する。
【００６８】
また、複合機１１は、複合機１１内で機能するソフトウェアの１つとして、ＳＣＳＩコマンド解析タスク１１１を備えている。
カードリーダ系データ入出力回路１０５からＳＣＳＩコマンド解析タスク１１１へデータが伝送されてきた場合、ＳＣＳＩコマンド解析タスク１１１は、データ中に含まれる情報に基づいて、４系統あるデータ処理系のいずれかへデータを振り分ける。
【００６９】
より具体的には、本実施形態において、上記「４系統あるデータ処理系」は、カードリーダ機能、プリンタ機能、スキャナ機能、ＰＣ−ＦＡＸ機能、以上４機能に対応するデータ処理系となっている。
【００７０】
また、ＳＣＳＩコマンド解析タスク１１１へ伝送されてくるデータ中には、ＰＣ１２において発行されたＳＣＳＩコマンドが含まれており、そのＳＣＳＩコマンド内には、ＬＵＮフィールドと呼ばれる領域が設けられている。
【００７１】
ＳＣＳＩコマンド解析タスク１１１では、上記ＬＵＮフィールドの格納値（以下、ＳＣＳＩ−ＬＵＮと称する。）に基づいて、ＰＣ１２からの出力データが、複数種の機能（カードリーダ機能、プリンタ機能、スキャナ機能、ＰＣ−ＦＡＸ機能）のいずれを制御するためのデータであるのかを判断する。
【００７２】
具体的には、ＳＣＳＩ−ＬＵＮ＝０であれば、カードリーダ機能を制御するためのデータであると判断され、ＳＣＳＩ−ＬＵＮ＝１であれば、プリンタ機能を制御するためのデータであると判断される。また、ＳＣＳＩ−ＬＵＮ＝２であれば、スキャナ機能を制御するためのデータであると判断され、ＳＣＳＩ−ＬＵＮ＝３であれば、ＰＣ−ＦＡＸ機能を制御するためのデータであると判断される。
【００７３】
このような判断を行った上で、ＳＣＳＩコマンド解析タスク１１１は、上記４系統あるデータ処理系のいずれかへデータを振り分けるのである。また、その結果、４系統あるデータ処理系のいずれかからＳＣＳＩコマンド解析タスク１１１へデータが伝送されてきた場合、ＳＣＳＩコマンド解析タスク１１１は、そのデータをカードリーダ系データ入出力回路１０５へ伝送する。
【００７４】
ＳＣＳＩコマンド解析タスク１１１が、上記４系統あるデータ処理系の内、ＳＣＳＩ−ＬＵＮ＝０側（図２参照）へデータを振り分けた場合、そのデータはメモリスロット入出力制御タスク１２１へと伝送される。メモリスロット入出力制御タスク１２１は、第１メモリスロット１３１、第２メモリスロット１３２、第３メモリスロット１３３、および第４メモリスロット１３４を制御するためのソフトウェアである。
【００７５】
第１メモリスロット１３１、第２メモリスロット１３２、第３メモリスロット１３３、第４メモリスロット１３４は、いずれもメモリカードがマウントされるスロットで、それぞれが他のスロットとは異なる規格のメモリカードをマウントできる構造になっている。
【００７６】
なお、本実施形態において、第１メモリスロット１３１、第２メモリスロット１３２、第３メモリスロット１３３、および第４メモリスロット１３４は、それぞれが排他的に利用可能となるものである。例えば、第１メモリスロット１３１にメモリカードがマウントされた場合、そのメモリカードがアンマウントされるまで、他のスロットは利用不能となる。
【００７７】
また、ＳＣＳＩコマンド解析タスク１１１が、上記４系統あるデータ処理系の内、ＳＣＳＩ−ＬＵＮ＝１側へデータを振り分けた場合、そのデータはプリンタ入出力タスク１５
１へと伝送される。プリンタ入出力タスク１５１へ伝送されたデータは、さらに印字制御タスク１６１へと伝送されて、印字制御タスク１６１によってプリンタハードウェア１７１が制御される。
【００７８】
また、ＳＣＳＩコマンド解析タスク１１１が、上記４系統あるデータ処理系の内、ＳＣＳＩ−ＬＵＮ＝２側へデータを振り分けた場合、そのデータはスキャナ入出力タスク１５３へと伝送される。スキャナ入出力タスク１５３へ伝送されたデータは、さらにスキャナ制御タスク１６３へと伝送されて、スキャナ制御タスク１６３によってスキャナハードウェア１７３が制御される。
【００７９】
また、ＳＣＳＩコマンド解析タスク１１１が、上記４系統あるデータ処理系の内、ＳＣＳＩ−ＬＵＮ＝３側へデータを振り分けた場合、そのデータはＰＣ−ＦＡＸ入出力タスク１５５へと伝送される。ＰＣ−ＦＡＸ入出力タスク１５５へ伝送されたデータは、さらにモデム制御タスク１６５へと伝送されて、モデム制御タスク１６５によってモデムハードウェア１７５が制御される。
【００８０】
［ＰＣの内部構成］
図３は、ＰＣ１２の内部構成を示すブロック図である。
ＰＣ１２においては、ＯＳによる標準機能として、ＵＳＢプロトコルスタック２０１、ＵＳＢストレージドライバ２０３、ＳＣＳＩコマンド処理部２１１、リムーバブルディスクドライバ２２１、ファイルシステム２３１などが機能する。
【００８１】
また、ＰＣ１２においては、複合機１１に対応する専用ソフトウェアとして、プリントポートドライバ２２３、スキャナドライバ２２５（本発明でいうデバイスドライバの一例に相当）、プリンタドライバ２６１（本発明でいうデバイスドライバの一例に相当）などが機能する。
【００８２】
さらに、ＰＣ１２においては、これらの機能を利用するアプリケーションソフトウェアとして、印刷可能アプリケーション２７１、スキャン可能アプリケーション２７３、ＰＣ−ＦＡＸアプリケーション２７５などが機能する。
【００８３】
加えて、本実施形態において、ＰＣ１２が備えるＯＳとしては、Ｗｉｎｄｏｗｓ（登録商標）が利用されており、ＰＣ１２においては、Ｗｉｎｄｏｗｓ（登録商標）付属のソフトウェアであるエクスプローラ２７７なども機能する。ただし、ＰＣ１２が備えるＯＳは、同等な機能を実現できるものであれば、Ｗｉｎｄｏｗｓ（登録商標）以外のＯＳであってもよい。
【００８４】
なお、ＰＣ１２においては、他のＵＳＢデバイス１４に対応する他のＵＳＢデバイスのドライバ２８１なども機能する。
これらの内、ＵＳＢプロトコルスタック２０１は、ＰＣ１２の起動に伴って機能し、その後は、図４に示すように、ＰＣ１２にＵＳＢデバイスが接続されたかどうかを定期的に監視する。
【００８５】
ここで、複合機１１がＰＣ１２に接続された場合は、複合機１１からの応答がＰＣ１２に返されるので、ＵＳＢプロトコルスタック２０１は、複合機１１に対してデバイスタイプについての応答を要求する。この要求に対し、複合機１１はＵＳＢストレージクラスである旨の応答を返すので、ＰＣ１２では、ＵＳＢストレージドライバ２０３がロードされ、その結果、ＵＳＢストレージドライバ２０３が機能する状態に移行する。
【００８６】
ＵＳＢストレージドライバ２０３が機能すると、ＵＳＢストレージドライバ２０３は、複合機１１に対して最大ＬＵＮを要求する。なお、ここでいう「ＬＵＮ」は、ＵＳＢ規格上のＬＵＮであり、先に説明したＳＣＳＩ−ＬＵＮとは別のものである。そこで、以下の説明においては、ＵＳＢ規格上のＬＵＮを「ＵＳＢ−ＬＵＮ」と称することにより、先に説明した「ＳＣＳＩ−ＬＵＮ」と区別できるようにする。
【００８７】
さて、上記のようなＰＣ１２からの要求に対し、複合機１１は最大ＵＳＢ−ＬＵＮ（本実施形態の場合はＵＳＢ−ＬＵＮ＝０）を返すので、ＰＣ１２では、ＵＳＢ−ＬＵＮ＝０に対応する１つの論理ユニットが存在することを認識し、その１つの論理ユニットに対応するＳＣＳＩコマンド処理部２１１が作られる。このＳＣＳＩコマンド処理部２１１は、ＵＳＢストレージドライバ２０３経由で複合機へＳＣＳＩコマンドを伝送するための入口である。
【００８８】
ＳＣＳＩコマンド処理部２１１が作られると、ＳＣＳＩコマンド処理部２１１は、ＵＳＢ−ＬＵＮ＝０の論理ユニットに対してＳＣＳＩコマンドの“Ｉｎｑｕｉｒｙ”を発行する。これに対し、複合機１１からはリムーバブルＨＤである旨の応答が返されるので、ＰＣ１２では、リムーバブルディスクドライバ２２１がロードされる。
【００８９】
これにより、ＵＳＢ−ＬＵＮ＝０の論理ユニットがファイルシステム２３１と結合し、その結果、ＵＳＢ−ＬＵＮ＝０の論理ユニットに対応するドライブレターが割り当てられる。以降、そのドライブレターを指定すれば、ＵＳＢ−ＬＵＮ＝０の論理ユニットに対するアクセスを行うことができる状態になる。
【００９０】
以上のような手順で各ドライバ類等がロードされると、ＰＣ１２とＵＳＢ−ＬＵＮ＝０の論理ユニットとの間で論理的な通信路が構築され、この通信路を介してＳＣＳＩ規格に準拠した方式でデータ伝送を実施できる状態になる。ただし、その際、ＰＣ１２のＯＳは、ＵＳＢ−ＬＵＮ＝０の論理ユニットは認識するものの、ＳＣＳＩ規格上の論理ユニットがどのような構成になっているのかについては一切関知しない。
【００９１】
より具体的には、ＰＣ１２がＵＳＢ−ＬＵＮ＝０の論理ユニットとの間でデータ伝送を行う際には、ＯＳ標準のリムーバブルディスクドライバ２２１が、無条件にＳＣＳＩ−ＬＵＮ＝０を指定して、ＳＣＳＩコマンドを発行するように構成されている。
【００９２】
このように構成されているのは、ＰＣ１２のＯＳは、ＵＳＢ規格上、データ伝送を行う際にＳＣＳＩコマンドを利用する仕様にはなっているものの、ＳＣＳＩ規格で規定された複数論理ユニットを区別して認識する仕様にはなっていないからである。
【００９３】
また、ＵＳＢ規格は、基本的にはＳＣＳＩ−２を意識して策定された仕様になっている。ＳＣＳＩ−２では、ＳＣＳＩコマンド内のＬＵＮフィールドの値（ＳＣＳＩ−ＬＵＮ）はデバイス側で無視されることになっており、ＬＵＮフィールドには０をセットすることが推奨されている。そのため、ＵＳＢ規格準拠のリムーバブルディスクドライバ２２１も、ＳＣＳＩコマンドを発行する際には、ＬＵＮフィールドに０をセットする仕様になっている。
【００９４】
そこで、このようなＰＣ１２のＯＳ側の仕様に合わせて、複合機１１においては、ＳＣＳＩ−ＬＵＮ＝０に対応する論理ユニットは、メモリスロット入出力制御タスク１２１の制御下にある構成であるとの前提で、ＰＣ１２からの出力データを振り分ける。
【００９５】
このようにすれば、ＯＳ標準のリムーバブルディスクドライバ２２１から発行されたＳ
ＣＳＩコマンドは、メモリスロット入出力制御タスク１２１側へと伝送されることになる。したがって、複合機１１は、ＰＣ１２のＯＳに認識された通り、ＵＳＢストレージデバイスとして機能することができる。
【００９６】
一方、上記の通り、ＰＣ１２のＯＳは、ＳＣＳＩ規格で規定された複数論理ユニットを区別して認識することはできないものの、上述の通り、複合機１１に対してＳＣＳＩコマンドを発行することができる通信路を用意する構成にはなっている。
【００９７】
そのため、リムーバブルディスクドライバ２２１とは別に、ＳＣＳＩ−ＬＵＮ＝０以外の論理ユニットに対してＳＣＳＩコマンドを発行するソフトウェアを用意すれば、ＯＳが用意した通信路を介して、ＳＣＳＩコマンドを複合機１１へ伝送することは可能である。
【００９８】
すなわち、ＰＣ１２のＯＳは、リムーバブルディスクドライバ２２１による制御を行うため、ＵＳＢ規格に準拠した論理的な通信路を構築するのであるが、ＳＣＳＩコマンドを発行できるソフトウェアがあれば、ＯＳが用意した通信路を流用して、複合機１１へＳＣＳＩコマンドを伝送することができるのである。
【００９９】
このような通信路を介してデータを伝送する場合、ＳＣＳＩコマンドを発行するソフトウェアと複合機１１内の論理ユニットは、互いにＳＣＳＩ規格に準拠した方式でデータ伝送を行うだけであり、両者間でＵＳＢ規格に準拠した通信プロトコルが利用されるか否かについては関知しない。
【０１００】
一方、ＰＣ１２のＯＳは、ＵＳＢ規格に準拠した通信プロトコル利用して、ＳＣＳＩ規格に準拠した方式でデータ伝送を行うための論理的な通信路は用意するものの、その論理的な通信路を介してどのような内容のデータが伝送されるのかについては関知しない。そのため、ＯＳが用意した通信路には、ＳＣＳＩ規格に準拠した方式のデータであれば、どのようなデータでも流すことができ、データストレージ系以外のデバイスに対応するデータであっても流すことができる。
【０１０１】
そこで、このような通信路の特性を利用して、本実施形態においては、プリンタ機能、スキャナ機能、ＰＣ−ＦＡＸ機能については、デバイスドライバまたはアプリケーションが、ＳＣＳＩ−ＬＵＮ＝０以外の論理ユニットに対してＳＣＳＩコマンドを発行する構成とした。
【０１０２】
より具体的には、まず、ＰＣ１２から発行されるＳＣＳＩコマンド（“Ｉｎｑｕｉｒｙ”）に対し、複合機１１は、ＳＣＳＩ−１準拠のデバイスである旨の応答を返す。これにより、ＳＣＳＩ規格上、ＳＣＳＩコマンド内にあるＬＵＮフィールドを使用することが許容される。
【０１０３】
そして、プリンタ機能については、スタティックドライバとしてロードされるプリントポートドライバ２２３を用意した。このプリントポートドライバ２２３が、ＳＣＳＩコマンド内にあるＬＵＮフィールドにおいてＳＣＳＩ−ＬＵＮ＝１を指定してＳＣＳＩコマンドを発行する。これにより、ＳＣＳＩ−ＬＵＮ＝１の論理ユニットに対してＳＣＳＩコマンドを発行できる構成とした。
【０１０４】
同様に、スキャナ機能については、同じくスタティックドライバとしてロードされるスキャナドライバ２２５を用意し、このスキャナドライバ２２５が、ＳＣＳＩ−ＬＵＮ＝２の論理ユニットに対してＳＣＳＩコマンドを発行するように構成した。
【０１０５】
さらに、ＰＣ−ＦＡＸ機能については、ＰＣ−ＦＡＸアプリケーション２７５が、ＳＣ
ＳＩ−ＬＵＮ＝３の論理ユニットに対してＳＣＳＩコマンドを発行するように構成した。
このような構成を採用することにより、各ソフトウェア（プリントポートドライバ２２３、スキャナドライバ２２５、ＰＣ−ＦＡＸアプリケーション２７５）は、ＵＳＢ規格を意識することなく、ＳＣＳＩ規格に準拠した方式で各論理ユニットの機能（プリンタ機能、スキャナ機能、ＰＣ−ＦＡＸ機能）を制御できる。
【０１０６】
また、ＵＳＢ規格上は、単一論理ユニットとの間でデータ伝送を行うための通信路を用意するだけでよいので、複合機１１側には、入力データ用のエンドポイントＥＰ１と、出力データ用のエンドポイントＥＰ２を、それぞれ１つずつ設ければよい。この点は、同じくＵＳＢ規格に準拠したデバイスであっても、ＵＳＢ複合デバイスとは大きく異なる点である。
【０１０７】
すなわち、ＵＳＢ複合デバイスの場合は、ＵＳＢ規格上、入力データ用のエンドポイントと出力データ用のエンドポイントを、各機能毎にそれぞれ１つずつ設けなければならない。そのため、入力データ用のエンドポイントと出力データ用のエンドポイントの総数は「機能数×２」となる。これに対し、上記複合機１１のような構成であれば、入力データ用のエンドポイントと出力データ用のエンドポイントの総数は、機能数によらず「２」となるのである。
【０１０８】
なお、ＰＣ１２において、以上のような手順で各ドライバ類等が用意された後は、ＵＳＢ−ＬＵＮ＝０の論理ユニットに対応するドライブレターを利用すれば、ＳＣＳＩ−ＬＵＮ＝０の論理ユニットに対してＳＣＳＩコマンドを発行でき、これにより、第１メモリスロット１３１、第２メモリスロット１３２、第３メモリスロット１３３、および第４メモリスロット１３４の内、いずれかにマウントされたメモリカードにアクセスすることができる。
【０１０９】
例えば、エクスプローラ２７７を利用して、第１メモリスロット１３１にマウントされたメモリカード内のファイルに対する操作が行われると、エクスプローラ２７７からの指令は、ファイルシステム２３１、リムーバブルディスクドライバ２２１、ＳＣＳＩコマンド処理部２１１、ＵＳＢストレージドライバ２０３、ＵＳＢプロトコルスタック２０１経由で、複合機１１へと伝送される。
【０１１０】
また、複合機１１からの応答は、ＵＳＢプロトコルスタック２０１、ＵＳＢストレージドライバ２０３、ＳＣＳＩコマンド処理部２１１、リムーバブルディスクドライバ２２１、ファイルシステム２３１経由で、エクスプローラ２７７へと戻される。
【０１１１】
また、印刷可能アプリケーション２７１から出力される印刷データは、プリンタドライバ２６１経由で、プリントポートドライバ２２３へと伝送される。プリントポートドライバ２２３は、ＳＣＳＩ規格に準拠したプリンタデバイスへ印刷データを出力するためのコマンドを、ＳＣＳＩ−ＬＵＮ＝１の論理ユニットに対して発行し、これにより、印刷データがＳＣＳＩコマンド処理部２１１へと伝送され、ＵＳＢストレージドライバ２０３、ＵＳＢプロトコルスタック２０１経由で、複合機１１へと伝送されることになる。
【０１１２】
同様に、スキャン可能アプリケーション２７３から出力されるスキャナ制御データ等は、スキャナドライバ２２５、ＳＣＳＩコマンド処理部２１１、ＵＳＢストレージドライバ２０３、ＵＳＢプロトコルスタック２０１経由で、複合機１１へと伝送される。また、ＰＣ−ＦＡＸアプリケーション２７５から出力されるファクシミリ送信データや制御データ等は、ＳＣＳＩコマンド処理部２１１、ＵＳＢストレージドライバ２０３、ＵＳＢプロトコルスタック２０１経由で、複合機１１へと伝送される。
【０１１３】
また、上記のような各種データを伝送した結果、ＰＣ１２への入力データが複合機１１側から伝送されてくる場合がある。例えば、スキャナ制御データを複合機１１へ伝送した場合であれば、複合機１１においてスキャン機能が作動し、その結果、スキャンデータが複合機１１側から伝送されてくる。
【０１１４】
このようなＰＣ１２への入力データは、例えばスキャンデータの場合、ＵＳＢプロトコルスタック２０１、ＵＳＢストレージドライバ２０３、ＳＣＳＩコマンド処理部２１１、スキャナドライバ２２５経由で、スキャン可能アプリケーション２７３へと伝送されることになる。
【０１１５】
また、プリンタ機能についてのステータスデータ（例えば、印刷エラーに関する情報等）であれば、ＵＳＢプロトコルスタック２０１、ＵＳＢストレージドライバ２０３、ＳＣＳＩコマンド処理部２１１、プリントポートドライバ２２３、プリンタドライバ２６１経由で、印刷可能アプリケーション２７１へと伝送されることになる。
【０１１６】
さらに、ＰＣ−ＦＡＸ機能によるファクシミリ受信データであれば、ＵＳＢプロトコルスタック２０１、ＵＳＢストレージドライバ２０３、ＳＣＳＩコマンド処理部２１１経由で、ＰＣ−ＦＡＸアプリケーションへと伝送されることになる。
【０１１７】
［複合機用ソフトウェアのインストール処理］
次に、上記のような複合機１１をＰＣ１２から利用可能とするため、ＰＣ１２において実行される複合機用ソフトウェアのインストール処理について、図５および図６のフローチャートに基づいて説明する。
【０１１８】
この処理を開始すると、ＰＣ１２は、図５に示すように、まずインストーラを起動する（Ｓ１０５）。このＳ１０５の処理は、利用者が所定の操作を行うと実行されるようになっていてもよいし、ＣＤ−ＲＯＭなどのメディアをＣＤ−ＲＯＭドライブなどにセットすると、それに連動して自動的に実行されるようになっていてもよい。
【０１１９】
インストーラを起動すると、続いて、ＰＣ１２は、該当複合機のカードリーダ用ドライブを検索する（Ｓ１１０）。このＳ１１０の処理は、詳しくは図６に示すような処理となる。
【０１２０】
すなわち、ＰＣ１２は、ドライブレター“Ａ”〜“Ｚ”を順に検索対象とするため、図６に示すように、まず、初期値としてドライブレター“Ａ”を変数ＣＤＲＶにセットする（Ｓ２０５）。そして、ドライブＣＤＲＶ（すなわち、Ｓ２０５の処理直後はドライブ“Ａ”）に、ＳＣＳＩコマンドの“Ｉｎｑｕｉｒｙ”を発行する（Ｓ２１０）。このコマンドは、デバイスの種類等を照会するために利用されるコマンドである。
【０１２１】
Ｓ２１０の処理において、コマンドに対する応答が正常に返された場合は（Ｓ２１０：正常）、応答中に含まれるベンダ名とプロダクト名から、ドライブＣＤＲＶが、対象としている複合機１１に該当するドライブなのか否かを判断する（Ｓ２１５）。
【０１２２】
Ｓ２１５の処理による判断の結果、該当ドライブであれば（Ｓ２１５：該当ドライブである）、対象としている複合機１１に該当するドライブが見つかったことになる（ＣＤＲＶが見つかったドライブである）ので、この場合は、図６に示す処理を終了する。
【０１２３】
一方、Ｓ２１５の処理による判断の結果、対象としている複合機１１に該当するドライブではなかった場合は（Ｓ２１５：該当ドライブでない）、Ｓ２２０の処理へと進む。ま
た、Ｓ２１０の処理において、コマンドに対する応答としてエラーが返された場合も（Ｓ２１０：エラー）、Ｓ２２０の処理へと進む。Ｓ２２０の処理へ進んだ場合、変数ＣＤＲＶにセットされたドライブレターが“Ｚ”であるか否かを判断する（Ｓ２２０）。
【０１２４】
Ｓ２２０の処理において、変数ＣＤＲＶにセットされたドライブレターが“Ｚ”でなければ（Ｓ２２０：いいえ）、次のドライブのドライブレター（例えば、“Ａ”の次であれば“Ｂ”）を変数ＣＤＲＶにセットして（Ｓ２２５）、Ｓ２１０の処理へ戻る。
【０１２５】
その結果、変数ＣＤＲＶにセットされたドライブレターが“Ｚ”とならない限り、Ｓ２１０〜Ｓ２２０の処理が繰り返されることになる。そして、その繰り返し処理において、Ｓ２１５の処理による判断の結果、該当ドライブが見つかれば、図６に示す処理を終了することになる。
【０１２６】
一方、Ｓ２２０の処理において、変数ＣＤＲＶにセットされたドライブレターが“Ｚ”であれば（Ｓ２２０：はい）、ドライブレター“Ａ”〜“Ｚ”をすべて処理したことになる。したがって、この場合は、対象としている複合機１１に該当するドライブが見つからなかったことになり、その場合も、図６に示す処理を終了する。
【０１２７】
以上のようにして図６に示す処理を終了すると、図５に示したＳ１１０の処理を終了したことになる。図５に示すように、Ｓ１１０の処理の結果、カードリーダ用ドライブが見つからなかった場合（Ｓ１１０：見つからなかった）、ＰＣ１２は、「複合機１１とＵＳＢ接続を行い暫く待った後にＯＫを押すこと」を利用者に対して指示するダイヤログを表示する（Ｓ１１５）。
【０１２８】
このＳ１１５の処理により、ＰＣ１２は利用者からの入力待ち状態になる。ここで、利用者は、ＰＣ１２の表示部に表示されたダイヤログにおいて、「ＯＫ」または「キャンセル」を押す操作（＝例えば、表示部に表示された「ＯＫ」ボタンまたは「キャンセル」ボタンを、ポインティングデバイスでクリックする操作）を行うことができる。
【０１２９】
利用者が「キャンセル」を押した場合（Ｓ１１５：キャンセル）、インストール処理は中止される。一方、利用者が「ＯＫ」を押した場合（Ｓ１１５：ＯＫ）、ＰＣ１２は、再びＳ１１０の処理を実行する。
【０１３０】
また、Ｓ１１０の処理において、カードリーダ用ドライブが見つかった場合（Ｓ１１０：見つかった）、ＰＣ１２は、見つかった「カードリーダ用ドライブ」のドライブレターを共通ＩＮＩファイルに設定する（Ｓ１２０）。共通ＩＮＩファイルは、複合機１１専用の各種ソフトウェア（ドライバ類やアプリケーション）に関する各種設定が記録されたテキストファイルである。この共通ＩＮＩファイルに記録された内容は、複合機１１専用の各種ソフトウェアが機能した際に、それらのソフトウェアによって読み込まれることになるものである。Ｓ１２０の処理では、Ｓ１１０の処理において確定した「ドライブレター複合機機種名」が共通ＩＮＩファイルに格納される。
【０１３１】
その後、ＰＣ１２は、プリンタドライバ、プリントポートドライバ、スキャナドライバ、ＰＣ−ＦＡＸアプリケーションをインストールして（Ｓ１２５）、複合機用ソフトウェアのインストール処理を終了する。
【０１３２】
［ＰＣの電源ＯＮから電源ＯＦＦに至るまでに実行される処理の一例］
次に、ＰＣの電源ＯＮから電源ＯＦＦに至るまでに実行される処理の一例について、図７〜図９に基づいて説明する。なお、以下に説明する処理の一例は、複合機１１の電源スイッチがＯＮにされている状態で、ＰＣ１２の電源スイッチがＯＮにされた場合の例であ
る。
【０１３３】
ＰＣ１２の電源スイッチがＯＮにされた場合、ＰＣ１２は、図７に示すように、まず、ＯＳをロードし（Ｓ３０５）、続いて、スタティックドライバをロードする（Ｓ３１０）。Ｓ３１０の処理は、詳しくは図８に示す処理となる。
【０１３４】
すなわち、ＰＣ１２では、図８に示すように、まず、ＯＳがレジストリ設定を参照して、スタティックドライバを順次ロードする（Ｓ４０５）。そして、本発明の構成に関連する処理としては、プリンタドライバをロードし（Ｓ４１０）、プリントポートドライバをロードし（Ｓ４１５）、スキャナドライバをロードして（Ｓ４２０）、図８に示す処理を終了する。
【０１３５】
図８に示す処理を終了すると、図７に示すＳ３１０の処理を終了したことになるので、ＰＣ１２は、続いて、ダイナミックドライバをロードする（Ｓ３１５）。Ｓ３１５の処理は、詳しくは図９に示す処理となる。
【０１３６】
すなわち、ＰＣ１２では、図９に示すように、まず、ＯＳがハードウェア接続状態を参照して、ダイナミックドライバを順次ロードする（Ｓ５０５）。そして、本発明の構成に関連する処理としては、ＵＳＢプロトコルスタック２０１が複合機１１を見つけた場合、複合機１１にデバイスタイプを問い合わせる（Ｓ５１０）。
【０１３７】
そして、この問い合わせに対し、複合機１１からＵＳＢストレージデバイスである旨の返答が有った場合、ＰＣ１２は、ＵＳＢストレージドライバ２０３をロードする（Ｓ５１５）。
【０１３８】
このＳ５１５の処理により、ＵＳＢストレージドライバ２０３が機能する状態となり、引き続いて、ＵＳＢストレージドライバ２０３が複合機１１にＵＳＢ−ＬＵＮ数を問い合わせる（Ｓ５２０）。より具体的には、Ｓ５２０の処理において、ＵＳＢストレージドライバ２０３は、最大ＵＳＢ−ＬＵＮを問い合わせる。
【０１３９】
本実施形態の場合、複合機１１は、ＵＳＢ規格上の論理ユニットを１つだけ備え、その論理ユニットに対しては、ＵＳＢ−ＬＵＮ＝０を割り当てているので、最大ＵＳＢ−ＬＵＮとしては“０”が返されることになる。
【０１４０】
ＰＣ１２は、最大ＵＳＢ−ＬＵＮとして“０”が返されたことをもって、複合機１１からＵＳＢ−ＬＵＮ数が１個であると返答が有ったものと認識し、その場合、ＳＣＳＩコマンド処理の入り口を１個作る（Ｓ５２５）。このＳ５２５の処理により、ＳＣＳＩコマンド処理部２１１が構成されることになる。
【０１４１】
ＳＣＳＩコマンド処理部２１１が機能する状態になると、ＳＣＳＩコマンド処理部２１１は、ＵＳＢ−ＬＵＮ＝０の論理ユニットに対して“Ｉｎｑｕｉｒｙ”を発行する（Ｓ５３０）。
【０１４２】
これに対し、本実施形態の場合、ＵＳＢ−ＬＵＮ＝０の論理ユニットからは“リムーバブルＨＤ”と返答が有る。この場合、ＰＣ１２は、ＯＳ標準のＳＣＳＩ接続用リムーバブルディスクドライバ２２１をロードし、ファイルシステム２３１と結合、その結果、ＵＳＢ−ＬＵＮ＝０の論理ユニットにドライブレターが割り当てられ、ドライブレターが出現することになる（Ｓ５３５）。
【０１４３】
ちなみに、リムーバブルディスクドライバ２２１については、ＰＣ１２とＵＳＢストレ
ージデバイスとをＵＳＢ接続するため、ＰＣ１２のＯＳが標準でＳＣＳＩ接続用のドライバを備えている。したがって、リムーバブルディスクドライバ２２１については、メーカーが複合機１１対応のＳＣＳＩ接続用ドライバを利用者に提供しなくてもよい。
【０１４４】
こうして図９に示したダイナミックドライバのロード処理を終えると、図７に示したＳ３１５の処理を終えたことになるので、続いて、ＰＣ１２は、サービスプロセスをロードして（Ｓ３２０）、ログイン待ちになる（Ｓ３２５）。
【０１４５】
Ｓ３２５の処理は、利用者がログイン操作を行うまで継続される（Ｓ３２５：ログインまだ）。そして、利用者がログイン操作を行った場合（Ｓ３２５：ログインした）、ＰＣ１２は、自動起動プログラムを起動する（Ｓ３３０）。Ｓ３３０の処理では、ＯＳがスタートメニューのスタートアップを参照して、自動起動プログラムを順次起動する。
【０１４６】
そして、自動起動プログラムの起動処理を終えたら、ＰＣ１２は、通常状態に至る（Ｓ３５５）。この通常状態に至れば、利用者は任意に印刷可能アプリケーション２７１、スキャン可能アプリケーション２７３、ＰＣ−ＦＡＸアプリケーション２７５、エクスプローラ２７７などを利用することができる。
【０１４７】
さて、その後、利用者がログアウト操作またはシャットダウン操作を行った場合（Ｓ３５５：ログアウトまたはシャットダウン）、ＰＣ１２は、まず、自動起動プログラムおよび手動起動プログラムを終了させる（Ｓ３４０）。そして、ログアウト操作がなされたのであれば（Ｓ３４０：ログアウトの場合）、Ｓ３２５の処理へ戻る。
【０１４８】
一方、シャットダウン操作がなされたのであれば（Ｓ３４０：シャットダウンの場合）、サービスプロセスアンロードし（Ｓ３４５）、ダイナミックドライバをアンロードし（Ｓ３５０）、スタティックドライバをアンロードする（Ｓ３５５）。そして、最後にＯＳをアンロードして（Ｓ３６０）、ＰＣ１２の電源ＯＦＦに至る。Ｓ３４５〜Ｓ３６０の処理では、Ｓ３０５〜Ｓ３２０の処理とは逆の手順で、各ソフトウェアのアンロードが行われることになる。
【０１４９】
［ＳＣＳＩコマンド解析タスクにおいて実行される処理］
次に、複合機１１が備えるＳＣＳＩコマンド解析タスク１１１において実行される処理について、図１０に基づいて説明する。
【０１５０】
この処理を開始すると、複合機１１は、まず、ＰＣ１２からＳＣＳＩコマンドが来たか否かを判断する（Ｓ６０５）。ここで、ＰＣ１２からＳＣＳＩコマンドが来なければ（Ｓ６０５：来ない）、Ｓ６０５の処理へ戻る。
【０１５１】
一方、ＰＣ１２からＳＣＳＩコマンドが来たら（Ｓ６０５：来た）、そのＳＣＳＩコマンド内にあるＬＵＮフィールドの格納値（ＳＣＳＩ−ＬＵＮ）が“０”〜“３”のいずれであるのかを判断する（Ｓ６１０）。
【０１５２】
Ｓ６１０の処理による判断の結果、ＳＣＳＩ−ＬＵＮが“０”の場合（Ｓ６１０：ＳＣＳＩ−ＬＵＮ＝０）、複合機１１は、ＳＣＳＩコマンドをメモリスロット入出力制御タスク１２１へ伝送して、メモリスロット入出力制御タスク１２１側での処理終了待ちとなる（Ｓ６１５）。
【０１５３】
このＳ６１５の処理においては、ＰＣ１２から伝送されてきたＳＣＳＩコマンドは、ＳＣＳＩコマンド解析タスク１１１からメモリスロット入出力制御タスク１２１へと伝送される。また、Ｓ６１５の処理において、ＳＣＳＩコマンドをメモリスロット入出力制御タ
スク１２１へ伝送した後は、メモリスロット入出力制御タスク１２１側での処理が終了するのを待つ。
【０１５４】
メモリスロット入出力制御タスク１２１側での処理が終了した場合、メモリスロット入出力制御タスク１２１側から応答が返るので、Ｓ６１５の処理では、メモリスロット入出力制御タスク１２１からの応答を、ＳＣＳＩコマンドに対する応答としてＰＣ１２側へ返し、Ｓ６１５の処理を終了する。なお、Ｓ６１５の処理を終了したら、Ｓ６０５の処理へと戻る。
【０１５５】
以上のようなＳ６１５の処理について、より具体的な例を交えて説明すると、例えば、ＰＣ１２側からは、メディア（本実施形態の場合、メモリカード）へのデータ書込を要求するＳＣＳＩコマンドが伝送されてくる場合がある。この場合、Ｓ６１５の処理では、ＳＣＳＩコマンド解析タスク１１１が受け取ったＳＣＳＩコマンドをメモリスロット入出力制御タスク１２１へと伝送する。
【０１５６】
このとき、メモリスロット入出力制御タスク１２１では、書き込み対象となるデータをメディアに書き込む処理などが実行される。そして、その書き込み結果に関する情報が、応答としてメモリスロット入出力制御タスク１２１からＳＣＳＩコマンド解析タスク１１１へ返される。
【０１５７】
ＳＣＳＩコマンド解析タスク１１１は、上記Ｓ６１５の処理の中で、メモリスロット入出力制御タスク１２１の処理終了を待つ。そして、メモリスロット入出力制御タスク１２１から応答を受け取ったら、その応答をＳＣＳＩコマンドに対する応答としてＰＣ１２側へ返して、Ｓ６１５の処理を終了する。
【０１５８】
また、例えば、ＰＣ１２側からは、メディアからのデータ読込を要求するＳＣＳＩコマンドが伝送されてくる場合がある。この場合も、Ｓ６１５の処理では、ＳＣＳＩコマンド解析タスク１１１が受け取ったＳＣＳＩコマンドをメモリスロット入出力制御タスク１２１へと伝送する。
【０１５９】
このとき、メモリスロット入出力制御タスク１２１では、読み出し対象となるデータをメディアから読み出す処理などが実行される。そして、その読み出し結果に関する情報や読み出されたデータが、応答としてメモリスロット入出力制御タスク１２１からＳＣＳＩコマンド解析タスク１１１へ返される。
【０１６０】
ＳＣＳＩコマンド解析タスク１１１は、上記Ｓ６１５の処理の中で、メモリスロット入出力制御タスク１２１の処理終了を待つ。そして、メモリスロット入出力制御タスク１２１から応答を受け取ったら、その応答をＳＣＳＩコマンドに対する応答としてＰＣ１２側へ返して、Ｓ６１５の処理を終了する。
【０１６１】
この他にも、様々なＳＣＳＩコマンドがあるが、いずれのＳＣＳＩコマンドが伝送されてきた場合でも、Ｓ６１５の処理では、ＳＣＳＩコマンドがＳＣＳＩコマンド解析タスク１１１からコマンドをメモリスロット入出力制御タスク１２１へと伝送される。そして、メモリスロット入出力制御タスク１２１からＳＣＳＩコマンド解析タスク１１１へと返される応答が、ＰＣ１２側へと伝送されるのである。
【０１６２】
なお、上述の通り、ＰＣ１２からメモリスロット入出力制御タスク１２１へ伝送されるＳＣＳＩコマンドには様々なものがあるので、メモリスロット入出力制御タスク１２１側で実行される処理の内容は、ＳＣＳＩコマンドに応じた様々な処理内容となる。ただし、メモリスロット入出力制御タスク１２１側で実行される処理の内容そのものは、データス
トレージ機能を有する周知のデバイスにおいて実行される処理と同等なので、これ以上の詳細な説明については省略する。
【０１６３】
さて、Ｓ６１０の処理による判断の結果、ＳＣＳＩ−ＬＵＮが“１”の場合（Ｓ６１０：ＳＣＳＩ−ＬＵＮ＝１）、複合機１１は、ＳＣＳＩコマンドをプリンタ入出力タスク１５１へ伝送して、プリンタ入出力タスク１５１側での処理終了待ちとなる（Ｓ６２０）。
【０１６４】
このＳ６２０の処理においては、ＰＣ１２から伝送されてきたＳＣＳＩコマンドは、ＳＣＳＩコマンド解析タスク１１１からプリンタ入出力タスク１５１へと伝送される。また、Ｓ６２０の処理において、ＳＣＳＩコマンドをプリンタ入出力タスク１５１へ伝送した後は、プリンタ入出力タスク１５１側での処理が終了するのを待つ。
【０１６５】
プリンタ入出力タスク１５１側での処理が終了した場合、プリンタ入出力タスク１５１側から応答が返るので、Ｓ６２０の処理では、プリンタ入出力タスク１５１からの応答を、ＳＣＳＩコマンドに対する応答としてＰＣ１２側へ返し、Ｓ６２０の処理を終了する。なお、Ｓ６２０の処理を終了したら、Ｓ６０５の処理へと戻る。
【０１６６】
以上のようなＳ６２０の処理について、より具体的な例を交えて説明すると、例えば、ＰＣ１２側からは、印刷データの印刷出力を要求するＳＣＳＩコマンドが伝送されてくる場合がある。この場合、Ｓ６２０の処理では、ＳＣＳＩコマンド解析タスク１１１が受け取ったＳＣＳＩコマンドをプリンタ入出力タスク１５１へと伝送する。
【０１６７】
このとき、プリンタ入出力タスク１５１では、印字制御タスク１６１へのデータ伝送等が行われ、印字制御タスク１６１がプリンタハードウェア１７１の動作を制御して、記録媒体への印刷出力などが実行される。そして、プリンタ入出力タスク１５１において、次の印刷データを受け取ることができる状態になれば、その旨の応答がプリンタ入出力タスク１５１からＳＣＳＩコマンド解析タスク１１１へ返される。
【０１６８】
ＳＣＳＩコマンド解析タスク１１１は、上記Ｓ６２０の処理の中で、プリンタ入出力タスク１５１の処理終了を待つ。そして、プリンタ入出力タスク１５１から応答を受け取ったら、その応答をＳＣＳＩコマンドに対する応答としてＰＣ１２側へ返して、Ｓ６２０の処理を終了する。
【０１６９】
なお、ＰＣ１２からプリンタ入出力タスク１５１へ伝送されるＳＣＳＩコマンドについても、例えば、プリンタのステータスを取得するためのコマンド等、様々なものがある。したがって、プリンタ入出力タスク１５１および印字制御タスク１６１のそれぞれにおいて実行される処理の内容は、ＳＣＳＩコマンドに応じた様々な処理内容となる。ただし、プリンタ入出力タスク１５１および印字制御タスク１６１のそれぞれにおいて実行される処理の内容そのものは、プリンタ機能を有する周知のデバイスにおいて実行される処理と同等なので、これ以上の詳細な説明については省略する。
【０１７０】
さて、Ｓ６１０の処理による判断の結果、ＳＣＳＩ−ＬＵＮが“２”の場合（Ｓ６１０：ＳＣＳＩ−ＬＵＮ＝２）、複合機１１は、ＳＣＳＩコマンドをスキャナ入出力タスク１５３へ伝送して、スキャナ入出力タスク１５３側での処理終了待ちとなる（Ｓ６２５）。
【０１７１】
このＳ６２５の処理においては、ＰＣ１２から伝送されてきたＳＣＳＩコマンドは、ＳＣＳＩコマンド解析タスク１１１からスキャナ入出力タスク１５３へと伝送される。また、Ｓ６２５の処理において、ＳＣＳＩコマンドをスキャナ入出力タスク１５３へ伝送した後は、スキャナ入出力タスク１５３側での処理が終了するのを待つ。
【０１７２】
スキャナ入出力タスク１５３側での処理が終了した場合、スキャナ入出力タスク１５３側から応答が返るので、Ｓ６２５の処理では、スキャナ入出力タスク１５３からの応答を、ＳＣＳＩコマンドに対する応答としてＰＣ１２側へ返し、Ｓ６２５の処理を終了する。なお、Ｓ６２５の処理を終了したら、Ｓ６０５の処理へと戻る。
【０１７３】
以上のようなＳ６２５の処理について、より具体的な例を交えて説明すると、例えば、ＰＣ１２側からは、スキャナ入力を要求するＳＣＳＩコマンドが伝送されてくる場合がある。この場合、Ｓ６２５の処理では、ＳＣＳＩコマンド解析タスク１１１が受け取ったＳＣＳＩコマンドをスキャナ入出力タスク１５３へと伝送する。
【０１７４】
このとき、スキャナ入出力タスク１５３では、スキャナ制御タスク１６３へのデータ伝送等が行われ、スキャナ制御タスク１６３がスキャナハードウェア１７３の動作を制御して、原稿からの画像入力などが実行される。そして、画像データ等がスキャナ入出力タスク１５３からＳＣＳＩコマンド解析タスク１１１へ返される。
【０１７５】
ＳＣＳＩコマンド解析タスク１１１は、上記Ｓ６２５の処理の中で、スキャナ入出力タスク１５３の処理終了を待つ。そして、スキャナ入出力タスク１５３から応答を受け取ったら、その応答をＳＣＳＩコマンドに対する応答としてＰＣ１２側へ返して、Ｓ６２５の処理を終了する。
【０１７６】
なお、ＰＣ１２からスキャナ入出力タスク１５３へ伝送されるＳＣＳＩコマンドについても、例えば、スキャナのステータスを取得するためのコマンド等、様々なものがある。したがって、スキャナ入出力タスク１５３およびスキャナ制御タスク１６３のそれぞれにおいて実行される処理の内容は、ＳＣＳＩコマンドに応じた様々な処理内容となる。ただし、スキャナ入出力タスク１５３およびスキャナ制御タスク１６３のそれぞれにおいて実行される処理の内容そのものは、スキャナ機能を有する周知のデバイスにおいて実行される処理と同等なので、これ以上の詳細な説明については省略する。
【０１７７】
さらに、Ｓ６１０の処理による判断の結果、ＳＣＳＩ−ＬＵＮが“３”の場合（Ｓ６１０：ＳＣＳＩ−ＬＵＮ＝３）、複合機１１は、ＳＣＳＩコマンドをＰＣ−ＦＡＸ入出力タスク１５５へ伝送して、ＰＣ−ＦＡＸ入出力タスク１５５側での処理終了待ちとなる（Ｓ６３０）。
【０１７８】
このＳ６３０の処理においては、ＰＣ１２から伝送されてきたＳＣＳＩコマンドは、ＳＣＳＩコマンド解析タスク１１１からＰＣ−ＦＡＸ入出力タスク１５５へと伝送される。また、Ｓ６３０の処理において、ＳＣＳＩコマンドをＰＣ−ＦＡＸ入出力タスク１５５へ伝送した後は、ＰＣ−ＦＡＸ入出力タスク１５５側での処理が終了するのを待つ。
【０１７９】
ＰＣ−ＦＡＸ入出力タスク１５５側での処理が終了した場合、ＰＣ−ＦＡＸ入出力タスク１５５側から応答が返るので、Ｓ６３０の処理では、ＰＣ−ＦＡＸ入出力タスク１５５からの応答を、ＳＣＳＩコマンドに対する応答としてＰＣ１２側へ返し、Ｓ６３０の処理を終了する。なお、Ｓ６３０の処理を終了したら、Ｓ６０５の処理へと戻る。
【０１８０】
以上のようなＳ６３０の処理について、より具体的な例を交えて説明すると、例えば、ＰＣ１２側からは、ＦＡＸ送信を要求するＳＣＳＩコマンドが伝送されてくる場合がある。この場合、Ｓ６３０の処理では、ＳＣＳＩコマンド解析タスク１１１が受け取ったＳＣＳＩコマンドをＰＣ−ＦＡＸ入出力タスク１５５へと伝送する。
【０１８１】
このとき、ＰＣ−ＦＡＸ入出力タスク１５５では、モデム制御タスク１６５へのデータ伝送等が行われ、モデム制御タスク１６５がモデムハードウェア１７５の動作を制御して
、ＦＡＸ送信などが実行される。そして、ＰＣ−ＦＡＸ入出力タスク１５５において、次のＦＡＸ送信データを受け取ることができる状態になれば、その旨の応答がＰＣ−ＦＡＸ入出力タスク１５５からＳＣＳＩコマンド解析タスク１１１へ返される。
【０１８２】
ＳＣＳＩコマンド解析タスク１１１は、上記Ｓ６３０の処理の中で、ＰＣ−ＦＡＸ入出力タスク１５５の処理終了を待つ。そして、ＰＣ−ＦＡＸ入出力タスク１５５から応答を受け取ったら、その応答をＳＣＳＩコマンドに対する応答としてＰＣ１２側へ返して、Ｓ６３０の処理を終了する。
【０１８３】
また、例えば、ＰＣ１２側からは、ＦＡＸ受信を要求するＳＣＳＩコマンドが伝送されてくる場合もある。この場合、Ｓ６３０の処理では、ＳＣＳＩコマンド解析タスク１１１が受け取ったＳＣＳＩコマンドをＰＣ−ＦＡＸ入出力タスク１５５へと伝送する。
【０１８４】
このとき、ＰＣ−ＦＡＸ入出力タスク１５５では、ＦＡＸ受信データを受信していれば、ＦＡＸ受信データ等がＰＣ−ＦＡＸ入出力タスク１５５からＳＣＳＩコマンド解析タスク１１１へ返される。また、ＦＡＸ受信データを受信していなければ、その旨の情報等がＰＣ−ＦＡＸ入出力タスク１５５からＳＣＳＩコマンド解析タスク１１１へ返される。
【０１８５】
ＳＣＳＩコマンド解析タスク１１１は、上記Ｓ６３０の処理の中で、ＰＣ−ＦＡＸ入出力タスク１５５の処理終了を待つ。そして、ＰＣ−ＦＡＸ入出力タスク１５５から応答を受け取ったら、その応答をＳＣＳＩコマンドに対する応答としてＰＣ１２側へ返して、Ｓ６３０の処理を終了する。
【０１８６】
なお、ＰＣ１２からＰＣ−ＦＡＸ入出力タスク１５５へ伝送されるＳＣＳＩコマンドについても、例えば、モデムのステータスを取得するためのコマンド等、様々なものがある。したがって、ＰＣ−ＦＡＸ入出力タスク１５５およびモデム制御タスク１６５のそれぞれにおいて実行される処理の内容は、ＳＣＳＩコマンドに応じた様々な処理内容となる。ただし、ＰＣ−ＦＡＸ入出力タスク１５５およびモデム制御タスク１６５のそれぞれにおいて実行される処理の内容そのものは、ＰＣ−ＦＡＸ機能を有する周知のデバイスにおいて実行される処理と同等なので、これ以上の詳細な説明については省略する。
【０１８７】
［ＰＣ側におけるＳＣＳＩコマンド発行を伴う処理の一例］
次に、ＰＣ１２が実行する様々な処理の内、複合機１１に対するＳＣＳＩコマンドの発行を伴う処理について、具体的な一例を挙げて説明する。図１１は、プリントポートドライバ２２３において実行される処理のフローチャートである。この処理は、プリントポートドライバ２２３の起動に伴って実行されるものである。
【０１８８】
この処理を開始すると、ＰＣ１２は、プリンタドライバ２６１から印字ＪＯＢ開始要求が有るか否かを判断する（Ｓ７０５）。ここで、印字ＪＯＢ開始要求が無い場合は（Ｓ７０５：無し）、Ｓ７０５の処理へと戻ることにより、プリンタドライバ２６１から印字ＪＯＢ開始要求が有るまで待機する。
【０１８９】
一方、Ｓ７０５の処理において、印字ＪＯＢ開始要求が有った場合は（Ｓ７０５：有り）、共通ＩＮＩファイルから複合機カードリーダ機能のドライブレターを取得する（Ｓ７１０）。Ｓ７１０の処理で取得されたドライブレターは、事前に（一例としては、先に説明したＳ１２０の処理により）共通ＩＮＩファイルに格納されたものである。
【０１９０】
続いて、ＰＣ１２は、共通ＩＮＩファイルから読み込んだドライブレターについて、そのドライブレターが割り当てられたドライブが、複合機１１のカードリーダ機能に対応するものかどうかを確認する（Ｓ７１５）。
【０１９１】
このＳ７１５の処理を実行するのは、共通ＩＮＩファイルの作成後にドライブレターの割り当てが変更された場合、共通ＩＮＩファイルに登録されたドライブレターと実際のドライブレターとの間に不整合が生じている可能性があるからである。
【０１９２】
Ｓ７１５の処理において、共通ＩＮＩファイルに登録されたドライブレターに対応するドライブが、複合機１１のカードリーダ機能に対応するドライブではなかった場合、または確認時にエラーが発生した場合（Ｓ７１５：違う、または、エラー）、Ｓ７２０の処理へ進む。Ｓ７２０の処理では、ＰＣ１２は、ダイヤログメッセージとして「複合機をＵＳＢ接続し暫く待ってリトライを押して下さい。複合機が接続されている場合は、一旦キャンセルしてリスキャンプログラムを実行してみて下さい」という主旨のメッセージを表示する（Ｓ７２０）。
【０１９３】
このＳ７２０の処理により、ＰＣ１２は利用者からの入力待ち状態になる。ここで、利用者は、ＰＣ１２の表示部に表示されたダイヤログにおいて、「リトライ」、または「キャンセル」いずれかのダイヤログボタンを押す操作を行うことができる。
【０１９４】
利用者が「キャンセル」を押した場合（Ｓ７２５：キャンセル）、プリントポートドライバ２２３としては、このまま印刷関連の処理を継続することはできない。そのため、プリンタドライバ２６１は、印字ＪＯＢ開始失敗を通知して（Ｓ７２５）、Ｓ７０５の処理へと戻る。
【０１９５】
一方、利用者は、Ｓ７２０の処理で「リトライ」を押すこともできる（Ｓ７２０）。また、必要が有れば、「リトライ」を押すのに先だってリスキャンプログラムを実行することもできる。
【０１９６】
リスキャンプログラムの詳細については後述するが、リスキャンプログラムを実行すれば、共通ＩＮＩファイルに登録されたドライブレターと実際のドライブレターとの間の不整合を解消することができる。
【０１９７】
したがって、単にＰＣ１２と複合機１１をＵＳＢ接続していなかっただけ（＝例えば、複合機１１の電源スイッチをオンにしていなかった、あるいは、ＵＳＢケーブルが抜けていた等）であれば、ＵＳＢ接続後に「リトライ」を押せばよい。また、ＵＳＢ接続後に「リトライ」を押しても、複合機１１のカードリーダ機能に対応するドライブを確認できない場合は、リスキャンプログラムを実行した上で、「リトライ」を押してみるとよい。
【０１９８】
以上のような処理が行われる中、Ｓ７１５の処理において、複合機１１のカードリーダ機能に対応するドライブであることが確認できた場合（Ｓ７１５：そうだ）、ＰＣ１２は、プリンタドライバ２６１に印字ＪＯＢ開始成功を通知する（Ｓ７３０）。この通知をプリンタドライバ２６１が受けると、プリンタドライバ２６１は印字データの出力を開始し、その印字データがプリントポートドライバ２２３へと伝送されてくる。
【０１９９】
そこで、プリントポートドライバ２２３側では、プリンタドライバ２６１からの印字ＪＯＢデータをＳＣＳＩコマンド（ＳＣＳＩ−ＬＵＮ＝１）にて複合機１１へと伝送する（Ｓ７３５）。
【０２００】
すなわち、プリントポートドライバ２２３は、複合機１１のプリンタ機能を有する論理ユニットに対してＳＣＳＩコマンドを発行するため、プリンタ機能に割り当てられたＳＣＳＩ−ＬＵＮ（本実施形態の場合は、ＳＣＳＩ−ＬＵＮ＝１）を指定し、ＳＣＳＩコマンドを発行する。
【０２０１】
このようにしてプリントポートドライバ２２３から発行されたＳＣＳＩコマンドは、ＳＣＳＩコマンド処理部２１１から、ＵＳＢストレージドライバ２０３、ＵＳＢプロトコルスタック２０１を経て、複合機１１側へと伝送される。
【０２０２】
そして、複合機１１では、上述のＳＣＳＩコマンド解析タスク１１１へと伝送される。ＳＣＳＩコマンド解析タスク１１１は、ＳＣＳＩコマンド内のＳＣＳＩ−ＬＵＮに基づいて、ＳＣＳＩ−ＬＵＮ＝１に対応するデータ処理系へデータを伝送し、その結果、複合機１１のプリンタ機能が作動することになる。
【０２０３】
こうして上記Ｓ７３５の処理を実行したら、続いて、印字ＪＯＢデータ終了か否かを判断する（Ｓ７４０）。ここで、印字ＪＯＢデータ終了でない場合は（Ｓ７４０：いいえ）、Ｓ７３５の処理へと戻る。これにより、印字ＪＯＢデータが残っている限り、ＳＣＳＩコマンドの発行が繰り返されることになる。
【０２０４】
そして、Ｓ７３５の処理でＳＣＳＩコマンドを発行した結果、Ｓ７４０の処理で、印字ＪＯＢデータ終了であると判断される状態に至ったら（Ｓ７４０：はい）、Ｓ７０５の処理へと戻る。
【０２０５】
以上説明したように、プリントポートドライバ２２３は、プリンタ機能に割り当てられたＳＣＳＩ−ＬＵＮ＝１を指定してＳＣＳＩコマンドを発行することにより、複合機１１のプリンタ機能を制御する。しかも、このＳＣＳＩコマンドをＰＣ１２から複合機１１へと伝送するための論理的な通信路については、ＰＣ１２のＯＳが複合機１１のカードリーダ機能を利用するために用意したものを共用する。
【０２０６】
なお、以上の説明では、プリントポートドライバ２２３が、ＳＣＳＩ−ＬＵＮ＝１を指定してＳＣＳＩコマンドを発行する処理について例示したが、他の機能を制御する場合についても、上記同様にＳＣＳＩ−ＬＵＮを指定してＳＣＳＩコマンドを発行すればよい。
【０２０７】
例えば、スキャナドライバ２２５の場合は、スキャナ機能に割り当てられたＳＣＳＩ−ＬＵＮ＝２を指定してＳＣＳＩコマンドを発行する。また、ＰＣ−ＦＡＸアプリケーション２７５の場合は、ＰＣ−ＦＡＸ機能に割り当てられたＳＣＳＩ−ＬＵＮ＝３を指定してＳＣＳＩコマンドを発行する。
【０２０８】
そして、複合機１１では、ＳＣＳＩコマンド解析タスク１１１が、ＳＣＳＩコマンド内のＳＣＳＩ−ＬＵＮに基づいて、ＳＣＳＩ−ＬＵＮに対応するデータ処理系へデータを伝送するので、ＳＣＳＩコマンドを発行する側が意図した通りの機能を制御できる。
【０２０９】
具体的には、スキャナドライバ２２５の場合であれば、ＳＣＳＩ−ＬＵＮ＝２を指定してＳＣＳＩコマンドを発行するので、複合機１１のスキャナ機能を制御できる。また、ＰＣ−ＦＡＸアプリケーション２７５の場合であれば、ＳＣＳＩ−ＬＵＮ＝３を指定してＳＣＳＩコマンドを発行するので、複合機１１のＰＣ−ＦＡＸ機能を制御できるのである。
【０２１０】
しかも、このような方式でＳＣＳＩコマンドを発行すれば、ＳＣＳＩコマンドをＰＣ１２から複合機１１へと伝送するための論理的な通信路については、ＰＣ１２のＯＳが複合機１１のカードリーダ機能を利用するために用意したものを共用することができる。つまり、カードリーダ機能、プリンタ機能、スキャナ機能、ＰＣ−ＦＡＸ機能のすべてで、単一のＳＣＳＩコマンド伝送用通信路を共用できるのである。
【０２１１】
［リスキャンプログラム］
次に、上記Ｓ７２０の処理に関連して言及したリスキャンプログラムについて、図１２に基づいて説明する。このリスキャンプログラムは、既に説明した通り、複合機１１のカードリーダ機能に対応するドライブについて、共通ＩＮＩファイルに登録されたドライブレターと実際のドライブレターとの間の不整合を解消するために用意されたユーティリティプログラムである。
【０２１２】
ＰＣ１２においてリスキャンプログラムを実行すると、ＰＣ１２は、まず、該当複合機のカードリーダ用ドライブを検索する（Ｓ８１０）。このＳ８１０の処理は、詳しくは先に説明した図６に示した処理と同等な処理となるので、ここでの説明は省略する。
【０２１３】
このＳ８１０の処理の結果、カードリーダ用ドライブが見つからなかった場合（Ｓ８１０：見つからなかった）、ＰＣ１２は、「複合機１１とＵＳＢ接続を行い暫く待った後にＯＫを押すこと」を利用者に対して指示するダイヤログを表示する（Ｓ８１５）。
【０２１４】
このＳ８１５の処理により、ＰＣ１２は利用者からの入力待ち状態になる。ここで、利用者は、ＰＣ１２の表示部に表示されたダイヤログにおいて、「ＯＫ」または「キャンセル」を押す操作を行うことができる。
【０２１５】
利用者が「キャンセル」を押した場合（Ｓ８１５：キャンセル）、リスキャンは中止される。一方、利用者が「ＯＫ」を押した場合（Ｓ８１５：ＯＫ）、ＰＣ１２は、再びＳ１１０の処理を実行する。
【０２１６】
こうした処理が行われる中、Ｓ８１０の処理においてカードリーダ用ドライブが見つかった場合（Ｓ８１０：見つかった）、ＰＣ１２は、見つかった「カードリーダ用ドライブ」のドライブレターを共通ＩＮＩファイルに設定し（Ｓ８２０）、リスキャンを終了する。
【０２１７】
このＳ８２０の処理により、新たに見つかったドライブレターが共通ＩＮＩファイルに登録され、その結果、共通ＩＮＩファイルに登録されたドライブレターと実際のドライブレターとの間の不整合が解消されることになる。
【０２１８】
［上記実施形態の効果］
以上説明した通り、上記複合機１１によれば、ＰＣ１２が備えるＯＳには、複合機１１を単一のＵＳＢ−ＬＵＮを持つＵＳＢストレージクラスのデバイスであると認識させている。しかし、ＰＣ１２−複合機１１間で、内部的に用意されるＳＣＳＩ規格準拠のデータ伝送を行うに当たって、複合機１１は、ＳＣＳＩ−ＬＵＮを複数備えるデバイスとして機能する。
【０２１９】
したがって、複数のＳＣＳＩ−ＬＵＮそれぞれに対応する論理ユニットに異なる機能（プリンタ機能、スキャン機能、ＰＣ−ＦＡＸ機能、およびデータストレージ機能）を割り当てることにより、ＰＣ１２側でＳＣＳＩ−ＬＵＮを指定して、異なる機能を有する論理ユニットを制御できるようになる。
【０２２０】
しかも、このような方式でデータ伝送を行うに当たって、ＰＣ１２は、複合機１１を単一のＵＳＢ−ＬＵＮを持つＵＳＢストレージクラスのデバイスであると認識するだけなので、複合機１１側では、単一のＵＳＢ−ＬＵＮに対応する入力用および出力用のエンドポイントを１つだけ用意すればよい。
【０２２１】
したがって、上記複合機１１によれば、１つの機能毎にそれぞれに対応する入力用および出力用のエンドポイントが１つずつ用意されるＵＳＢ複合デバイスとは異なり、個々の
機能毎に入力用および出力用のエンドポイントを１つずつ用意しなくてもよくなるので、その分だけエンドポイント数を削減することができる。
【０２２２】
また、複数の機能を利用するに当たって、あるＵＳＢデバイスとの接続を断って、別のＵＳＢデバイスとの接続を確立するといった状況を擬似的に作り出す必要はない。したがって、ＰＣ１２のＯＳが、デバイスドライバの切り替えに時間を要するといった問題はなく、複数の機能を同時に利用することもできる。
【０２２３】
さらに、コントロール転送用のエンドポイント（ＥＰ０）が、その他のデータ転送にも利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
【０２２４】
［変形例等］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【０２２５】
例えば、上記実施形態では、ＳＣＳＩ−ＬＵＮ＝０に対応する機能として、カードリーダ機能を例示したが、他のデータストレージデバイス相当の機能としてもよい。具体的には、他のリムーバブルディスク、ＣＤ−ＲＯＭ、ハードディスク、光磁気ディスクなどに相当する機能を設けてもよい。
【０２２６】
また、上記実施形態では、ＰＣ１２の発行するＳＣＳＩコマンド内にあるＬＵＮフィールドを使用できるようにするため、複合機１１は、ＳＣＳＩ−１準拠のデバイスである旨の応答をＰＣ１２に返す構成としてあったが、他の構成も考え得る。具体的には、準拠するＳＣＳＩのバージョンが不明なデバイスである旨の応答をＰＣ１２に返す構成としてもよい。この場合でも、ＳＣＳＩ規格上、ＳＣＳＩ−２以降では無視されることが規定されたＬＵＮフィールドについて、ＳＣＳＩ規格から外れることなく利用可能となる。
【図面の簡単な説明】
【０２２７】
【図１】本発明の一例として例示するデバイス制御システム全体のブロック図。
【図２】複合機の内部構成を示すブロック図。
【図３】ＰＣの内部構成を示すブロック図
【図４】ＰＣと複合機が接続を確立するときのやり取りを示す説明図。
【図５】ＰＣにおいて実行される複合機用ソフトウェアのインストール処理のフローチャート。
【図６】ＰＣにおいて実行される「複合機のカードリーダ用ドライブを検索する処理」のフローチャート。
【図７】ＰＣにおいて実行される「ＰＣの電源ＯＮから電源ＯＦＦに至るまでに実行される処理」のフローチャート。
【図８】ＰＣにおいて実行される「スタティックドライバをロードする処理」のフローチャート。
【図９】ＰＣにおいて実行される「ダイナミックドライバをロードする処理」のフローチャート。
【図１０】複合機のＳＣＳＩコマンド解析タスクにおいて実行される処理のフローチャート。
【図１１】ＰＣのプリントポートドライバにおいて実行される処理のフローチャート。
【図１２】ＰＣにおいて実行されるリスキャンプログラムのフローチャート。
【符号の説明】
【０２２８】
１１・・・複合機、１２・・・ＰＣ、１３・・・ＵＳＢ−ＨＵＢ、１４・・・他のＵＳＢデバイス、１０１・・・ＵＳＢプロトコルエンジン、１０３・・・制御回路、１０５・・・カードリーダ系データ入出力回路、１１１・・・ＳＣＳＩコマンド解析タスク、１２１・・・メモリスロット入出力制御タスク、１３１・・・第１メモリスロット、１３２・・・第２メモリスロット、１３３・・・第３メモリスロット、１３４・・・第４メモリスロット、１５１・・・プリンタ入出力タスク、１５３・・・スキャナ入出力タスク、１５５・・・ＰＣ−ＦＡＸ入出力タスク、１６１・・・印字制御タスク、１６３・・・スキャナ制御タスク、１６５・・・モデム制御タスク、１７１・・・プリンタハードウェア、１７３・・・スキャナハードウェア、１７５・・・モデムハードウェア、２０１・・・ＵＳＢプロトコルスタック、２０３・・・ＵＳＢストレージドライバ、２１１・・・ＳＣＳＩコマンド処理部、２２１・・・リムーバブルディスクドライバ、２２３・・・プリントポートドライバ、２２５・・・スキャナドライバ、２３１・・・ファイルシステム、２６１・・・プリンタドライバ、２７１・・・印刷可能アプリケーション、２７３・・・スキャン可能アプリケーション、２７５・・・ＰＣ−ＦＡＸアプリケーション、２７７・・・エクスプローラ、２８１・・・他のＵＳＢデバイスのドライバ。
【図１】
2008245046.tif 000003
【図２】
2008245046.tif 000004
【図３】
2008245046.tif 000005
【図４】
2008245046.tif 000006
【図５】
2008245046.tif 000007
【図６】
2008245046.tif 000008
【図７】
2008245046.tif 000009
【図８】
2008245046.tif 000010
【図９】
2008245046.tif 000011
【図１０】
2008245046.tif 000012
【図１１】
2008245046.tif 000013
【図１２】
2008245046.tif 000014