(57)【特許請求の範囲】
【請求項１】
記憶装置および通信装置を内蔵しており、ＵＳＢ（Universal Serial Bus）インターフェースを介してコンピュータと接続可能で、前記コンピュータと接続された際、前記コンピュータには、ＵＳＢストレージデバイス機能および通信デバイス機能を少なくとも含む複数種の機能を有するＵＳＢ複合デバイスとして認識される複合機であって、
前記記憶装置の物理的記憶領域へのアクセスが指令された場合に、アクセス対象とされた前記物理的記憶領域へのアクセスを前記記憶装置に実行させる制御を行う記憶装置制御手段と、
前記記憶装置において記憶されるデータをファイルとして管理する手段であって、前記記憶装置制御手段の使用権を取得した場合に、前記記憶装置制御手段を使用する他の手段とは排他的に前記記憶装置制御手段を使用可能となる手段であり、前記ファイルへのアクセス開始が指令された際、「前記使用権を取得済みであった場合」または「当該使用権の取得を試行して、その取得に成功した場合」いずれかの場合であれば、前記ファイルへのアクセスを開始し、その後、「前記ファイルへのアクセス終了が指令された場合」または「前記ファイルへのアクセス終了と自ら判断できた場合」いずれかの場合には、他にアクセス中のファイルが残っていなければ、取得していた前記使用権を解放する手段であり、かつ、前記ファイルへのアクセスが指令された際には、アクセス対象とされたファイルに対応する物理的記憶領域へのアクセスを、前記記憶装置制御手段に対して指令するファイル管理手段と、
作動時に前記記憶装置に記憶されたデータを利用する機能を制御する手段であり、前記記憶装置に記憶されたデータを利用する際に、利用対象となるデータが格納されたファイルへのアクセスを前記ファイル管理手段に対して指令するデータ処理手段と、
前記コンピュータが前記通信デバイス機能を利用する際に使用される通信手順で、前記コンピュータ側から前記複合機側へデータ列が伝送された場合に、その伝送されたデータ列中に「あらかじめ定められた特殊データ列であることを示す情報」が含まれているか否かに基づいて、当該データ列が前記通信装置用のデータ列である標準データ列か、前記記憶装置用のデータ列である特殊データ列かを解析するデータ解析手段と、
前記データ解析手段によって前記標準データ列であると解析された場合に、前記標準データ列中の情報に基づき、前記通信装置を制御する通信装置制御手段と、
前記記憶装置制御手段の使用権を取得した場合に、前記記憶装置制御手段を使用する他の手段とは排他的に前記記憶装置制御手段を使用可能となる手段であり、前記コンピュータが前記ＵＳＢストレージデバイス機能を利用する際に使用される通信手順で、前記コンピュータ側から前記複合機側へ「前記物理的記憶領域へのアクセスが必要となる指令」が伝送された場合に、前記使用権を取得済みであるか否かを判断する第１の判断を行い、前記第１の判断の結果、前記使用権を取得済みでなかった場合は、利用者によって任意に設定される前記複合機の動作モードとして、第１のモードまたは第２のモードのいずれが設定されているのかを判断する第２の判断を行い、前記第２の判断の結果、前記第１のモードが設定されていると判断された場合には、前記使用権の取得を試行して、当該使用権の取得に成功したか否かを判断する第３の判断を行っており、「前記第１の判断の結果、前記使用権を取得済みであった場合」または「前記第３の判断の結果、前記使用権の取得に成功した場合」いずれかの場合には、前記コンピュータ側から受け取った「前記物理的記憶領域へのアクセスが必要となる指令」に基づき、前記物理的記憶領域へのアクセスを前記記憶装置制御手段に対して指令し、前記物理的記憶領域へのアクセス終了後、あらかじめ定められた時間が経過した場合には、前記使用権を解放する一方、「前記第２の判断の結果、前記第２のモードが設定されていると判断された場合」または「前記第３の判断の結果、前記使用権の取得に失敗した場合」いずれかの場合には、「リムーバブルメディアがセットされていないＵＳＢストレージデバイスに対して当該ＵＳＢストレージデバイスの利用を要求した際に、当該ＵＳＢストレージデバイスから返される応答」と等価な内容の擬似的な応答を前記コンピュータに返す手段である第１のストレージデバイス機能制御手段と、
前記データ処理手段とは別の手段であり、前記データ解析手段によって前記特殊データ列であると解析された場合に、前記特殊データ列中の情報に基づき、当該情報中で指定されたファイルへのアクセスを、前記ファイル管理手段に対して指令する第２のストレージデバイス機能制御手段と
を備えたことを特徴とする複合機。
【請求項２】
前記通信装置制御手段は、前記標準データ列中に含まれるＡＴコマンドに基づき、前記通信装置を制御する手段であり、
前記データ解析手段は、前記ＡＴコマンドを構成する文字列中に前記特殊データ列であることを示す文字列が含まれているか否かにより、前記特殊データ列か前記標準データ列かを判定する
ことを特徴とする請求項１に記載の複合機。
【請求項３】
前記データ解析手段によって前記特殊データ列であると解析された場合に、さらに、前記特殊データ列中の情報に基づき、当該情報中で指定されたファイルへのアクセスが指令されたか否かを判定するファイルアクセス要求判定手段
を備え、
前記第２のストレージデバイス機能制御手段は、前記ファイルアクセス要求判定手段により、前記特殊データ列中の情報中で指定されたファイルへのアクセスが指令されたとの判定がなされた場合に、前記特殊データ列中の情報中で指定されたファイルへのアクセスを、前記ファイル管理手段に対して指令する
ことを特徴とする請求項１または請求項２に記載の複合機。
【請求項４】
前記データ解析手段によって前記特殊データ列であると解析された場合に、さらに、前記特殊データ列中の情報に基づき、前記第１，第２のモードいずれかの設定を要求するデータ列であるか否かを判定して、いずれかの設定を要求するデータ列であれば、要求された動作モードを設定する動作モード設定手段
を備えたことを特徴とする請求項３に記載の複合機。
【請求項５】
前記複合機は、前記複数種の機能として、前記ＵＳＢストレージデバイス機能および前記通信デバイス機能の他に、プリンタ機能を備えており、
前記データ処理手段は、前記記憶装置に記憶された画像データに基づいて画像を印刷する機能を制御する手段であり、前記記憶装置に記憶されたデータを利用する際に、利用対象となるデータが格納されたファイルへのアクセスを前記ファイル管理手段に対して指令する手段として構成されている
ことを特徴とする請求項１〜請求項４のいずれか一項に記載の複合機。
【請求項６】
コンピュータと請求項１〜請求項５のいずれか一項に記載の複合機とを、ＵＳＢインターフェースを介して接続することによって構成され、
前記コンピュータは、クライアント機能を有するクライアントコンピュータとの間でファイルを伝送可能なサーバ機能を有するサーバコンピュータであり、
前記クライアントコンピュータからのアクセス要求に応じて、前記複合機が備える前記第２のストレージデバイス機能制御手段へとアクセス要求を伝達するとともに、当該アクセス要求に応じた前記複合機から返される応答データを、前記クライアントコンピュータへと伝送可能に構成されている
ことを特徴とするファイル伝送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合機、および当該複合機とコンピュータとによって構成されるファイル伝送システムに関する。
【背景技術】
【０００２】
従来、ＵＳＢ（Universal Serial Bus）接続型のフラッシュリムーバブルメディアリーダー／ライターは、ＵＳＢストレージ型のもの（＝ＵＳＢマスストレージクラスに準拠したもの）が圧倒的に主流であり、その他の方式は皆無に近い。
【０００３】
また、この種のカードリーダー／ライター機能に加えて、他の機能をも有するＵＳＢ接続型の複合機（例えば、プリンタ機能やスキャナ機能等を有する複合機等）に関しても、上記カードリーダー／ライター単体機に倣うかたちになっている。
【０００４】
そのため、ほとんどの機種において、ＰＣ（パーソナルコンピュータ）からは、カードリーダー／ライター機能がＵＳＢストレージ型のデバイスとして認識されるようになっている。
【０００５】
ところで、この種のカードリーダー／ライター機能を有する複合機において、複合機内蔵の制御部と複合機に接続されるＰＣとの両方から、同時にリムーバブルメディアがアクセスされると、様々な問題が生じる可能性がある。
【０００６】
そのため、このような問題を回避するための技術として、複合機内蔵の制御部と複合機に接続されるＰＣが、互いに排他的にリムーバブルメディアへのアクセスを実行する技術が、既に提案されている（例えば、特許文献１参照。）。
【特許文献１】特開２００４−９４４９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記従来技術の如く、リムーバブルメディアへのアクセスを単に排他的に実行するだけでは、リムーバブルメディアが比較的長期にわたってＰＣに占有されやすくなる傾向があった。そのため、複合機内蔵の制御部は、リムーバブルメディアにアクセスできない状況に陥りやすく、複合機単体で作動する機能を利用する機会が多い利用者にとっては、複合機の使い勝手が悪くなってしまう、という問題があった。
【０００８】
このような問題は、ＰＣと複合機内蔵の制御部とで、リムーバブルメディアへのアクセス方式に違いがあるために発生する。すなわち、まず、ＰＣ側からのアクセスについて説明すると、ＰＣは、ＵＳＢストレージデバイス上のファイルに対するアクセスを行う際、ＰＣ側にあるファイルシステム経由でリムーバブルメディアにアクセスする。
【０００９】
このとき、ＰＣ側から複合機へは、メモリカードが有する物理的記憶領域に対するアクセス要求（＝例えば、物理的記憶領域からのデータ読み出し要求、あるいは、物理的記憶領域へのデータ書き込み要求）が到来する。しかし、ＰＣ側にあるファイルシステムからは、ＰＣからメモリカードへのアクセスが完全に終了した旨の明示的な通知等は到来しない。
【００１０】
そのため、複合機側では「所定の待機時間が経過するまでＰＣからのアクセスがなければ、ＰＣからのアクセスが終了したものと認識する」といった対処しかできない。その結果、上記待機時間の経過を待つ分だけ、リムーバブルメディアへのアクセス権はＰＣ側に無駄に占有されることになる。
【００１１】
一方、複合機内蔵の制御部からのアクセスについて説明すると、複合機内蔵の制御部は、複合機側にあるファイルシステム経由でリムーバブルメディアにアクセスする。
【００１２】
このとき、複合機側にあるファイルシステムによるリムーバブルメディアへのアクセスが終了すれば、複合機内蔵の制御部は、直ちにリムーバブルメディアへのアクセス終了を認識できる。したがって、この場合は、ＰＣ側からのアクセスとは異なり、デバイスは、上述の如き待機時間が経過するのを待つ必要が無く、複合機内蔵の制御部は、リムーバブルメディアへのアクセス権を無駄に占有することがない。
【００１３】
以上のようなアクセス方式の違いがあるため、ＰＣ側からのアクセス要求を意図的に優先処理している訳ではないものの、結果的に、ＰＣによる占有期間は長くなりやすく、複合機内蔵の制御部は、リムーバブルメディアにアクセスできない状況に陥りがちであった。
【００１４】
本発明は、上記のような問題を解決するためになされたものであり、その目的は、ＰＣ側からアクセス要求が到来する場合でも、複合機内蔵の制御部からのアクセス要求を迅速に処理可能な複合機を提供することにある。また、そのような複合機を利用して構成されたファイル伝送システムを提供することにある。
【課題を解決するための手段】
【００１５】
以下、本発明において採用した構成について説明する。
請求項１に記載の複合機は、記憶装置および通信装置を内蔵しており、ＵＳＢ（Universal Serial Bus）インターフェースを介してコンピュータと接続可能で、前記コンピュータと接続された際、前記コンピュータには、ＵＳＢストレージデバイス機能および通信デバイス機能を少なくとも含む複数種の機能を有するＵＳＢ複合デバイスとして認識される複合機であって、前記記憶装置の物理的記憶領域へのアクセスが指令された場合に、アクセス対象とされた前記物理的記憶領域へのアクセスを前記記憶装置に実行させる制御を行う記憶装置制御手段と、前記記憶装置において記憶されるデータをファイルとして管理する手段であって、前記記憶装置制御手段の使用権を取得した場合に、前記記憶装置制御手段を使用する他の手段とは排他的に前記記憶装置制御手段を使用可能となる手段であり、前記ファイルへのアクセス開始が指令された際、「前記使用権を取得済みであった場合」または「当該使用権の取得を試行して、その取得に成功した場合」いずれかの場合であれば、前記ファイルへのアクセスを開始し、その後、「前記ファイルへのアクセス終了が指令された場合」または「前記ファイルへのアクセス終了と自ら判断できた場合」いずれかの場合には、他にアクセス中のファイルが残っていなければ、取得していた前記使用権を解放する手段であり、かつ、前記ファイルへのアクセスが指令された際には、アクセス対象とされたファイルに対応する物理的記憶領域へのアクセスを、前記記憶装置制御手段に対して指令するファイル管理手段と、作動時に前記記憶装置に記憶されたデータを利用する機能を制御する手段であり、前記記憶装置に記憶されたデータを利用する際に、利用対象となるデータが格納されたファイルへのアクセスを前記ファイル管理手段に対して指令するデータ処理手段と、前記コンピュータが前記通信デバイス機能を利用する際に使用される通信手順で、前記コンピュータ側から前記複合機側へデータ列が伝送された場合に、その伝送されたデータ列中に「あらかじめ定められた特殊データ列であることを示す情報」が含まれているか否かに基づいて、当該データ列が前記通信装置用のデータ列である標準データ列か、前記記憶装置用のデータ列である特殊データ列かを解析するデータ解析手段と、前記データ解析手段によって前記標準データ列であると解析された場合に、前記標準データ列中の情報に基づき、前記通信装置を制御する通信装置制御手段と、前記記憶装置制御手段の使用権を取得した場合に、前記記憶装置制御手段を使用する他の手段とは排他的に前記記憶装置制御手段を使用可能となる手段であり、前記コンピュータが前記ＵＳＢストレージデバイス機能を利用する際に使用される通信手順で、前記コンピュータ側から前記複合機側へ「前記物理的記憶領域へのアクセスが必要となる指令」が伝送された場合に、前記使用権を取得済みであるか否かを判断する第１の判断を行い、前記第１の判断の結果、前記使用権を取得済みでなかった場合は、利用者によって任意に設定される前記複合機の動作モードとして、第１のモードまたは第２のモードのいずれが設定されているのかを判断する第２の判断を行い、前記第２の判断の結果、前記第１のモードが設定されていると判断された���合には、前記使用権の取得を試行して、当該使用権の取得に成功したか否かを判断する第３の判断を行っており、「前記第１の判断の結果、前記使用権を取得済みであった場合」または「前記第３の判断の結果、前記使用権の取得に成功した場合」いずれかの場合には、前記コンピュータ側から受け取った「前記物理的記憶領域へのアクセスが必要となる指令」に基づき、前記物理的記憶領域へのアクセスを前記記憶装置制御手段に対して指令し、前記物理的記憶領域へのアクセス終了後、あらかじめ定められた時間が経過した場合には、前記使用権を解放する一方、「前記第２の判断の結果、前記第２のモードが設定されていると判断された場合」または「前記第３の判断の結果、前記使用権の取得に失敗した場合」いずれかの場合には、「リムーバブルメディアがセットされていないＵＳＢストレージデバイスに対して当該ＵＳＢストレージデバイスの利用を要求した際に、当該ＵＳＢストレージデバイスから返される応答」と等価な内容の擬似的な応答を前記コンピュータに返す手段である第１のストレージデバイス機能制御手段と、前記データ処理手段とは別の手段であり、前記データ解析手段によって前記特殊データ列であると解析された場合に、前記特殊データ列中の情報に基づき、当該情報中で指定されたファイルへのアクセスを、前記ファイル管理手段に対して指令する第２のストレージデバイス機能制御手段とを備えたことを特徴とする。
【００１６】
このように構成された複合機によれば、この複合機をＵＳＢインターフェースを介してコンピュータに接続すると、コンピュータには、この複合機が複数種の機能を有するＵＳＢ複合デバイスとして認識される。
【００１７】
また、複数種の機能としては、ＵＳＢストレージデバイス機能および通信デバイス機能、以上２種の機能が少なくとも認識される。なお、これら２種の機能の他に、さらに別の機能が認識されてもよい（すなわち、３種以上の機能が認識されてもよい）。
【００１８】
以上のようなＵＳＢ複合デバイスをコンピュータが認識した場合、コンピュータ側では、複数種の機能それぞれに対応したデータ通信を行うため、複数種の機能それぞれに対応するドライバ等がロードされ、複数種の機能それぞれに対応した通信手順でデータを伝送可能となる。
【００１９】
このような前提の下、本発明の複合機においては、コンピュータが通信デバイス機能を利用する際に使用される通信手順で、コンピュータ側から複合機側へデータ列を伝送する際に、通信装置用のデータ列である標準データ列に加え、記憶装置用のデータ列である特殊データ列をも伝送する構成を採用した。
【００２０】
そして、標準データ列が伝送されてきた場合は、通信装置を制御するためのデータとして扱い、一方、特殊データ列が伝送されてきた場合は、独自に規定した処理を実行する構成とした。具体的には、独自に規定した処理の一つとして、第２のストレージデバイス機能制御手段が、特殊データ列中の情報に基づき、複合機内蔵のファイル管理手段経由でファイルへのアクセスを指令するように構成した。
【００２１】
このような構成を採用すれば、コンピュータから複合機へ特殊データ列を伝送することにより、標準データ列を伝送した場合とは異なり、複合機内蔵のファイル管理手段経由でファイルへのアクセスを指令することができる。また、複合機内蔵のデータ処理手段も、記憶装置に記憶されたデータを利用する際には、複合機内蔵のファイル管理手段経由でファイルへのアクセスを指令することができる。
【００２２】
つまり、コンピュータからの指令が第２のストレージデバイス機能制御手段によって処理される場合、および複合機内蔵のデータ処理手段が処理を実行する場合、双方ともに、ファイルへのアクセス指令は、複合機内蔵のファイル管理手段経由で処理される。したがって、コンピュータがＵＳＢストレージデバイス機能を利用する際に使用される通信手順で記憶装置へのアクセスを行う場合とは異なり、コンピュータからのアクセス完了を判断するために所定の待機時間が経過するのを待つ必要はなく、記憶装置へのアクセス権がコンピュータ側に無駄に占有されることがない。
【００２３】
よって、第２のストレージデバイス機能制御手段を利用する場合には、コンピュータからの記憶装置に対するアクセス要求、および複合機内蔵のデータ処理手段からの記憶装置に対するアクセス要求について、いずれか一方の処理が完了すれば直ちに他方の処理に移ることができ、どちらも迅速な処理が可能となる。
【００２４】
また、以上のような構成に加え、本発明の複合機は、複合機の動作モードの設定として、第１のモードまたは第２のモードいずれかを、利用者が任意に設定可能となっている。
【００２５】
コンピュータがＵＳＢストレージデバイス機能を利用する際に使用される通信手順で、コンピュータ側から複合機側へ「物理的記憶領域へのアクセスが必要となる指令」を伝送した場合、複合機の動作モードが第１のモードになっていれば、複合機は通常のＵＳＢストレージデバイスと同様に機能する。
【００２６】
一方、コンピュータがＵＳＢストレージデバイス機能を利用する際に使用される通信手順で、コンピュータ側から複合機側へ「物理的記憶領域へのアクセスが必要となる指令」を伝送した場合、複合機の動作モードが第２のモードになっていれば、複合機は、「リムーバブルメディアがセットされていないＵＳＢストレージデバイスに対して当該ＵＳＢストレージデバイスの利用を要求した際に、当該ＵＳＢストレージデバイスから返される応答」と等価な内容の擬似的な応答をコンピュータに返す。
【００２７】
このような応答を返せば、引き続いてコンピュータ側から複合機側へデータが伝送されることはないので、コンピュータと複合機との接続を維持ししたまま、コンピュータによるＵＳＢストレージデバイスへのアクセスを阻止することができる。
【００２８】
すなわち、複合機の動作モードが第１，第２のモードいずれに設定された場合でも、コンピュータが複合機のＵＳＢストレージデバイス機能を認識した状態は維持される。
その上で、第１のモードであれば、通常通りにＵＳＢストレージデバイス機能を利用することができ、第２のモードであれば、ＵＳＢストレージデバイス機能に関しては、リムーバブルメディアがセットされていない旨の応答を返す機能以外は無効化される。
ただし、第２のモードが設定された状態であっても、上述の特殊データ列が利用可能なので、この状態でコンピュータから記憶装置上のファイルにアクセスを行いたい場合には、上述の特殊データ列が利用され、これにより、コンピュータが複合機側にあるファイル管理手段経由で複合機側のファイルにアクセスできるのである。
【００２９】
このような構成を採用すれば、第１のモードを設定することにより、複合機を一般的なＵＳＢストレージデバイスと全く同様に機能させることができるので、ＵＳＢストレージデバイスに対応した数多くの市販アプリケーションをそのまま問題なく利用できる。
【００３０】
また、第２のモードを設定することにより、コンピュータからの記憶装置に対するアクセス要求、および複合機内蔵のデータ処理手段からの記憶装置に対するアクセス要求について、双方を迅速に処理することも可能となる。
【００３１】
よって、たとえば、利用者の希望に応じて、ＵＳＢストレージデバイス機能を重視する場合は第１のモードに切り替えたり、複合機内蔵のデータ処理手段による機能を迅速に処理したい場合は第２のモードに切り替えたりすることができる。
【００３２】
さらに、複合機の動作モードとして第１，第２のモードいずれが設定された場合でも、コンピュータと複合機との間は、ＵＳＢインターフェースだけで所期の通信を行うことができる。したがって、第１，第２のモードそれぞれで別々の通信インタフェースが必要となることはなく、その分だけ複合機の構成（特にハードウェア）を簡素化することができる。よって、第１，第２のモードそれぞれ専用に通信インターフェースを設ける場合に比べ、複合機を安価に提供可能となる。
【００３３】
次に、請求項２に記載の複合機は、請求項１に記載の複合機において、前記通信装置制御手段は、前記標準データ列中に含まれるＡＴコマンドに基づき、前記通信装置を制御する手段であり、前記データ解析手段は、前記ＡＴコマンドを構成する文字列中に前記特殊データ列であることを示す文字列が含まれているか否かにより、前記特殊データ列か前記標準データ列かを判定することを特徴とする。
【００３４】
ここで、ＡＴコマンドとは、モデムやターミナルアダプタなどの通信装置が備える各種機能を制御可能なコマンドの一種で、米国Ｈａｙｅｓ社において開発され、その後他社でも広く採用された周知のものである。
【００３５】
このＡＴコマンドは、モデムやターミナルアダプタを内蔵する機器（例えば、ファクシミリ装置）を制御する際にも利用されている。こうした通信装置が備える様々な機能を制御可能とするため、通信装置の製造元各社は独自に拡張仕様を採用している。
【００３６】
そこで、請求項２に記載の複合機においては、ＡＴコマンドの拡張仕様として、「特殊データ列であることを示す文字列が含まれたＡＴコマンド」を用意した。そして、コンピュータ側から到来したＡＴコマンド中に、特殊データ列であることを示す文字列が含まれていた場合に、上述の特殊データ列であると識別する一方、それ以外の場合に、上述の標準データ列であると識別するようにした。
【００３７】
このような構成を採用すれば、通信装置に対する制御を行うのか、複合機側にあるファイル管理手段経由でのファイルアクセスを行うのかを、コンピュータ側で指定する際に、上記ＡＴコマンドを利用して指定できるようになる。
【００３８】
次に、請求項３に記載の複合機は、請求項１または請求項２に記載の複合機において、前記データ解析手段によって前記特殊データ列であると解析された場合に、さらに、前記特殊データ列中の情報に基づき、当該情報中で指定されたファイルへのアクセスが指令されたか否かを判定するファイルアクセス要求判定手段を備え、前記第２のストレージデバイス機能制御手段は、前記ファイルアクセス要求判定手段により、前記特殊データ列中の情報中で指定されたファイルへのアクセスが指令されたとの判定がなされた場合に、前記特殊データ列中の情報中で指定されたファイルへのアクセスを、前記ファイル管理手段に対して指令することを特徴とする。
【００３９】
このような構成を採用すれば、特殊データ列として、ファイルに対するアクセスを要求する指令を伝えるデータ列と、それ以外のデータ列を利用することができるようになる。したがって、ファイルに対するアクセスを要求する場合はもちろんのこと、他の制御を複合機に指令したい場合にも特殊データ列を利用できるようになる。
【００４０】
次に、請求項４に記載の複合機は、請求項３に記載の複合機において、前記データ解析手段によって前記特殊データ列であると解析された場合に、さらに、前記特殊データ列中の情報に基づき、前記第１，第２のモードいずれかの設定を要求するデータ列であるか否かを判定して、いずれかの設定を要求するデータ列であれば、要求された動作モードを設定する動作モード設定手段を備えたことを特徴とする。
【００４１】
このような構成を採用すれば、特殊データ列として、ファイルに対するアクセスを要求する指令を伝えるデータ列と、第１，第２のモードいずれかの設定を要求する指令を伝えるデータ列を利用することができるようになる。したがって、ファイルに対するアクセスを要求する場合はもちろんのこと、コンピュータ側から複合機に対して第１，第２のモードいずれかの設定を要求したい場合にも特殊データ列を利用できるようになる。
【００４２】
次に、請求項５に記載の複合機は、請求項１〜請求項４のいずれか一項に記載の複合機において、前記複合機は、前記複数種の機能として、前記ＵＳＢストレージデバイス機能および前記通信デバイス機能の他に、プリンタ機能を備えており、前記データ処理手段は、前記記憶装置に記憶された画像データに基づいて画像を印刷する機能を制御する手段であり、前記記憶装置に記憶されたデータを利用する際に、利用対象となるデータが格納されたファイルへのアクセスを前記ファイル管理手段に対して指令する手段として構成されていることを特徴とする。
【００４３】
このように構成された複合機によれば、動作モードとして第１のモードを設定することにより、複合機をＵＳＢストレージデバイスとして機能させることができる。また、動作モードとして第２モードを設定することにより、コンピュータからのファイルアクセスを許容したまま（すなわち、第２のストレージデバイス機能制御手段を利用することにより、コンピュータが記憶装置を利用できる状態のまま）、複合機内蔵のデータ処理手段による「記憶装置上のファイルを印刷する機能」をも利用可能とすることができる。
【００４４】
次に、請求項６に記載のファイル伝送システムは、コンピュータと請求項１〜請求項５のいずれか一項に記載の複合機とを、ＵＳＢインターフェースを介して接続することによって構成され、前記コンピュータは、クライアント機能を有するクライアントコンピュータとの間でファイルを伝送可能なサーバ機能を有するサーバコンピュータであり、前記クライアントコンピュータからのアクセス要求に応じて、前記複合機が備える前記第２のストレージデバイス機能制御手段へとアクセス要求を伝達するとともに、当該アクセス要求に応じた前記複合機から返される応答データを、前記クライアントコンピュータへと伝送可能に構成されていることを特徴とする。
【００４５】
このように構成されたファイル伝送システムによれば、クライアントコンピュータは、サーバーコンピュータ経由で複合機上のファイルにアクセスすることができる。したがって、複数のクライアントコンピュータが、複合機上のファイルにアクセスすることも可能となる。
【発明を実施するための最良の形態】
【００４６】
次に、本発明の実施形態について、いくつかの具体的な例を挙げて説明する。
（１）第１実施形態
まず、第１実施形態について説明する。
【００４７】
［ファイル伝送システムの構成］
図１は、本発明の実施形態の一例として例示するファイル伝送システム全体のブロック図である。
【００４８】
このファイル伝送システムは、複合機１およびＰＣ（Personal Computer）２を中心に構成されたものである。複合機１およびＰＣ２は、双方ともＵＳＢインターフェースを有するもので、ＵＳＢ−ＨＵＢ３を介して接続されて相互間でデータ伝送ができるようになっている。また、ＵＳＢ−ＨＵＢ３には、他のＵＳＢデバイス４なども接続されている。
【００４９】
また、複合機１およびＰＣ２は、双方ともＬＡＮインターフェースを有し、複合機１は、ＬＡＮ５に接続された機器（例えば、ＰＣ６）との間でデータ伝送可能、ＰＣ２は、ＬＡＮ７に接続された機器（例えば、ＰＣ８）との間でデータ伝送可能となっている。
【００５０】
本実施形態において、複合機１は、プリンタ機能、スキャナ機能、ＰＣ−ＦＡＸ機能、カードリーダ機能などを備える多機能デバイスで、これらの機能をＰＣ２から制御できるようになっている。
【００５１】
［複合機の内部構成］
図２は、複合機１の内部構成を示すブロック図である。
複合機１は、ＵＳＢインターフェースを構成するためのハードウェアとして、ＵＳＢプロトコルエンジン１０１、共通制御回路１０２、プリンタ系データ入出力回路１０３、スキャナ系データ入出力回路１０４、ＰＣ−ＦＡＸ系データ入出力回路１０５、およびカードリーダ系データ入出力回路１０６などを備えている。
【００５２】
ＰＣ２との間でデータ伝送を行う際には、上記ＵＳＢプロトコルエンジン１０１による制御下で、ＵＳＢ規格の通信プロトコルにてデータが伝送される。これらのハードウェアは、エンドポイントを介してＰＣ２との間でデータを伝送するように構成されている。
【００５３】
具体的には、共通制御回路１０２は、コントロール転送用のエンドポイント（以下、ＥＰ０と称する。）を介して、ＰＣ２との間で各種制御データの入出力（双方向通信）を行う。
【００５４】
また、プリンタ系データ入出力回路１０３、スキャナ系データ入出力回路１０４、ＰＣ−ＦＡＸ系データ入出力回路１０５、およびカードリーダ系データ入出力回路１０６は、それぞれが入力データ用のエンドポイントおよび出力データ用のエンドポイント（以下、ＥＰ１〜８と称する。）を介して、ＰＣ２との間でデータを伝送する。
【００５５】
プリンタ系データ入出力回路１０３へデータが伝送された場合、そのデータはプリンタ入出力タスク１１１へと伝送される。プリンタ入出力タスク１１１へ伝送されたデータは、さらに印字制御タスク１１３へと伝送されて、印字制御タスク１１３によってプリンタハードウェア１１５が制御される。
【００５６】
また、スキャナ系データ入出力回路１０４へデータが伝送された場合、そのデータはスキャナ入出力タスク１２１へと伝送される。スキャナ入出力タスク１２１へ伝送されたデータは、さらにスキャナ制御タスク１２３へと伝送されて、スキャナ制御タスク１２３によってスキャナハードウェア１２５が制御される。
【００５７】
また、カードリーダ系データ入出力回路１０６へデータが伝送された場合、そのデータはＳＣＳＩコマンド解析タスク１４１へと伝送される。ＳＣＳＩコマンド解析タスク１４１へと伝送されたデータは、さらに物理セクタ単位入出力タスク１４３へと伝送される。この物理セクタ単位入出力タスク１４３は、本発明でいう第１のストレージデバイス機能制御手段の一例に相当する。
【００５８】
物理セクタ単位入出力タスク１４３は、受け取ったデータをメモリスロット制御タスク１４５へと伝送する処理などを実行するが、この処理の詳細については後述する。そして、メモリスロット制御タスク１４５は、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４に対する制御を実行する。なお、メモリスロット制御タスク１４５は、本発明でいう記憶装置制御手段の一例に相当する。
【００５９】
第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、第４メモリスロット１５４は、いずれもリムーバブルメディアが装着されるスロットで、それぞれが他のスロットとは異なる規格のリムーバブルメディアを装着できる構造になっている。これら第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、第４メモリスロット１５４は、本発明でいう記憶装置の一例に相当する。
【００６０】
なお、本実施形態において、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４は、それぞれが排他的に利用可能となるものである。例えば、第１メモリスロット１５１にリムーバブルメディアが装着された場合、そのリムーバブルメディアが取り外されるまで、他のスロットは利用不能となる。
【００６１】
また、ＰＣ−ＦＡＸ系データ入出力回路１０５へデータが伝送された場合、そのデータはＡＴコマンド解析タスク１３０へと伝送される。ＡＴコマンド解析タスク１３０は、データ中に含まれる情報に基づいて、２系統あるデータ処理系のいずれかへデータを振り分ける。このＡＴコマンド解析タスク１３０は、本発明でいうデータ解析手段の一例に相当するものである。
【００６２】
具体的には、ＡＴコマンド解析タスク１３０へ伝送されてくるデータ中には、ＰＣ２において発行されたＡＴコマンドが含まれている。ＡＴコマンド解析タスク１３０では、ＡＴコマンドを構成する文字列中に特殊データ列であることを示す文字列が含まれているか否かに基づいて、ＰＣ２からの出力データの振り分け先を判断する。なお、ＡＴコマンド解析タスク１３０において実行される具体的な処理の詳細については後述する。
【００６３】
ＡＴコマンド解析タスク１３０が、ＰＣ−ＦＡＸ入出力タスク１３１側（図２参照）へデータを振り分けた場合、そのデータはモデム制御タスク１３３へと伝送され、モデム制御タスク１３３によってモデムハードウェア１３５が制御される。なお、モデムハードウェア１３５は、本発明でいう通信装置の一例に相当し、モデム制御タスク１３３は、本発明でいう通信装置制御手段の一例に相当する。
【００６４】
一方、ＡＴコマンド解析タスク１３０が、ファイル単位入出力タスク１６１側（図２参照）へデータを振り分けた場合、ファイル単位入出力タスク１６１は、受け取ったデータをファイルシステムタスク１６３経由でメモリスロット制御タスク１４５へと伝送する処理を実行する。また、物理セクタ単位入出力タスク１４３に対してモードチェンジを要求する処理なども実行する。これらの処理の詳細については後述する。なお、このファイル単位入出力タスク１６１は、本発明でいう第２のストレージデバイス機能制御手段の一例に相当する。また、ファイルシステムタスク１６３は、本発明でいうファイル管理手段の一例に相当する。
【００６５】
ファイル単位入出力タスク１６１からファイルシステムタスク１６３経由でメモリスロット制御タスク１４５へデータが伝送されたら、この場合も、メモリスロット制御タスク１４５は、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４に対する制御を実行する。
【００６６】
さらに、複合機１は、メディアプリント機能１７１およびＦＴＰ（File Transfer Protocol）サーバータスク１７３を備えている。これらメディアプリント機能１７１およびＦＴＰサーバータスク１７３は、本発明でいうデータ処理手段の一例に相当し、ＰＣ２とは独立に複合機１単体で実行可能な機能を制御するものである。
【００６７】
具体的には、メディアプリント機能１７１は、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４の内、いずれかに装着されたリムーバブルメディアから画像ファイルを読み込んで、その画像ファイルを印刷する機能を制御するものである。
【００６８】
このメディアプリント機能１７１が画像ファイルを読み込む際には、ファイル単位入出力タスク１６１同様、ファイルシステムタスク１６３経由でデータをメモリスロット制御タスク１４５へと伝送する。これにより、画像ファイルへのアクセスが実行されることになる。
【００６９】
また、ＦＴＰサーバータスク１７３は、複合機１が接続されたＬＡＮ５上に存在する機器（例えば、ＰＣ６）から、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４の内、いずれかに装着されたリムーバブルメディア上のファイルに対するアクセス要求があった場合に、そのアクセス要求を処理するものである。
【００７０】
このＦＴＰサーバータスク１７３がファイルにアクセスする際にも、ファイル単位入出力タスク１６１同様、ファイルシステムタスク１６３経由でデータをメモリスロット制御タスク１４５へと伝送することにより、ファイルへのアクセスが実行されることになる。
【００７１】
［ＰＣの内部構成］
図３は、ＰＣ２の内部構成を示すブロック図である。
ＰＣ２においては、ＯＳによる標準機能として、ＵＳＢプロトコルスタック２０１、ＵＳＢ複合デバイスドライバ２０２、ＵＳＢストレージドライバ２０３、ＳＣＳＩコマンド処理部２１１、リムーバブルディスクドライバ２２１、ファイルシステム２３１などが機能する。
【００７２】
また、ＰＣ２においては、複合機１に対応する専用ソフトウェアとして、プリントポートドライバ２２３、スキャナドライバ２２５、ＣＯＭポートドライバ２２７、プリンタドライバ２６１などが機能する。
【００７３】
また、ＰＣ２においては、これらの機能を利用するアプリケーションソフトウェアとして、印刷可能アプリケーション２７１、スキャン可能アプリケーション２７３、ＰＣ−ＦＡＸアプリケーション２７５などが機能する。
【００７４】
さらに、本実施形態において、ＰＣ２が備えるＯＳとしては、Ｗｉｎｄｏｗｓ（登録商標）が利用されており、ＰＣ２においては、Ｗｉｎｄｏｗｓ（登録商標）付属のソフトウェアであるエクスプローラ２７７なども機能する。ただし、ＰＣ２が備えるＯＳは、同等な機能を実現できるものであれば、Ｗｉｎｄｏｗｓ（登録商標）以外のＯＳであってもよい。
【００７５】
加えて、ＰＣ２では、ＦＴＰサーバーアプリケーション２８１、ＴＣＰ／ＩＰプロトコル２８３などが機能する。ＦＴＰサーバーアプリケーション２８１は、ＦＴＰクライアントとして機能するＷＥＢブラウザ２８５からのアクセス要求を受けて、複合機１に対してファイルアクセス要求を発行するソフトウェアである。
【００７６】
なお、ＰＣ２においては、他のＵＳＢデバイス４に対応する他のＵＳＢデバイスのドライバ２８７なども機能する。
［複合機およびＰＣの機能概要］
複合機１は、ＰＣ２側で利用者が所定の操作を行うことにより、２つのモードをいずれかに切り替えることができる。
【００７７】
一方のモードは、ＵＳＢストレージモード（本発明でいう第１のモードに相当；以下、ＵＳＢモードとも称する。）で、このモードに切り替えた場合、ＰＣ２によるＵＳＢストレージデバイスへのアクセスが許可される。
【００７８】
この場合、複合機１が備える第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４は、通常のＵＳＢストレージデバイスと同様に機能する。
【００７９】
もう一方のモードは、ＦＴＰサーバーモード（本発明でいう第２のモードに相当；以下、ＦＴＰモードとも称する。）で、このモードに切り替えた場合、ＰＣ２によるＵＳＢストレージデバイスへのアクセスが禁止される状態になる。なお、本実施形態において、ＵＳＢストレージデバイスへのアクセスが禁止される状態とは、詳しくは次のような状態になることをいう。
【００８０】
すなわち、ＦＴＰモードに切り替えた場合、複合機１が備える第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４は、通常のＵＳＢストレージデバイスと同様には機能しない状態となる。具体的には、各スロットにメディアを装着して、そのメディアにＰＣ２からアクセスしようとしても、複合機１からはメディアが装着されていない旨の応答が返る状態になる。このような状態になると、ＰＣ２はＵＳＢストレージデバイス機能を利用できない状態となるので、このような状態のことを、本実施形態では、ＵＳＢストレージデバイスへのアクセスが禁止される状態と称している。
【００８１】
ただし、ＦＴＰモードに切り替えた場合でも、ＦＴＰモードに対応したアプリケーションは、複合機１が備える第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４にアクセスすることができる。
【００８２】
具体的には、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４に対するアクセスを実行する際、ＦＴＰモードに対応したアプリケーションは、複合機２が備える論理ユニットの一つであるＦＡＸデバイスに対してデータを伝送する。
【００８３】
このときＦＴＰモードに対応したアプリケーションが送出するデータ列は、通常のＰＣ−ＦＡＸ対応アプリケーション（例えば、図３に示すＰＣ−ＦＡＸアプリケーション２７５）が複合機１に対して伝送するデータ列（本発明でいう標準データ列）とは異なるデータ列（本発明でいう特殊データ列）を複合機１に対して伝送する。これについては、後でさらに詳しく説明する。
【００８４】
複合機１は、ＰＣ２から伝送されてくるデータ列が、標準データ列か特殊データ列かを解析し、標準データ列であれば、ＦＡＸデバイスに対するデータ列としての処理を実行する。具体的には、標準データ列は、ＰＣ−ＦＡＸ入出力タスク１３１へと伝送されて、ＰＣ−ＦＡＸ機能の制御が行われることになる。
【００８５】
これに対し、特殊データ列であれば、ＦＡＸデバイスに対するデータ列とは別の処理を実行し、これにより、各スロットへのアクセスを実現する。具体的には、特殊データ列は、ファイル単位入出力タスク１６１へと伝送されて、メディアに対するアクセスは、ファイルシステムタスク１６３経由にてファイル単位で実行される。
【００８６】
［標準データ列および特殊データ列の仕様と伝送方法］
次に、上述の標準データ列および特殊データ列の仕様と伝送方法について説明する。
【００８７】
複合機１において、標準データ列か特殊データ列かは、上述のＡＴコマンドを構成する文字列に基づいて判断される。
ＡＴコマンドは、一般に、始端側が文字列「ＡＴ」で始まり、終端側は２バイト分のコード<0dh><0ah>で区切られる形式のデータ列となっている（なお、<0dh>、<0ah>はそれぞれ１バイトのコードを１６進数で表記したもので、<0dh>はキャリッジ・リターンに対応する制御コード、<0ah>はライン・フィードに対応する制御コードに相当）。
【００８８】
そして、始端側にある文字列「ＡＴ」の後に続く文字列によって、具体的なコマンドの種別が規定されるとともに、必要があれば、さらに引き続くデータ列により、各種データを伝送可能となっている。
【００８９】
そこで、本実施形態の複合機１では、「ＡＴ」の後に続く文字列が「＋ＢＲＦＴＰ」という文字列である場合には、ＰＣ２から到来するデータ列を特殊データ列として扱い、「ＡＴ」の後に続く文字列が「＋ＢＲＦＴＰ」以外の文字列である場合には、ＰＣ２から到来したデータ列を標準データ列として扱うようにした。
【００９０】
具体的には、「ＡＴ」の後に続く文字列が「＋ＢＲＦＴＰ」以外の文字列であった場合、複合機１は、ＰＣ２から伝送されてくるデータ列（ＡＴコマンド）を、通常のＦＡＸデバイスに対するデータ列として処理する。なお、この処理は、ＰＣ−ＦＡＸ機能を有するＦＡＸデバイスにおいて行われる一般的な処理と同等な周知の処理となるので、ここでの説明は省略する。
【００９１】
一方、「ＡＴ」の後に続く文字列が「＋ＢＲＦＴＰ」であった場合、複合機１は、ＰＣ２から伝送されてくるデータ列（ＡＴコマンド）を、通常のＦＡＸデバイスに対するデータ列としては処理せず、本実施形態特有の処理を行う。
【００９２】
より詳しく説明すると、「ＡＴ」の後に続く文字列が「＋ＢＲＦＴＰ」であった場合、その後に続くデータ列には、いくつかの文字列が含まれていて、その後にＡＴコマンドの終端を示す２バイト分のコード<0dh><0ah>が存在している。いくつかの文字列は、いずれも文字列の始端と終端が「"」で区切られた形式になっているので、データ列中の「"」に着目して個々の文字列を抽出することができる。
【００９３】
また、文字列の数は、本実施形態の場合、少なくとも１つ（すなわち、第１文字列のみ）、最大で４つ（すなわち、第１文字列〜第４文字列）となっている。第１文字列は、あらかじめ定められた８種の文字列のいずれかであり、コマンド詳細を示す文字列とされている。具体的には、第１文字列は、「"modeset"」、「"modeget"」、「 "fopen" 」、「 "fclose"」、「"fread"」、「"fwrite"」、「"fseek"」、「"flist"」のいずれかとなる。
【００９４】
また、第２文字列以降の文字列が存在するか否かは、第１文字列が上記８種のいずれであるかに応じて決まっており、第２文字列以降の各文字列が持つ意味も、第１文字列が上記８種のいずれであるかに応じて変わる。具体的には、第１文字列の違いにより、以下のような８種のＡＴコマンドが構成されることになる。
＜１．モードチェンジ要求コマンド＞
AT+BRFTP "modeset" "(要求するモード)"<0dh><0ah>
＜２．モード取得コマンド＞
AT+BRFTP "modeget"<0dh><0ah>
＜３．ファイルオープンコマンド＞
AT+BRFTP "fopen" "(ファイルのパス名)" "(openモード)" <0dh><0ah>
＜４．ファイルクローズコマンド＞
AT+BRFTP "fclose" "(ファイルハンドル)" <0dh><0ah>
＜５．ファイルリードコマンド＞
AT+BRFTP "fread" "(ファイルハンドル)" "(項目サイズ)" "(最大項目数)" <0dh><0ah>
＜６．ファイルライトコマンド＞
AT+BRFTP "fwrite" "(ファイルハンドル)" "(項目サイズ)" "(項目数)" <0dh><0ah>
＜７．ファイルシークコマンド＞
AT+BRFTP "fseek" "(ファイルハンドル)" "(seek位置)" "(seekモード)" <0dh><0ah>
＜８．ファイル一覧取得コマンド＞
AT+BRFTP "flist" "(一覧を取るパス名,ワイルドカード付き)" <0dh><0ah>
上記８種のＡＴコマンド中、第２文字列以降はパラメータを表し、例えば、第１文字列が“ｆｏｐｅｎ”の場合は、第２文字列がファイル名、第３文字列がオープンモードとなっている。また、第１文字列が“ｆｃｌｏｓｅ”の場合は、第２文字列がハンドル番号（＝文字列化された数値）となっている。なお、これらのパラメータは、Ｃ言語の標準関数に準じた仕様としてある。
【００９５】
また、第１文字列が“ｆｒｅａｄ”、“ｆｗｒｉｔｅ”の場合、上記ＡＴコマンドの伝送に引き続いて、ファイルから読み込んだ実データやファイルへ書き込む実データの伝送が行われる。これら実データについては、複合機１およびＰＣ２のいずれが送信側となる場合でも、以下のようなフォーマットのデータ列が伝送される。
＜９．実データ伝送データ列＞
<0dh><0ah>*Data;Len=(バイト数);<バイナリ・データ>;<0dh><0ah>
このデータ列中、「*Data」はバイナリ・データの伝送であることを示す識別用文字列、「;」はデータ構造の区切りを示す記号、「Len=」はデータ長を記述する前に記述される識別用文字列である。「(バイト数)」は、伝送対象となるバイナリ・データのデータ長であり、１０進数表記の文字列または１６進数表記の文字列で記述される。
【００９６】
「<バイナリ・データ>」は、伝送対象となるバイナリ・データの実体（実データ部分）であり、この「<バイナリ・データ>」のデータ長が、その前に記述された「(バイト数)」で示されたサイズとされる。
【００９７】
さらに、上記８種のＡＴコマンドがＰＣ２から複合機１へと伝送され、必要に応じて上記実データ伝送データ列が複合機１とＰＣ２との間で伝送された後は、以下のようなフォーマットのデータ列が伝送されて、ＰＣ２が複合機１からステータスの受信を行う。
＜１０．ステータス伝送データ列＞
<0dh><0ah>*Stat; "(第１文字列)" "(第２文字列)" "(第３文字列)" <0dh><0ah>
このデータ列中、「*Stat」はステータスの伝送であることを示す識別用文字列、「;」は識別用文字列の終端を示す区切り記号、「"」は文字列の始端と終端を示す記号である。「(第１文字列)」は「０」か「１」で、「０」は失敗、「１」は成功を表している。また、「(第２文字列)」、「(第３文字列)」は、第１文字列以外のリターンデータが格納される。
【００９８】
例えば、ｆｏｐｅｎの場合、第１文字列が「０（失敗）」なら、第２文字列は無し、第１文字列が「１（成功）」なら、第２文字列はハンドル番号（＝文字列化された数値）とされる。また、ｆｃｌｏｓｅの場合は、第２文字列はなしとされる。
【００９９】
つまり、ＰＣ２が複合機１に対して何らかのアクセスを実施する際には、まず、上記８種のＡＴコマンドのいずれかがＰＣ２から複合機１へと伝送され、その後、実データの伝送を伴うＡＴコマンドであった場合のみ実データ伝送データ列によるデータ伝送が行われ、さらにその後、複合機１からＰＣ２へステータスの伝送が行われることになる。
【０１００】
なお、以上のようなＡＴコマンドにおいて、文字列中(始端と終端を「"」 で囲われた部分)において、文字「|」はエスケープコードとして利用される。具体的には、文字列中で「|xx (xxは１６進数２桁) 」との記述を行うことにより、１６進数２桁で指定した１バイトのデータを文字列中に埋め込むことができる。したがって、文字「|」を使えば、文字列の始端や終端を区切るための「"」自体を文字列の一部として記述したり、エスケープコードである「|」自体を文字列の一部として記述したりすることも可能となる。
【０１０１】
［ＡＴコマンド解析タスクにおいて実行される処理］
次に、複合機１各部で実行される処理の内、複合機１が備えるＡＴコマンド解析タスク１３０において実行される処理について、図４に基づいて説明する。
【０１０２】
この処理を開始すると、複合機１は、まず、ＰＣ２からＡＴコマンドが来たか否かを判断する（Ｓ１０５）。ここで、ＰＣ２からＡＴコマンドが来なければ（Ｓ１０５：来ない）、Ｓ１０５の処理へ戻る。
【０１０３】
一方、ＰＣ２からＡＴコマンドが来たら（Ｓ１０５：来た）、そのＡＴコマンドが「ＡＴ＋ＢＲＦＴＰ」か否かを判断する（Ｓ１１０）。
Ｓ１１０の処理による判断の結果、ＡＴコマンドが「ＡＴ＋ＢＲＦＴＰ」以外の場合（Ｓ１１０：ＡＴ＋ＢＲＦＴＰ以外）、複合機１は、ＡＴコマンドをＰＣ−ＦＡＸ入出力タスク１３１へ伝送し、ＰＣ−ＦＡＸ入出力タスク１３１側での処理終了を待つ（Ｓ１１５）。
【０１０４】
このＳ１１５の処理においては、ＰＣ２から伝送されてきたＡＴコマンドは、ＡＴコマンド解析タスク１３０からＰＣ−ＦＡＸ入出力タスク１３１へと伝送される。また、Ｓ１１５の処理において、ＡＴコマンドをＰＣ−ＦＡＸ入出力タスク１３１へ伝送した後は、ＰＣ−ＦＡＸ入出力タスク１３１側での処理が終了するのを待つ。
【０１０５】
ＰＣ−ＦＡＸ入出力タスク１３１側での処理が終了した場合、ＰＣ−ＦＡＸ入出力タスク１３１側から応答が返るので、Ｓ１１５の処理では、ＰＣ−ＦＡＸ入出力タスク１３１からの応答を、ＰＣ２側へと伝送し、Ｓ１１５の処理を終了する。なお、Ｓ１１５の処理を終了したら、Ｓ１０５の処理へと戻る。
【０１０６】
以上のようなＳ１１５の処理について、より具体的な例を交えて説明すると、例えば、ＰＣ２側からは、「ＡＴ＋ＢＲＦＴＰ」以外のコマンドで、ＦＡＸ送信を要求するＡＴコマンドが伝送されてくる場合がある。この場合、Ｓ１１５の処理では、ＡＴコマンド解析タスク１３０が受け取ったＡＴコマンドをＰＣ−ＦＡＸ入出力タスク１３１へと伝送する。
【０１０７】
このとき、ＰＣ−ＦＡＸ入出力タスク１３１では、所定の処理が実行される。そして、その所定の処理を実行した結果に関する情報が、応答としてＰＣ−ＦＡＸ入出力タスク１３１からＡＴコマンド解析タスク１３０へ返される。
【０１０８】
ＡＴコマンド解析タスク１３０は、上記Ｓ１１５の処理の中で、ＰＣ−ＦＡＸ入出力タスク１３１の処理終了を待つ。そして、ＰＣ−ＦＡＸ入出力タスク１３１から応答を受け取ったら、その応答をＡＴコマンドに対する応答としてＰＣ２側へ返して、Ｓ１１５の処理を終了する。
【０１０９】
つまり、「ＡＴ＋ＢＲＦＴＰ」以外のＡＴコマンドがＰＣ２から到来する場合、ＡＴコマンド解析タスク１３０は、ＰＣ２側へのデータ伝送路とＰＣ−ＦＡＸ入出力タスク１３１との間に介在して、両者間でやり取りされるデータを単に中継するだけとなる。また、ＰＣ−ＦＡＸ入出力タスク１３１において実行される上記「所定の処理」は、ＰＣ−ＦＡＸ機能を有する一般的なＦＡＸデバイスにおいて実行される処理と同等の処理とされている。
【０１１０】
したがって、「ＡＴ＋ＢＲＦＴＰ」以外のコマンドがＰＣ２から到来する場合、複合機１は、ＰＣ−ＦＡＸ機能を有する一般的なＦＡＸデバイスと同等に機能することになる。なお、ＡＴコマンドでＰＣ−ＦＡＸ機能が制御される一般的なＦＡＸデバイスは公知なので、そのようなＦＡＸデバイスが実行する処理については、これ以上の詳細な説明を省略する。
【０１１１】
一方、Ｓ１１０の処理による判断の結果、ＡＴコマンドが「ＡＴ＋ＢＲＦＴＰ」の場合（Ｓ１１０：ＡＴ＋ＢＲＦＴＰ）、複合機１は、ＡＴコマンドをファイル単位入出力タスク１６１へ伝送し、ファイル単位入出力タスク１６１側での処理終了を待つ（Ｓ１２０）。
【０１１２】
このＳ１２０の処理においては、ＰＣ２から伝送されてきたＡＴコマンドは、ＡＴコマンド解析タスク１３０からファイル単位入出力タスク１６１へと伝送される。また、Ｓ１２０の処理において、ＡＴコマンドをファイル単位入出力タスク１６１へ伝送した後は、ファイル単位入出力タスク１６１側での処理が終了するのを待つ。
【０１１３】
ファイル単位入出力タスク１６１側での処理が終了した場合、ファイル単位入出力タスク１６１側から応答が返るので、Ｓ１２０の処理では、ファイル単位入出力タスク１６１からの応答をＰＣ２側へと伝送し、Ｓ１２０の処理を終了する。なお、Ｓ１２０の処理を終了したら、Ｓ１０５の処理へと戻る。
【０１１４】
つまり、ＰＣ２から到来したＡＴコマンドが「ＡＴ＋ＢＲＦＴＰ」であった場合に限り、ＡＴコマンド解析タスク１３０は、ＡＴコマンドをＰＣ−ＦＡＸ入出力タスク１３１側へは伝送せず、データ列をファイル単位入出力タスク１６１へと振り分ける処理を実行する。
【０１１５】
［物理セクタ単位入出力タスクで実行される処理］
次に、複合機１が備える物理セクタ単位入出力タスク１４３において実行される処理について、図５および図６に基づいて説明する。
【０１１６】
この処理を開始すると、複合機１は、まず、ＳＣＳＩコマンド解析タスク１４１からＳＣＳＩコマンドが来たか否かを判断する（Ｓ２０５）。ここで、ＳＣＳＩコマンド解析タスク１４１からＳＣＳＩコマンドが来たら（Ｓ２０５：来た）、メディアへのアクセスが必要なコマンドか否かを判断する（Ｓ２１０）。
【０１１７】
メディアへのアクセスが必要なコマンドであった場合（Ｓ２１０：はい）、現在メモリスロット制御タスク１４５の使用権を取得中か否かの判断を行う（Ｓ２１５）。このメモリスロット制御タスク１４５の使用権は、物理セクタ単位入出力タスク１４３またはファイルシステムタスク１６３が排他的に取得できる権利である。物理セクタ単位入出力タスク１４３とファイルシステムタスク１６３は、使用権を取得した場合にのみ、メモリスロット制御タスク１４５へのアクセスができる。これにより、両者が同時にメモリスロット制御タスク１４５に対してデータ伝送を行わないようにすることができる。
【０１１８】
Ｓ２１５の処理で、メモリスロット制御タスク１４５の使用権を取得中ではないと判断した場合（Ｓ２１５：いいえ）、続いて、ＵＳＢモードか否かを判断する（Ｓ２２０）。
【０１１９】
Ｓ２２０の処理において、ＵＳＢモードであった場合（Ｓ２２０：はい）、メモリスロット制御タスク１４５の使用権を取得する（Ｓ２２５）。メモリスロット制御タスク１４５の使用権は、状況により取得できる場合もあれば取得に失敗する場合もあるので、Ｓ２２５の処理を終えたら、メモリスロット制御タスク１４５の使用権取得に成功したか否かを判断する（Ｓ２３０）。
【０１２０】
取得に失敗していた場合（Ｓ２３０：いいえ）、メモリスロット制御タスク１４５の使用権はファイルシステムタスク１６３が取得しているものと考えられる。そこで、この場合は、ＳＣＳＩコマンド解析タスク１４１から受け取ったＳＣＳＩコマンドに対応した処理として、擬似的にメディアが入っていない時に相当する応答のみを返す処理を実行し（Ｓ２３５）、Ｓ２０５の処理へと戻る。
【０１２１】
また、Ｓ２２０の処理において、ＵＳＢモードでなかった場合（Ｓ２２０：はい）、ＵＳＢストレージデバイスへのアクセスが禁止されるモードなので、この場合は、Ｓ２２５、Ｓ２３０の処理を実行することなく、直ちに上記Ｓ２３５の処理へと進む。
【０１２２】
すなわち、この場合も、ＳＣＳＩコマンド解析タスク１４１から受け取ったＳＣＳＩコマンドに対応した処理として、擬似的にメディアが入っていない時に相当する応答のみを返す処理を実行し（Ｓ２３５）、Ｓ２０５の処理へと戻る。
【０１２３】
なお、メディアが入っていない時に相当する応答がＰＣ２側に返されると、ＰＣ２は、図７に示すようなダイヤログを表示する。これにより、利用者は、ＵＳＢストレージデバイスへのアクセスができない状態にあると理解することができる。
【０１２４】
さて一方、上記Ｓ２３０の処理において、メモリスロット制御タスク１４５の使用権取得に成功した場合は（Ｓ２３０：はい）、Ｓ２４０処理へと進む。また、上記Ｓ２１５の処理において、メモリスロット制御タスク１４５の使用権を既に取得中であると判断した場合（Ｓ２１５：はい）も、Ｓ２４０処理へと進む。
【０１２５】
Ｓ２４０の処理へと進んだ場合、権利解放までのタイマーをクリアして（Ｓ２４０）、ＳＣＳＩコマンドを実行する（Ｓ２４５）。Ｓ２４５の処理では、ＳＣＳＩコマンド解析タスク１４１から受け取ったＳＣＳＩコマンドに対応した処理が実行される。
【０１２６】
より具体的には、例えば、ＳＣＳＩコマンドがメディアからのデータ読み込みを要求するものであれば、Ｓ２４５の処理では、物理セクタ単位入出力タスク１４３からメモリスロット制御タスク１４５に対してメディアからのデータ読み込み指令が伝送される。
【０１２７】
この指令を受けたメモリスロット制御タスク１４５では、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、または第４メモリスロット１５４のいずれかに装着されたメディアから、物理セクタ単位でデータが読み出される。
【０１２８】
そして、そのデータがメモリスロット制御タスク１４５から物理セクタ単位入出力タスク１４３へと返されるので、物理セクタ単位入出力タスク１４３では、メモリスロット制御タスク１４５から受け取ったデータを、ＳＣＳＩコマンド解析タスク１４１へ返す。
【０１２９】
また、例えば、ＳＣＳＩコマンドがメディアへのデータ書き込みを要求するものであれば、Ｓ２４５の処理では、物理セクタ単位入出力タスク１４３からメモリスロット制御タスク１４５に対してメディアからのデータ書き込み指令が伝送される。
【０１３０】
この指令を受けたメモリスロット制御タスク１４５では、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、または第４メモリスロット１５４のいずれかに装着されたメディアに対して、物理セクタ単位でデータが書き込まれる。
【０１３１】
その書き込み結果を示すデータは、メモリスロット制御タスク１４５から物理セクタ単位入出力タスク１４３へと返される。そこで、物理セクタ単位入出力タスク１４３は、メモリスロット制御タスク１４５から受け取ったデータを、ＳＣＳＩコマンド解析タスク１４１へ返す。
【０１３２】
こうしてＳ２４５の処理を終えたら、続いて、図６に示すように、現在メディアロック中か否かを判断し（Ｓ２５０）、メディアロック中でない場合は（Ｓ２５０：いいえ）、権利解放の所定時間を過ぎたか否かを判断する（Ｓ２５５）。そして、権利解放の所定時間を過ぎていれば（Ｓ２５５：過ぎた）、メモリスロット制御タスク１４５の使用権を解放する（Ｓ２６０）。
【０１３３】
これらＳ２５０〜Ｓ２６０の処理において、メディアロックは、ＰＣ２側から伝送されてくる指示に基づいて設定されるもので、メディアロック中である場合、ＰＣ２はメディアが取り出されないことを前提とした処理を実行する可能性がある。
【０１３４】
また、権利解放の所定時間は、ＰＣ２側から最後のアクセス要求が到来した後、所定時間が経過するまでは、メモリスロット制御タスク１４５の使用権を保持するために設定されている。これは、メディアロックが解除された場合でも、ＰＣ２側での遅延書き込み制御等に起因して、ＰＣ２側からメディアへのアクセス要求が到来する可能性があるために設けられたものである。
【０１３５】
したがって、Ｓ２５０〜Ｓ２６０の処理では、メディアロック中でなく、且つ、権利解放の所定時間が経過している場合にのみ、メモリスロット制御タスク１４５の使用権を解放することになる。
【０１３６】
逆に、現在メディアロック中である場合（Ｓ２５０：はい）、または、権利解放の所定時間を過ぎていない場合は（Ｓ２５５：まだ）、Ｓ２６０の処理はスキップされて、メモリスロット制御タスク１４５の使用権を保持したままとなる。
【０１３７】
そして、以上のようなＳ２５０〜Ｓ２６０の処理を終えたら、Ｓ２０５の処理（図５参照）へと戻る。
さて、以上が、Ｓ２０５の処理においてＳＣＳＩコマンドが来たと判断された場合の処理となるが、Ｓ２０５の処理では、ＳＣＳＩコマンド解析タスク１４１からＳＣＳＩコマンドが来ないと判断されることもある（Ｓ２０５：来ない）。
【０１３８】
この場合は、図６に示すＳ２６５の処理へと進み、ファイル単位入出力タスク１６１からモードチェンジ要求が来たかどうかを判断する（Ｓ２６５）。モードチェンジ要求は、ファイル単位入出力タスク１６１が実行する処理の中で発行されるが、その処理の詳細については後述する。
【０１３９】
Ｓ２６５の処理において、モードチェンジ要求が来たと判断した場合（Ｓ２６５：来た）、ＵＳＢモードへのチェンジか否かを判断する（Ｓ２７０）。Ｓ２７０の処理において、ＵＳＢモードへのチェンジではなかった場合は（Ｓ２７０：いいえ）、ＦＴＰモードへのチェンジであったことを意味する。
【０１４０】
そこで、物理セクタ単位入出力タスク１４３では、現在メモリスロット制御タスク１４５の使用権を取得中か否かの判断を行う（Ｓ２７５）。
Ｓ２７５の処理において、メモリスロット制御タスク１４５の使用権を取得中でない場合（Ｓ２７５：いいえ）、ＦＴＰモードへのチェンジが可能である。また、Ｓ２７０の処理において、ＵＳＢモードへのチェンジであった場合も（Ｓ２７０：はい）、ＵＳＢモードへのチェンジが可能である。
【０１４１】
そこで、これらの場合は、モードチェンジを受け入れて（Ｓ２８０）、Ｓ２０５の処理（図５参照）へと戻る。これにより、ＦＴＰモードまたはＵＳＢモードへのチェンジが実行されることになる。なお、Ｓ２８０の処理を実行する手段が、本発明でいう動作モード設定手段の一例に相当する。
【０１４２】
一方、Ｓ２７５の処理において、メモリスロット制御タスク１４５の使用権を取得中であった場合（Ｓ２７５：いいえ）、引き続きＰＣ２からのアクセスを受ける可能性があるため、ＦＴＰモードへのチェンジができない。
【０１４３】
そこで、この場合は、モードチェンジを拒否する（Ｓ２８５）。なお、Ｓ２８５の処理を終えたら、Ｓ２５０の処理へと進むが、Ｓ２５０以降の処理については既に説明したので、ここでの説明は省略する。
【０１４４】
［ファイル単位入出力タスクで実行される処理］
次に、複合機１が備えるファイル単位入出力タスク１６１において実行される処理について、図８および図９に基づいて説明する。
【０１４５】
この処理を開始すると、複合機１は、まず、ＡＴコマンド解析タスク１３０からＡＴコマンドが来たか否かを判断する（Ｓ３０５）。ここで、ＡＴコマンド解析タスク１３０からＡＴコマンドが来ない場合は（Ｓ３０５：来ない）、Ｓ３０５の処理へと戻る。
【０１４６】
一方、ＡＴコマンド解析タスク１３０からＡＴコマンドが来たら（Ｓ３０５：来た）、ＡＴコマンドが「ＡＴ＋ＢＲＦＴＰ」か否かを判断する（Ｓ３１０）。ここで、「ＡＴ＋ＢＲＦＴＰ」でない場合（Ｓ３１０：いいえ）、Ｓ３０５の処理へ戻る。
【０１４７】
一方、「ＡＴ＋ＢＲＦＴＰ」であった場合は（Ｓ３１０：はい）、ＡＴコマンド解析タスク１３０から伝送されてきたコマンド文字列群を受け取る（Ｓ３１５）。そして、その中の第１文字列に基づいて、引き続いてデータ出力があるコマンドか否かを判断する（Ｓ３２０）。
【０１４８】
Ｓ３２０の処理において、データ出力があるコマンドであると判断した場合（Ｓ３２０：はい）、「<0dh><0ah>*Dataから始まるバイナリデータ（上述の＜９．実データ伝送データ列＞）」が到来するまで待つ（Ｓ３２５：待ち）。そして、「<0dh><0ah>*Dataから始まるバイナリデータ」が到来したら（Ｓ３２５：来た）、データを受け取って（Ｓ３３０）、Ｓ３３５の処理へと進む。
【０１４９】
なお、Ｓ３２０の処理において、データ出力があるコマンドではないと判断した場合（Ｓ３２０：いいえ）、上記Ｓ３２５およびＳ３３０の処理はスキップして、Ｓ３３５の処理へと進む。
【０１５０】
こうしてＳ３３５の処理へと進んだ場合、コマンド文字列群中の、第１文字列のコマンドを実行する（Ｓ３３５）。このＳ３３５の処理は、詳しくは図９に示す処理となる。
すなわち、複合機１は、まず第１文字列を判断する（Ｓ４０５）。このＳ４０５の処理を実行する手段が、本発明でいうファイルアクセス要求判定手段の一例に相当する。
【０１５１】
Ｓ４０５の処理において、第１文字列がｆｏｐｅｎまたはｆｃｌｏｓｅであった場合（Ｓ４０５：ｆｏｐｅｎ／ｆｃｌｏｓｅ）、関数ｆｏｐｅｎ（）または関数ｆｃｌｏｓｅ（）をコールする（Ｓ４１０）。これにより、ファイル単位入出力タスク１６１では、ファイルシステムタスク１６３を経由してファイルをオープンまたはクローズすることができる。
【０１５２】
また、Ｓ４０５の処理において、第１文字列がｆｒｅａｄまたはｆｗｒｉｔｅであった場合（Ｓ４０５：ｆｒｅａｄ／ｆｗｒｉｔｅ）、関数ｆｒｅａｄ（）または関数ｆｗｒｉｔｅ（）をコールする（Ｓ４１５）。これにより、ファイル単位入出力タスク１６１では、ファイルシステムタスク１６３を経由してファイルを読み書きすることができる。
【０１５３】
また、Ｓ４０５の処理において、第１文字列がｍｏｄｅｇｅｔであった場合（Ｓ４０５：ｍｏｄｅｇｅｔ）、現在のモードを取得する（Ｓ４２０）。このＳ４２０の処理によって取得されるモードは、ＵＳＢモードまたはＦＴＰモードのいずれかとなる。
【０１５４】
また、Ｓ４０５の処理において、第１文字列がｍｏｄｅｓｅｔであった場合（Ｓ４０５：ｍｏｄｅｓｅｔ）、物理セクタ単位入出力タスク１４３にモードチェンジを要求する（Ｓ４２５）。このＳ４２５の処理によって物理セクタ単位入出力タスク１４３に対して発行される要求が、上述のＳ２６５の処理における判断対象になるものとなる。
【０１５５】
以上のようなＳ４０５〜Ｓ４２５の処理を終えると、図８に示したＳ３３５の処理を終えたことになるので、引き続いて、第１文字列に基づいて、データ入力のあるコマンドか否かを判断する（Ｓ３４０）。
【０１５６】
Ｓ３４０の処理において、データ入力があるコマンドであると判断した場合（Ｓ３４０：はい）、「<0dh><0ah>*Dataから始まるバイナリデータ（上述の＜９．実データ伝送データ列＞）」を複合機１からＰＣ２へ転送し（Ｓ３５０）、Ｓ３５５の処理へと進む。すなわち、ＰＣ２側が複合機１側からデータ入力を行う場合も、ＰＣ２側が複合機１側に対してデータ出力を行う場合と同形式のデータ列にて、実データの伝送を行うのである。
【０１５７】
なお、Ｓ３４０の処理において、ファイルアクセスデータ入力があるコマンドではないと判断した場合（Ｓ３４０：いいえ）、上記Ｓ３５０の処理はスキップして、Ｓ３６０の処理へと進む。
【０１５８】
こうしてＳ３６０の処理へと進んだら、「<0dh><0ah>*Statから始まるステータス（上述の＜１０．ステータス伝送データ列＞）」を複合機１からＰＣ２へ転送する（Ｓ３６０）。そして、「OK<0dh><0ah>」を複合機１からＰＣ２へ送信することにより、一つのＡＴコマンド対する応答を行ってＡＴコマンドを完結させ、Ｓ３０５の処理へと戻る。
【０１５９】
［複合機内部ファイルシステムタスクで実行される処理］
次に、複合機１が備えるファイルシステムタスク１６３において実行される処理について、図１０に基づいて説明する。
【０１６０】
この処理を開始すると、複合機１は、まず、別タスクからファイルアクセス関連のリクエストが来たか否かを判断する（Ｓ５０５）。別タスクの具体例としては、例えば、ファイル単位入出力タスク１６１、メディアプリント機能１７１、ＦＴＰサーバータスク１７３などを挙げることができる。
【０１６１】
ただし、複合機１に実装された機能によっては、具体例として列挙した上記のもの以外にも、ファイルシステムタスク１６３へのリクエストを発行するタスクが存在する場合がある。
【０１６２】
Ｓ５０５の処理において、別タスクからリクエストが来ない場合は（Ｓ５０５：来ない）、Ｓ５０５の処理へと戻る。一方、別タスクからリクエストが来た場合（Ｓ５０５：はい）、そのリクエストがｆｏｐｅｎであれば（Ｓ５０５：ｆｏｐｅｎ）、現在メモリスロット制御タスク１４５の使用権を取得中か否かの判断を行う（Ｓ５１０）。
【０１６３】
このメモリスロット制御タスク１４５の使用権は、既に説明したとおり、物理セクタ単位入出力タスク１４３またはファイルシステムタスク１６３が排他的に取得できる権利である。
【０１６４】
Ｓ５１０の処理で、メモリスロット制御タスク１４５の使用権を取得中ではないと判断した場合（Ｓ５１０：いいえ）、メモリスロット制御タスク１４５の使用権を取得する（Ｓ５１５）。メモリスロット制御タスク１４５の使用権は、状況により取得できる場合もあれば取得に失敗する場合もある。
【０１６５】
ここで、使用権取得に成功した場合（Ｓ５１５：成功）、あるいは、既に使用権を取得済みであった場合は（Ｓ５１０：はい）、該当ファイルのオープン処理（ハンドル作成）を実行して（Ｓ５２０）、Ｓ５０５の処理へと戻る。
【０１６６】
一方、使用権取得に失敗した場合（Ｓ５１５：失敗）、メモリスロット制御タスク１４５の使用権は物理セクタ単位入出力タスク１４３が取得しているものと考えられるので、該当ファイルのオープンに失敗する（Ｓ５２５）。この場合、ハンドルは作成せず、Ｓ５０５の処理へと戻る。
【０１６７】
また、Ｓ５０５の処理において、別タスクからのリクエストがｆｒｅａｄまたはｆｗｒｉｔｅであった場合（Ｓ５０５：ｆｒｅａｄ／ｆｗｒｉｔｅ）、ハンドルファイルに対して読み書きを行って（Ｓ５３０）、Ｓ５０５の処理へと戻る。
【０１６８】
また、Ｓ５０５の処理において、別タスクからのリクエストがｆｃｌｏｓｅであった場合（Ｓ５０５：ｆｃｌｏｓｅ）、ハンドルのクローズ処理（ハンドル破棄）を行う（Ｓ５３５）。そして、すべてのハンドルが破棄されたか否かを判断する（Ｓ５４０）。
【０１６９】
Ｓ５４０の処理において、すべてのハンドルが破棄されたと判断された場合は（Ｓ５４０：はい）、メモリスロット制御タスク１４５の使用権を解放して（Ｓ５４５）、Ｓ５０５の処理へと戻る。また、破棄されていないハンドルが残っていると判断された場合は（Ｓ５４０：いいえ）、Ｓ５４５の処理をスキップして、Ｓ５０５の処理へと戻る。
【０１７０】
また、Ｓ５０５の処理において、別タスクからのリクエストがｆｌｉｓｔであった場合（Ｓ５０５：ｆｌｉｓｔ）、現在メモリスロット制御タスク１４５の使用権を取得中か否かの判断を行う（Ｓ５５０）。
【０１７１】
Ｓ５５０の処理で、メモリスロット制御タスク１４５の使用権を取得中ではないと判断した場合（Ｓ５５０：いいえ）、メモリスロット制御タスク１４５の使用権を取得する（Ｓ５５５）。メモリスロット制御タスク１４５の使用権は、状況により取得できる場合もあれば取得に失敗する場合もある。
【０１７２】
ここで、使用権取得に成功した場合（Ｓ５５５：成功）、あるいは、既に使用権を取得済みであった場合は（Ｓ５５０：はい）、該当ファイルのオープン処理（ハンドル作成）を実行する（Ｓ５６０）。
【０１７３】
そして、ハンドルフォルダからファイル一覧を作成し（Ｓ５６５）、ハンドルのクローズ処理（ハンドル破棄）を行う（Ｓ５３５）。なお、Ｓ５７０の処理を終えたら、Ｓ５４０の処理へと進むが、Ｓ５４０以降の処理については既に説明したので、ここでの説明は省略する。
【０１７４】
さらに、上記Ｓ５５５の処理において、使用権取得に失敗した場合（Ｓ５５５：失敗）、ファイルは１つもないというファイル一覧を作成し（Ｓ５７５）、Ｓ５０５の処理へと戻る。
【０１７５】
［複合機内部メディアプリント機能で実行される処理］
次に、複合機１が備えるメディアプリント機能１７１において実行される処理について、図１１に基づいて説明する。
【０１７６】
この処理を開始すると、複合機１は、まず、カードのルートディレクトリのファイル一覧を作成する（Ｓ６０５）。このＳ６０５の処理では、関数ｆｌｉｓｔ（）がコールされることにより、メディアプリント機能１７１経由でリムーバブルメディア上のファイルに対するアクセスが実行されることになる。
【０１７７】
続いて、ルートディレクトリのファイル一覧に基づいて、サブディレクトリがあるかどうかを判断し、サブディレクトリがある場合は、さらに、サブディレクトリについてもファイル一覧を作成する（Ｓ６１０）。このＳ６１０の処理でも、関数ｆｌｉｓｔ（）がコールされることにより、メディアプリント機能１７１経由でリムーバブルメディア上のファイルに対するアクセスが実行される。なお、Ｓ６１０の処理は、すべてのサブディレクトリを対象にして実行される。
【０１７８】
そして、Ｓ６０５およびＳ６１０の処理によって得られたファイル一覧から、画像ファイルを抽出して（Ｓ６１５）、画像ファイルが１個以上あるか否かを判断する（Ｓ６２０）。ここで、画像ファイルがない場合は（Ｓ６２０：ない）、複合機１が備える表示部に「カードに画像ファイルがありません」とのメッセージを表示して（Ｓ６２５）、図１１に示す処理を終了する。
【０１７９】
一方、Ｓ６２０の処理で、画像ファイルが１個以上あると判断された場合は（Ｓ６２０：ある）、画像ファイルのサムネイルを作成する（Ｓ６３０）。Ｓ６３０の処理では、関数ｆｏｐｅｎ（）、ｆｒｅａｄ（）、ｆｃｌｏｓｅ（）などがコールされることにより、メディアプリント機能１７１経由でリムーバブルメディア上のファイルに対するアクセス（画像ファイルの読み込み）が実行され、読み込まれた画像ファイルがサムネイル化される。
【０１８０】
続いて、複合機１の表示部に、カード内の画像ファイルを表示する（Ｓ６３５）。Ｓ６３５の処理では、画像ファイルのファイル名とＳ６３０の処理で作成されたサムネイルとを対にして、複合機１の表示部に表示する処理を実行する。
【０１８１】
この後、複合機１は、ユーザーからの入力待ち状態となり、ユーザーが印刷する画像ファイルを選択可能な状態になる（Ｓ６４０）。この状態において、ユーザーがキャンセル操作を行った場合（Ｓ６４０：キャンセル）、図１１に示した処理を終了する。
【０１８２】
一方、Ｓ６４０の処理において、ユーザーが画像ファイルを選択して、印刷開始を指示する入力操作を行った場合（Ｓ６４０：選択、印刷開始）、複合機１は、印刷する画像ファイルをリードする（Ｓ６４５）。Ｓ６４５の処理では、関数ｆｏｐｅｎ（）、ｆｒｅａｄ（）、ｆｃｌｏｓｅ（）などがコールされることにより、メディアプリント機能１７１経由でリムーバブルメディア上のファイルに対するアクセス（画像ファイルの読み込み）が実行される。
【０１８３】
そして、カードから読み込まれた画像ファイルを印刷して（Ｓ６５０）、図１１に示す処理を終了する。
［ＰＣで機能するＦＴＰサーバーアプリケーションを起動したときに実行される処理］
次に、ＰＣ２で機能するＦＴＰサーバーアプリケーション２８１を起動したときに実行される処理について、図１２に基づいて説明する。
【０１８４】
ＦＴＰサーバーアプリケーション２８１は、どのようなタイミングで起動されてもよいが、この機能を常時利用する可能性がある場合は、ＰＣ２の起動に連動して起動されるように設定しておくと好ましい。
【０１８５】
ＦＴＰサーバーアプリケーション２８１が起動されて、この処理を開始すると、ＰＣ２は、ｍｏｄｅｇｅｔを実行する（Ｓ７０５）。具体的には、ＡＴコマンドにより、上述の＜２．モード取得コマンド＞である「AT+BRFTP "modeget"<0dh><0ah>」を発行することにより、ｍｏｄｅｇｅｔコマンドの実行を複合機１に要求する。
【０１８６】
このｍｏｄｅｇｅｔコマンドの実行要求が複合機１側に伝送されると、ＡＴコマンド解析タスク１３０は、図４に示した処理により、ＡＴコマンドをファイル単位入出力タスク１６１へと振り分ける。そして、ファイル単位入出力タスク１６１では、図８および図９に示した処理により、ｍｏｄｅｇｅｔに対応した処理（Ｓ４２０参照）を実行する。
【０１８７】
そして、複合機１の現在のモードが、Ｓ３６０の処理により、ＰＣ２へと伝送される。その結果、ＰＣ２は、複合機１の現在のモードを取得することになる。
こうして複合機１のモードを取得したら、そのモードを記憶し（Ｓ７１０）、ＦＴＰサーバーアプリケーション起動時にＦＴＰモードに切り替える設定か否かを判断する（Ｓ７１５）。ＦＴＰサーバーアプリケーション起動時にＦＴＰモードに切り替えるか否かは、ユーザーが任意に設定可能で、どのような設定がなされたかは、ＦＴＰサーバーアプリケーション用の設定ファイル等に記憶されている。
【０１８８】
ＦＴＰモードに切り替える設定であった場合（Ｓ７１５：はい）、現在の複合機１のモード（Ｓ７０５の処理で取得し、Ｓ７１０の処理で記憶したモード）がＦＴＰモードか否かを判断する（Ｓ７２０）。
【０１８９】
ここで、ＦＴＰモードでなかった場合（Ｓ７２０：いいえ）、ＰＣ２は、ｍｏｄｅｓｅｔを実行する（Ｓ７２５）。具体的には、ＡＴコマンドにより、上述の＜１．モードチェンジ要求コマンド＞である「AT+BRFTP "modeset" "(要求するモード＝ＦＴＰモード)"<0dh><0ah>」を発行することにより、ｍｏｄｅｓｅｔコマンドの実行を複合機１に要求する。
【０１９０】
このｍｏｄｅｓｅｔコマンドの実行要求が複合機１側に伝送されると、ＡＴコマンド解析タスク１３０は、図４に示した処理により、ＡＴコマンドをファイル単位入出力タスク１６１へと振り分ける。そして、ファイル単位入出力タスク１６１では、図８および図９に示した処理により、ｍｏｄｅｓｅｔに対応した処理（Ｓ４２５参照）を実行する。これにより、物理セクタ単位入出力タスク１４３では、Ｓ２７０〜２８５の処理が実行される。
【０１９１】
モードチェンジに成功したか否かは、Ｓ３６０の処理により、ＰＣ２へと伝送される。その結果、ＰＣ２は、モードの切り替えに成功したか否かの情報を取得することになる。
そこで、ＰＣ２は、モードの移行に成功したか否かを判断する（Ｓ７３０）。ここで、モードの移行に成功した場合は（Ｓ７３０：はい）、現在の複合機１のモードをＦＴＰモードと記憶して（Ｓ７３５）、Ｓ７４０の処理へと進む。
【０１９２】
なお、Ｓ７１５の処理において、ＦＴＰモードに切り替える設定ではないと判断した場合（Ｓ７１５：いいえ）、あるいは、Ｓ７２０の処理において、既にＦＴＰモードであった場合は（Ｓ７２０：はい）、モード切り替えの必要がない。したがって、この場合は、Ｓ７２５〜Ｓ７３５の処理をスキップして、Ｓ７４０の処理へと進む。
【０１９３】
また、Ｓ７３０の処理において、モードの移行に失敗した場合は（Ｓ７３０：はい）、移行失敗を一定時間表示して（Ｓ７３７）、Ｓ７４０の処理へと進む。
そして、Ｓ７４０の処理へと進んだら、現在の複合機１のモードに従いタスクトレイアイコンを決定し（Ｓ７４０）、ＦＴＰサーバースレッドの起動、およびＴＣＰ／ＩＰのＦＴＰサーバーポートのオープンを行い（Ｓ７４５）、図１２に示した処理を終了する。
【０１９４】
以上のようにして図１２に示した処理を終えると、ＰＣ２の表示部にあるタスクトレイ（ＯＳであるＷｉｎｄｏｗｓ（登録商標）が標準で備える情報通知領域）には、図１３（ａ）および同図（ｂ）に示すようなアイコンで、現在の複合機１のモードが表示される。
【０１９５】
また、このアイコンをポインティングデバイスでクリック操作すると、図１３（ｃ）に示すように、ポップアップウィンドウが表示される。ポップアップウィンドウ中には、モードの一覧とアプリケーションの終了を指示するための項目が表示される。ここで、これらのいずれかをポインティングデバイスでクリック操作すると、モード変更やアプリケーションの終了を、利用者がＦＴＰサーバーアプリケーション２８１に対して指令できる。
【０１９６】
なお、利用者がモード変更を指示した場合に、ＦＴＰサーバーアプリケーション２８１が実行する処理については、以下に引き続いて説明する。
［ＦＴＰサーバーアプリケーションによるＦＴＰモードへの切り替え処理］
次に、利用者がＦＴＰサーバーアプリケーション２８１に対して、ＦＴＰモードへの切り替えを指示した際に、ＦＴＰサーバーアプリケーション２８１によって実行される処理について、図１４に基づいて説明する。
【０１９７】
この処理を開始すると、ＰＣ２は、まず、現在の複合機１のモードがＦＴＰモードか否かを判断する（Ｓ８０５）。ここで、ＦＴＰモードであった場合は（Ｓ８０５：はい）、モードの切り替えを行う必要がないので、そのまま図１４に示した処理を終了する。
【０１９８】
一方、Ｓ８０５の処理で、ＦＴＰモードではなかった場合（Ｓ８０５：いいえ）、ＰＣ２は、ｍｏｄｅｓｅｔを実行する（Ｓ８１０）。具体的には、ＡＴコマンドにより、上述の＜１．モードチェンジ要求コマンド＞である「AT+BRFTP "modeset" "(要求するモード＝ＦＴＰモード)"<0dh><0ah>」を発行することにより、ｍｏｄｅｓｅｔコマンドの実行を複合機１に要求する。
【０１９９】
Ｓ８１０の処理を終えたら、ＰＣ２は、モードの移行に成功したか否かを判断する（Ｓ８１５）。ここで、モードの移行に成功した場合は（Ｓ８１５：はい）、現在の複合機１のモードをＦＴＰモードと記憶して（Ｓ８２０）、現在の複合機１のモードに従いタスクトレイアイコンを変更し（Ｓ８２５）、図１４に示した処理を終了する。
【０２００】
一方、Ｓ８１５の処理で、モードの移行に失敗したと判断された場合（Ｓ８１５：いいえ）、ＰＣ２は、移行失敗のダイヤログを表示して（Ｓ８３０）、図１４に示した処理を終了する。
【０２０１】
［ＦＴＰサーバーアプリケーションによるＵＳＢモードへの切り替え処理］
次に、利用者がＦＴＰサーバーアプリケーション２８１に対して、ＵＳＢモードへの切り替えを指示した際に、ＦＴＰサーバーアプリケーション２８１によって実行される処理について、図１５に基づいて説明する。
【０２０２】
この処理を開始すると、ＰＣ２は、まず、現在の複合機１のモードがＵＳＢモードか否かを判断する（Ｓ９０５）。ここで、ＵＳＢモードであった場合は（Ｓ９０５：はい）、モードの切り替えを行う必要がないので、そのまま図１５に示した処理を終了する。
【０２０３】
一方、Ｓ９０５の処理で、ＵＳＢモードではなかった場合（Ｓ９０５：いいえ）、現在ＦＴＰサーバー経由でファイル転送中か否かを判断する（Ｓ９１０）。ここで、ＦＴＰサーバー経由でファイル転送中であった場合（Ｓ９１０：はい）、ダイヤログを表示する（Ｓ９１５）。
【０２０４】
このダイヤログには、「現在ＦＴＰサーバー経由でファイル転送中です。モードを切り替えると転送がエラーで中断します。それでもモードを切り替えますか？」とのメッセージが表示され、このメッセージに対し、利用者は「はい」「いいえ」いずれかを選択することができる。
【０２０５】
利用者が「いいえ」を選択した場合（Ｓ９１５：いいえ）、そのまま図１５に示した処理を終了する。一方、利用者が「はい」を選択した場合（Ｓ９１５：はい）、Ｓ９２０の処理へと進む。また、Ｓ９１０の処理において、ＦＴＰサーバー経由でファイル転送中ではないと判断された場合は（Ｓ９１０：いいえ）、Ｓ９１５の処理はスキップされて、Ｓ９２０の処理へと進む。
【０２０６】
こうしてＳ９２０の処理へと進むと、ＰＣ２は、ｍｏｄｅｓｅｔを実行する（Ｓ９２０）。具体的には、ＡＴコマンドにより、上述の＜１．モードチェンジ要求コマンド＞である「AT+BRFTP "modeset" "(要求するモード＝ＵＳＢモード)"<0dh><0ah>」を発行することにより、ｍｏｄｅｓｅｔコマンドの実行を複合機１に要求する。
【０２０７】
Ｓ９２０の処理を終えたら、ＰＣ２は、モードの移行に成功したか否かを判断する（Ｓ９２５）。ここで、モードの移行に成功した場合は（Ｓ９２５：はい）、現在の複合機１のモードをＵＳＢモードと記憶して（Ｓ９３０）、現在の複合機１のモードに従いタスクトレイアイコンを変更し（Ｓ９３５）、図１５に示した処理を終了する。
【０２０８】
一方、Ｓ９２５の処理で、モードの移行に失敗したと判断された場合（Ｓ９２５：いいえ）、ＰＣ２は、移行失敗のダイヤログを表示して（Ｓ９４０）、図１５に示した処理を終了する。
【０２０９】
［第１実施形態の効果］
以上説明した通り、上記複合機１によれば、ＰＣ１側からの指令により、ＵＳＢモードとＦＴＰモードとを切り替えることができる。そして、ＵＳＢモードに切り替えた際には、複合機１が備える第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４を、ＰＣ２側からＵＳＢストレージデバイスとして認識、利用することができる。
【０２１０】
したがって、ＵＳＢストレージデバイス対応の各種アプリケーションで、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４にセットされたカード上のファイルにアクセスすることができる。
【０２１１】
また、ＦＴＰモードに切り替えた際には、複合機１対応の専用アプリケーション（例えば、ＦＴＰサーバーアプリケーション２８１）で、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４にセットされたカード上のファイルにアクセスすることができる。
【０２１２】
しかも、複合機１対応の専用アプリケーション（例えば、ＦＴＰサーバーアプリケーション２８１）は、複合機１側にあるファイルシステムタスク１６３経由でカード上のファイルにアクセスすることにより、ファイル単位でのアクセスを実行する。
【０２１３】
すなわち、ＦＴＰサーバーアプリケーション２８１は、ＰＣ２側のファイルシステム２３１経由で、カード上のファイルに対してアクセスするＵＳＢストレージデバイス対応の各種アプリケーションとは異なり、カード上のファイルに対し、物理セクタ単位でのアクセスを実行することがない。
【０２１４】
このようなＦＴＰサーバーアプリケーション２８１であれば、ファイルへのアクセス開始（ｆｏｐｅｎ）、アクセス終了（ｆｃｌｏｓｅ）については、複合機１側で管理できる。そのため、先に説明したメディアプリント機能１７１等と全く対等にファイルシステムタスク１６３経由でファイルアクセスを行うことができる。そして、ファイルアクセスが終了すれば、ファイルシステムタスク１６３はメモリスロット制御タスク１４５の使用権を直ちに解放することもできる。
【０２１５】
そのため、物理セクタ単位入出力タスク１４３を利用することになるＵＳＢストレージデバイスとは異なり、Ｓ２５０およびＳ２５５の処理によってメモリスロット制御タスク１４５の使用権解放に時間を要することが多くなるといった問題は無く、メモリスロット制御タスク１４５が無駄に占有される期間を少なくすることができる。
【０２１６】
したがって、ＰＣ２からのアクセス要求、および複合機内蔵のデータ処理手段（メディアプリント機能１７１やＦＴＰサーバータスク１７３）からのアクセス要求について、いずれか一方の処理が完了すれば直ちに他方の処理に移ることができ、どちらも迅速な処理が可能となる。
【０２１７】
また、上記のようなＰＣ２からのアクセス要求、および複合機内蔵のデータ処理手段からのアクセス要求が同時に発生するような状況下でも、それらの要求すべてが複合機内蔵のファイルシステムタスク１６３によって適切に管理・処理される。
【０２１８】
そのため、物理セクタ単位の入出力とファイルシステムタスク経由の入出力が同時に発生する場合とは異なり、複数のアクセス要求が同時に発生しても何ら問題はなく、各要求に対する処理については、ファイルシステムタスク１６３の管理下で見かけ上同時処理ないし並列処理することも可能となる。
【０２１９】
よって、上記のように、ＰＣ２からのアクセス要求、および複合機内蔵のデータ処理手段からのアクセス要求すべてをファイルシステムタスク１６３が管理するように構成されていれば、メディアプリント機能１７１やＦＴＰサーバータスク１７３が、ＰＣ２からのアクセス要求に起因して待たされてしまうことがなく、第１メモリスロット１５１、第２メモリスロット１５２、第３メモリスロット１５３、および第４メモリスロット１５４にセットされたカード上のファイルにアクセスできる可能性を高めることができる。
【０２２０】
さらに、上記のようなＵＳＢモード、ＦＴＰモードのいずれに切り替えられている場合でも、ＰＣ２が複合機１にアクセスする際には、単一のＵＳＢインターフェースを介してアクセスができる。
【０２２１】
したがって、ＵＳＢモード、ＦＴＰモードの各モードで利用するために、それぞれ専用の通信インターフェースを設ける必要はない。よって、その分だけ複合機１やＰＣ２において必要となる通信インターフェース用のハードウェアを削減し、ハードウェアの簡素化を図ることができる。
（２）第２実施形態
次に、第２実施形態について説明する。
【０２２２】
第２実施形態は、上記第１実施形態で例示したＦＴＰサーバーに代えて、ＦＴＰサーバー以外のサーバーアプリケーションを採用した場合の構成を例示するものである。
すなわち、上記実施形態では、ＰＣ２側にＦＴＰサーバーアプリケーション２８１を設けてＦＴＰサーバーとして機能させ、ＦＴＰクライアントからの要求に応じて複合機１側のファイルにアクセスする例を示したが、ファイルを伝送可能なプロトコルであれば、ＦＴＰ以外を採用してもよい。
【０２２３】
具体例を挙げれば、ＦＴＰサーバーの代わりに、ＨＴＴＰ（HyperText Transfer Protocol）サーバーとしたり、ＣＩＦＳ（Common Internet File System）サーバーとしてもよい。以下、ＣＩＦＳサーバーを採用した場合の例について説明する。
【０２２４】
ＣＩＦＳサーバーを採用する場合は、図１６に例示するように、ＰＣ２側には、ＦＴＰサーバーアプリケーション２８１に代えてＣＩＦＳサーバーアプリケーション２９１を設ける。そして、クライアントコンピュータ上にあるＣＩＦＳクライアント（例えば、エクスプローラ２９３）を利用して、ファイルシステム２９５、マイクロソフト（登録商標）ネットワーククライアント２９７等を介して、ＴＣＰ／ＩＰプロトコル２８３経由で、ＣＩＦＳサーバーアプリケーション２９１にアクセスする。
【０２２５】
ＣＩＦＳサーバーアプリケーション２９１には、ＦＴＰサーバーアプリケーション２８１と同等な「複合機１に対するファイルアクセス機能」を設け、ＣＩＦＳクライアントからの要求に応じて複合機１側のファイルにアクセス可能とする。このように構成すれば、上述の第１実施形態と同等の効果を期待することができる。
【０２２６】
また、第２実施形態として上述した例は、ＦＴＰサーバーの代わりにＣＩＦＳサーバーを採用する例であったが、必要があれば、ＦＴＰサーバー、ＣＩＦＳサーバーの双方を利用可能な構成としてもよい。この場合、上記第１実施形態で例示したＵＳＢモード、およびＦＴＰモードに加え、ＣＩＦＳモードが加わることになる。
【０２２７】
これらのモードは、上記実施形態の場合と同様、ＰＣ２の表示部にアイコン表示するとよい。具体的には、ＣＩＦＳモードになっている場合についても、図１７（ａ）に示すように、ＰＣ２の表示部に現在の複合機１のモードを表示するとよい。
【０２２８】
また、このアイコンをポインティングデバイスでクリック操作すると、図１７（ｂ）に示すように、ポップアップウィンドウが表示される点も、上記実施形態と同等に構成すればよい。また、その中で、モード変更やアプリケーションの終了を、利用者がクリック操作で指令できる点も、上記実施形態と同等に構成すればよい。
（３）変形例等
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【０２２９】
【０２３０】
【０２３１】
例えば、上記第１実施形態において、ＦＴＰサーバーアプリケーション２８１は、複合機１がＦＴＰモードのときにアクセス要求を発行し、複合機１がＵＳＢモードのときにはアクセス要求を発行しない構成としてあったが、これも他の構成を考え得る。
【０２３２】
例えば、ＦＴＰサーバーアプリケーション２８１がアクセス要求を発行し、複合機１がアクセスを拒否する応答を返す構成としてもよい。この場合、アクセスを拒否する応答の一例としては、メディアが入っていない旨の応答を返す、といったものを考えることができる。
【０２３３】
また、上記第１実施形態において、ＵＳＢストレージデバイス機能を有するＵＳＢ複合デバイスとして認識される複合機は、リムーバブルメディアを装着可能な複合機１であったが、本発明において、実際にリムーバブルメディアを装着可能な構成を有するか否かは、特に限定されない。
【０２３４】
具体的には、デバイスから脱着することができない内蔵フラッシュメモリを備えるデバイスであってもよく、内蔵フラッシュメモリが装着／脱着可能な構造となっているか否かは、本発明において任意である。
【０２３５】
さらに、上記第１実施形態においては、ＦＴＰクライアントであるＷＥＢブラウザ２８５と、ＦＴＰサーバーアプリケーション２８１が、同一のＰＣ２に搭載されている例を示したが、これらはＬＡＮ経由で通信可能な別のＰＣにそれぞれが搭載されていてもよい。
【０２３６】
すなわち、ＦＴＰクライアントであるＷＥＢブラウザ２８５を備えるクライアントコンピュータと、ＦＴＰサーバーアプリケーション２８１を備えるサーバーコンピュータは、ＴＣＰ／ＩＰによる論理的なデータ伝送路を介して通信可能なものであれば、物理的な実態が同一ＰＣなのか別ＰＣなのかについては問われない。これは、ＦＴＰに代えて、ＨＴＴＰやＣＩＦＳを採用した場合でも同じである。
【図面の簡単な説明】
【０２３７】
【図１】第１実施形態として例示したファイル伝送システム全体のブロック図。
【図２】複合機の内部構成を示すブロック図。
【図３】ＰＣの内部構成を示すブロック図
【図４】ＳＣＳＩコマンド解析タスクにおいて実行される処理のフローチャート。
【図５】物理セクタ単位入出力タスクで実行される処理（その１）のフローチャート。
【図６】物理セクタ単位入出力タスクで実行される処理（その２）のフローチャート。
【図７】メディアが入っていない時にＰＣが表示するダイヤログの説明図。
【図８】ファイル単位入出力タスクで実行される処理（その１）のフローチャート。
【図９】ファイル単位入出力タスクで実行される処理（その２）のフローチャート。
【図１０】複合機内部ファイルシステムタスクで実行される処理のフローチャート。
【図１１】複合機内部メディアプリント機能で実行される処理のフローチャート。
【図１２】ＦＴＰサーバーアプリケーションを起動したときに実行される処理のフローチャート。
【図１３】ＰＣに表示されるアイコンの説明図。
【図１４】ＦＴＰサーバーアプリケーションによるＦＴＰモードへの切り替え処理のフローチャート。
【図１５】ＦＴＰサーバーアプリケーションによるＵＳＢモードへの切り替え処理のフローチャート。
【図１６】第２実施形態として例示したＰＣの内部構成を示すブロック図。
【図１７】第２実施形態として例示したＰＣに表示されるアイコンの説明図。
【符号の説明】
【０２３８】
１・・・複合機、２・・・ＰＣ、３・・・ＵＳＢ−ＨＵＢ、４・・・他のＵＳＢデバイス、５・・・ＬＡＮ、６・・・ＰＣ、７・・・ＬＡＮ、８・・・ＰＣ、１０１・・・ＵＳＢプロトコルエンジン、１０２・・・共通制御回路、１０３・・・プリンタ系データ入出力回路、１０４・・・スキャナ系データ入出力回路、１０５・・・ＰＣ−ＦＡＸ系データ入出力回路、１０６・・・カードリーダ系データ入出力回路、１１１・・・プリンタ入出力タスク、１１３・・・印字制御タスク、１１５・・・プリンタハードウェア、１２１・・・スキャナ入出力タスク、１２３・・・スキャナ制御タスク、１２５・・・スキャナハードウェア、１３１・・・ＰＣ−ＦＡＸ入出力タスク、１３３・・・モデム制御タスク、１３５・・・モデムハードウェア、１４１・・・ＳＣＳＩコマンド解析タスク、１４３・・・物理セクタ単位入出力タスク、１４５・・・メモリスロット制御タスク、１５１・・・第１メモリスロット、１５２・・・第２メモリスロット、１５３・・・第３メモリスロット、１５４・・・第４メモリスロット、１６１・・・ファイル単位入出力タスク、１６３・・・ファイルシステムタスク、１７１・・・メディアプリント機能、１７３・・・ＦＴＰサーバータスク、１７３・・・サーバータスク、２０１・・・ＵＳＢプロトコルスタック、２０２・・・ＵＳＢ複合デバイスドライバ、２０３・・・ＵＳＢストレージドライバ、２１１・・・ＳＣＳＩコマンド処理部、２２１・・・リムーバブルディスクドライバ、２２３・・・プリントポートドライバ、２２５・・・スキャナドライバ、２２７・・・ＣＯＭポートドライバ、２３１，２９５・・・ファイルシステム、２６１・・・プリンタドライバ、２７１・・・印刷可能アプリケーション、２７３・・・スキャン可能アプリケーション、２７５・・・ＰＣ−ＦＡＸアプリケーション、２７７，２９３・・・エクスプローラ、２８１・・・ＦＴＰサーバーアプリケーション、２８３・・・ＴＣＰ／ＩＰプロトコル、２８５・・・ＷＥＢブラウザ、２８７・・・他のＵＳＢデバイスのドライバ、２９１・・・ＣＩＦＳサーバーアプリケーション、２９７・・・マイクロソフト（登録商標）ネットワーククライアント。
【図１】
0004470977.tif 000002
【図２】
0004470977.tif 000003
【図３】
0004470977.tif 000004
【図４】
0004470977.tif 000005
【図５】
0004470977.tif 000006
【図６】
0004470977.tif 000007
【図８】
0004470977.tif 000008
【図９】
0004470977.tif 000009
【図１０】
0004470977.tif 000010
【図１１】
0004470977.tif 000011
【図１２】
0004470977.tif 000012
【図１４】
0004470977.tif 000013
【図１５】
0004470977.tif 000014
【図１６】
0004470977.tif 000015
【図７】
0004470977.tif 000016
【図１３】
0004470977.tif 000017
【図１７】
0004470977.tif 000018