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