(57)【特許請求の範囲】
【請求項１】
メモリカードを装着可能なリーダライタ装置と接続するためのインターフェース手段と、
前記インターフェース手段と前記リーダライタ装置との接続状態を検知する検知手段と、
前記リーダライタ装置に装着されたメモリカードをアンマウント状態にするアンマウント手段と、
前記リーダライタ装置に装着されたメモリカードに対して識別情報を割り当て、割り当てた前記識別情報を管理するとともに、前記リーダライタ装置と前記インターフェース手段との接続が切断された場合に前記リーダライタ装置に装着されているメモリカードが前記アンマウント手段によりアンマウント状態にされていたか否かを示す情報を管理する管理手段と、を有し、
前記アンマウント手段によりアンマウント状態にされていないメモリカードが装着されたリーダライタ装置と前記インターフェース手段との接続が一時的に切断された場合、前記管理手段は前記検知手段により前記インターフェース手段との再接続が検知されたリーダライタ装置に装着されるメモリカードに対して、前記リーダライタ装置と前記インターフェース手段との接続が一時的に切断される前の識別情報と同じ識別情報を割り当てることを特徴とする情報処理装置。
【請求項２】
更に、前記インターフェース手段に接続される前記リーダライタ装置に関する情報を表示する表示手段と、
前記検知手段による検知結果を前記表示手段へ通知する通知手段と、を有し、
前記アンマウント手段によりアンマウント状態にされていないメモリカードが装着されたリーダライタ装置と前記インターフェース手段との接続が一時的に切断された場合、前記通知手段は前記検知手段により前記リーダライタ装置が前記インターフェース手段と再接続されたことを前記表示手段に通知しないことを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
更に、前記リーダライタ装置に装着されるメモリカードを表す情報として、前記識別情報を表示する表示手段を有することを特徴とする、請求項１に記載の情報処理装置。
【請求項４】
前記インターフェース手段との接続が切断されたリーダライタ装置が、特定のリーダライタ装置である場合、前記表示手段は前記表示手段に当該リーダライタに装着されたメモリカードに対してアクセスできなくなったことを示す旨の表示を行わないことを特徴とする、請求項３に記載の情報処理装置。
【請求項５】
前記リーダライタ装置は１つ以上のメモリカードスロットを有し、
前記管理手段は前記インターフェース手段に接続されるリーダライタ装置が有するメモリカードスロットに対してデバイス特定情報を割り当てて管理することを特徴とする、請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
メモリカードを装着可能なリーダライタ装置と接続するためのインターフェース手段と前記リーダライタ装置に装着されたメモリカードをアンマウント状態にするアンマウント手段とを有する情報処理装置の制御方法であって、
前記インターフェース手段と前記リーダライタ装置との接続状態を検知する検知工程と、
前記リーダライタ装置に装着されたメモリカードに対して識別情報を割り当て、割り当てた前記識別情報を管理するとともに、前記リーダライタ装置と前記インターフェース手段との接続が切断された場合に前記リーダライタ装置に装着されているメモリカードが前記アンマウント手段によりアンマウント状態にされていたか否かを示す情報を管理する管理工程と、を有し
前記アンマウント手段によりアンマウント状態にされていないメモリカードが装着されたリーダライタ装置と前記インターフェース手段との接続が一時的に切断された場合、前記管理工程は前記検知工程において前記インターフェース手段との再接続が検知されたリーダライタ装置に装着されるメモリカードに対して、前記リーダライタ装置と前記インターフェース手段との接続が一時的に切断される前の識別情報と同じ識別情報を割り当てることを特徴とする情報処理装置の制御方法。
【請求項７】
メモリカードを装着可能なリーダライタ装置と接続するためのインターフェース手段と前記リーダライタ装置に装着されたメモリカードをアンマウント状態にするアンマウント手段とを有する情報処理装置に制御方法を実行させるためのプログラムでであって、前記制御方法は、
前記インターフェース手段と前記リーダライタ装置との接続状態を検知する検知工程と、
前記リーダライタ装置に装着されたメモリカードに対して識別情報を割り当て、割り当てた前記識別情報を管理するとともに、前記リーダライタ装置と前記インターフェース手段との接続が切断された場合に前記リーダライタ装置に装着されているメモリカードが前記アンマウント手段によりアンマウント状態にされていたか否かを示す情報を管理する管理工程と、を有し
前記アンマウント手段によりアンマウント状態にされていないメモリカードが装着されたリーダライタ装置と前記インターフェース手段との接続が一時的に切断された場合、前記管理工程は前記検知工程において前記インターフェース手段との再接続が検知されたリーダライタ装置に装着されるメモリカードに対して、前記リーダライタ装置と前記インターフェース手段との接続が一時的に切断される前の識別情報と同じ識別情報を割り当てることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターフェースを介して外部デバイス（周辺デバイス）を接続可能な情報処理装置に関する。
【背景技術】
【０００２】
従来から、ホスト装置と外部デバイスとの接続にＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェースが用いられている。ホスト装置に外部デバイスが接続されると、ホスト装置はデバイスドライバ等を利用してＵＳＢインターフェースに外部デバイスが接続されたことを検知し、ホスト装置が外部デバイスをアクセス可能にするための処理を行う。また、操作者の操作により、外部デバイスとの接続を切断する指示を受け付けると、ホスト装置は外部デバイスを切断可能な状態にするための処理を行う。外部デバイスがホスト装置から物理的に切断された場合、ホスト装置はデバイスドライバ等を利用してＵＳＢインターフェースから外部デバイスが切断されたことを検知し、外部デバイスを切断した状態にするための処理を行う。
【０００３】
このようなシステムにおいて、例えば静電気が外部デバイスへ印加されるなどの操作者が意図しない事象により、ホスト装置と外部デバイスとの電気的な接続が一時的に切断される場合がある。この場合は一旦ホスト装置の電源を落として再起動する処理が必要となり、復旧に時間がかかるという問題がある。このような問題に対して、特許文献１ではホスト装置と外部デバイス装置間でデータを送受信する汎用インターフェースの回路を再起動させることが行われている。また、特許文献２では、ホスト装置のデバイス制御モジュールを再起動することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１３１９５６号公報
【特許文献２】特開２００８−２７３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の技術では、静電気などの原因でホスト装置などの情報処理装置と外部デバイスとの間の電気的な接続の一時的な切断が発生した場合、デバイス制御モジュールの再起動によって、外部デバイスを接続状態に復旧する。しかしこのような方法は、再起動後のホスト装置は切断直前の外部デバイスの接続状態を保持しない。従って、デバイス制御モジュールを再起動することでホスト装置と外部デバイスとが再び接続したとしても、必ずしも切断前の接続状態と同じ接続状態に復旧するとは限らない。ホスト装置が切断前の接続状態に基づいて外部デバイスへのアクセスを行おうとする場合、切断前後の接続状態の不一致により、外部デバイスにアクセスできないということがある。
【０００６】
本発明は上述の課題を鑑みてなされたものであり、情報処理装置とインターフェースで接続された外部デバイスが一時的に切断され再接続した場合においても、切断前の接続状態に基づいて外部デバイスにアクセスすることを可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は上記課題鑑みてなされたものであり、本発明の情報処理装置は、メモリカードを装着可能なリーダライタ装置と接続するためのインターフェース手段と、前記インターフェース手段と前記リーダライタ装置との接続状態を検知する検知手段と、前記リーダライタ装置に装着されたメモリカードをアンマウント状態にするアンマウント手段と、前記リーダライタ装置に装着されたメモリカードに対して識別情報を割り当て、割り当てた前記識別情報を管理するとともに、前記リーダライタ装置と前記インターフェース手段との接続が切断された場合に前記リーダライタ装置に装着されているメモリカードが前記アンマウント手段によりアンマウント状態にされていたか否かを示す情報を管理する管理手段と、を有し、前記アンマウント手段によりアンマウント状態にされていないメモリカードが装着されたリーダライタ装置と前記インターフェース手段との接続が一時的に切断された場合、前記管理手段は前記検知手段により前記インターフェース手段との再接続が検知されたリーダライタ装置に装着されるメモリカードに対して、前記リーダライタ装置と前記インターフェース手段との接続が一時的に切断される前の識別情報と同じ識別情報を割り当てることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、操作者の意図しないデバイスの切断が発生した場合であっても、操作者が切断、再接続を意識することなくデバイスを利用できる。これにより、情報処理装置の操作性を向上させることが可能になる。
【図面の簡単な説明】
【０００９】
【図１】デジタル複合機の構成の一例を示すブロック図である。
【図２】デジタル複合機のシステムソフトウェアの構成の一例を示すブロック図である。
【図３】デジタル複合機におけるＵＳＢデバイスを検知する処理の一例を説明するフローチャートである。
【図４】接続状態情報の一例を示す図である。
【図５】デジタル複合機におけるＵＳＢデバイスの切断処理の一例を説明するフローチャートである。
【図６】検知情報の一例を示す図である。
【図７】管理情報の一例を示す図である。
【図８】デジタル複合機におけるＵＳＢデバイスの接続処理の一例を説明するフローチャートである。
【図９】デジタル複合機における管理情報の更新処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１１】
図１は、情報処理装置の一例であるデジタル複合機の構成の一例を示すブロック図である。デジタル複合機１００内のコントローラユニット１０１において、ＣＰＵ１０２はシステム全体を制御する。ＲＡＭ１０３はＣＰＵ１０２が動作するためのシステムワークメモリである。ＲＯＭ１０４はブートＲＯＭであり、システムのブートプログラムが格納されている。ハードディスクドライブ（ＨＤＤ）１０５はシステムソフトウェアなどを格納する。
【００１２】
操作部インターフェース（Ｉ／Ｆ）１０６は操作部１０７とのインターフェース部であり、操作部１０７に表示する情報を操作部１０７に対して出力する。また、操作部Ｉ／Ｆ１０６は、操作部１０７から操作者が入力した情報をＣＰＵ１０２に伝える。操作部１０７は、液晶ディスプレイなどを有する表示部と、タッチパネルシートやハードキーなどを有する操作部から構成される。
【００１３】
ＵＳＢホストインターフェース（Ｉ／Ｆ）１０８はメモリカードリーダライタ１０９などのＵＳＢデバイスとのインターフェース部である。本実施形態では外部デバイス、或いは周辺デバイスとしてＵＳＢデバイス、例えばメモリカードリーダライタ１０９をその一例として説明するが、外部デバイスとしてはその他にＵＳＢメモリなどのデバイスであっても構わない。ＵＳＢホストＩ／Ｆ１０８は、操作部１０７から入力された情報、あるいはＨＤＤ１０５に蓄積された情報などを、メモリカードリーダライタ１０９に対して出力する。また、ＵＳＢホストＩ／Ｆ１０８は、メモリカードリーダライタ１０９から取得した情報を、ＣＰＵ１０２に伝える。１０２〜１０８の構成がシステムバス１１０に接続される。ＵＳＢホストＩ／Ｆ１０８とメモリカードリーダライタ１０９とは、ＵＳＢケーブルで接続されているものとする。また、ＵＳＢホストＩ／Ｆ１０８は、複数のＵＳＢコネクタを備えていてもよい。その場合、複数のＵＳＢコネクタのうち、特定のＵＳＢコネクタがメモリカードリーダライタ１０９と接続されるように管理されているものとする。
【００１４】
システムバス１１０には、更にエンジンインターフェース１１１が接続されており、エンジンインターフェース１１１はスキャナエンジン１１２とプリンタエンジン１１３が接続されている。
【００１５】
本実施形態において、メモリカードリーダライタ１０９はＵＳＢデバイスの一例である。ＵＳＢデバイスとしてはＵＳＢメモリ、ＵＳＢハードディスク（ＨＤＤ）、デジタルカメラ、オーディオプレーヤー、携帯電話、ＣＤ／ＤＶＤドライブ、ＩＣカードリーダなどでもよい。本実施形態のメモリカードリーダライタ１０９は小型の記憶媒体であるメモリカード１１４を挿入するためのスロットを複数備え、複数種類のメモリカードを接続することが可能である。また、複数のメモリカードを同時に接続することも可能である。メモリカードとしては例えばＳＤカード、スマートメディア、コンパクトフラッシュ（登録商標）、メモリースティック、マイクロドライブなどがあり、メモリカードリーダライタ１０９はこれらに対して、データの読み出し、書き込みを行う。
【００１６】
また、メモリカードリーダライタ１０９がＵＳＢハブを備え、メモリカードリーダライタに対して更にＵＳＢデバイスが接続できるようにしてもよい。
【００１７】
図２は、本実施形態のデジタル複合機のシステムソフトウェアの構成の一例を示すブロック図である。図２に示す各構成要素２００〜２０５のそれぞれはプログラムモジュールを表しており、これらのプログラムモジュールは、図１のＲＯＭ１０４、或いはＨＤＤ１０５に格納されており、ＣＰＵ１０２が実行する。
【００１８】
アプリケーション部２００は、操作部１０７を介してメモリカード１１４およびメモリカード１１４内のデータの参照、読み出し、書き込みを実行するためのユーザインターフェースを操作者に提供する。また、操作者による操作入力情報を受け取るとともに、制御部２０１にメモリカード１１４の状態の取得指示を行う。あるいは、アプリケーション部２００は、制御部２０１からメモリカード１１４の接続（装着）状態を示す情報を受け取る。制御部２０１は、アプリケーション部２００からのメモリカード１１４の状態取得指示を受け付け、メモリカードリーダライタ１０９に接続されたメモリカード１１４の接続状態を通知する。
【００１９】
制御部２０１は、状態通知部２０２、状態管理部２０３、状態検知部２０４を含む。状態通知部２０２は状態管理部２０３、および状態検知部２０４からメモリカードリーダライタ１０９に接続されたメモリカード１１４の接続状態を示す情報を受け取り、アプリケーション部２００に通知する。状態管理部２０３は状態検知部２０４が検知したメモリカードリーダライタ１０９に接続されたメモリカード１１４の接続状態を管理する。状態検知部２０４は、オペレーティングシステム２０５に対して、メモリカードリーダライタ１０９の接続状態を問い合わせ、接続状態を示す情報を取得してこれを検知結果として管理する。状態検知部２０４は、オペレーティングシステム２０５から取得した情報に基づいて、メモリカードリーダライタ１０９の接続検知、及び切断検知を行う。そして、状態検知部２０４はメモリカードリーダライタ１０９にメモリカード１１４が接続されているかどうかを検知し、その検知結果を状態通知部２０２と状態管理部２０３とに通知する。
【００２０】
本システムソフトウェアの処理により、メモリカードリーダライタ１０９にメモリカード１１４が接続されると、状態検知部２０４はメモリカード１１４の接続を検知し、状態管理部２０３がメモリカード１１４の接続情報をＲＡＭ１０３に記憶する。そして状態通知部２０２を経由してアプリケーション部２００に接続情報が通知される。その結果、操作部１０７にメモリカード１１４の情報を出力（表示）することができ、メモリカード１１４へのアクセスを受け付ける状態にする。また、メモリカード１１４が使用停止状態（アンマウント）にされると、状態検知部２０４はメモリカード１１４の切断を検知し、状態管理部２０３でメモリカード１１４の接続情報をＲＡＭ１０３から削除する。そして、状態通知部２０２を経由してアプリケーション部２００に切断情報が通知される。その結果、操作部１０７メモリカード１１４が切断されたことを出力（表示）するとともに、表示していたメモリカード１１４の情報を削除する。これによりで操作者が取り外されたメモリカード１１４へアクセスする操作をおこなうことができないようにする。また、操作者からの切断指示を操作部１０７を介して受け付けると、状態検知部２０４がメモリカードのアンマウント処理を行う。そして、その結果に応じて状態管理部２０３はメモリカードの接続情報をＲＡＭ１０３から削除する。そして状態通知部２０２を経由してアプリケーション部２００にアンマウント情報を通知する。その結果、メモリカードを切断可能な状態に処理したことを操作部１０７に出力するとともに、表示していたメモリカードの情報を削除することで操作者にアクセスできないようにする。
【００２１】
本実施形態ではさらに、メモリカードリーダライタ１０９とデジタル複合機１００が筐体内部で接続される構成を想定して説明を行う。つまり、本実施形態では、通常使用時において、デジタル複合機１００とメモリカードリーダライタ１０９との間の接続が物理的に切断されることはない。しかし、ユーザがメモリカードリーダライタ１０９に触れた場合などに発生する静電気によりＵＳＢホストＩ／Ｆ１０８とメモリカードリーダライタ間に電気信号にノイズが入ることがある。これにより、ＵＳＢホストＩ／Ｆ１０８とメモリカードリーダライタ間の電気的な接続が一時的に異常な状態になり、オペレーティングシステム２０５がメモリカードリーダライタを認識しなくなる。これは、ＵＳＢホストＩ／Ｆ１０８とメモリカードリーダライタ１０９との物理的な接続が瞬間的に切断され、再接続されることと等価な現象となる。これにより、状態検知部２０４が一時的にメモリカードリーダライタ１０９が切断されたことを検知する。そして制御部２０１はメモリカードリーダライタ１０９に接続されたメモリカードも使用停止（アンマウント）されたと検知する。以下、このような本来発生しないメモリカードリーダライタの一時的なアンマウントが発生した場合に切断前の状態に復旧する方法について説明する。さらに、再接続によってオペレーティングシステム２０５では新規の接続として接続情報が提供された場合でも、操作部１０７からは切断前の接続情報を使ってメモリカードにアクセスできるようにする。以下、その詳細を説明する。
【００２２】
図３は、デジタル複合機１００におけるＵＳＢデバイスの検知処理の一例を説明するフローチャートである。本フローチャートはＣＰＵ１０２が実行する。
【００２３】
まず、メモリカードリーダライタ１０９のようなＵＳＢデバイスがＵＳＢホストＩ／Ｆ１０８に接続される。そして、オペレーティングシステム２０５は、ＵＳＢデバイスが物理的に接続されたことを認識すると、必要なドライバをＨＤＤ１０５からの読み出し、ＵＳＢデバイスからデバイス情報を取得し、接続状態情報としてＲＡＭ１０３に記憶する。そして、ＵＳＢデバイスにアクセスするためのアクセスポイントをデバイスファイルとして割り当てる。デバイスファイルは、オペレーティングシステム２０５がＵＳＢデバイスを特定するために生成するデバイス特定情報の一例である。
【００２４】
図４は接続状態情報の一例を示す図である。デバイスファイル名４０１は、前述のデバイスファイルの名前である。ＵＳＢデバイスが複数のスロットを備えるメモリカードリーダライタ１０９の場合、各スロットに対してデバイスファイルが割り当てられる。よって、オペレーティングシステム２０５は、デバイスファイル名によってメモリカードのスロットを特定し、そしてスロットに挿入されたメモリカードを特定することができる。ＶｅｎｄｏｒＩＤ４０２は、ＵＳＢデバイスの製造ベンダーのＩＤ、ＰｒｏｄｕｃｔＩＤ４０３はＵＳＢデバイスの製品ＩＤである。シリアル番号４０４は、ＵＳＢデバイスの個体を特定することができるシリアル番号である。状態４０５は該デバイスの接続状態を示す情報であり、「接続」や「切断」（或いはそれに対応する識別子）などの情報が格納される。図４では、３つのスロットを持つメモリカードリーダライタが接続された場合を示しており、それぞれのスロットに対してデバイスファイルが割り当てられる。もちろん他のスロット数を持つメモリカードリーダライタがＵＳＢホストＩ／Ｆ１０８に接続された場合にはそのスロット数分のデバイスファイルが割り当てられる。
【００２５】
このような状態において図３のフローチャートは実行を開始する。まず、ステップＳ３０１において、状態検知部２０４は、オペレーティングシステム２０５から、ＵＳＢデバイスの接続状態情報を取得する。そして、ステップＳ３０２で制御部２０１は、取得したＵＳＢデバイスの接続状態情報を解析し、ＵＳＢデバイスが接続されたか否かを判定する。ＵＳＢデバイスが接続されたと判定した場合（ステップＳ３０２でＹＥＳ）、ステップＳ３０３へ進みＵＳＢデバイスの接続処理（後に詳述）を行い処理を終了する。一方、ＵＳＢデバイスが切断された（接続されていない）と判定した場合、ステップＳ３０４へ進みＵＳＢデバイスの切断処理（後に詳述）を行い処理を終了する。
【００２６】
図５は、デジタル複合機１００おけるＵＳＢデバイスの切断処理の一例を説明するフローチャートである。本フローチャートは図３のフローチャートのステップＳ３０４の処理の詳細を示すものである。
【００２７】
本実施形態のデジタル複合機１００は、ある特定のメモリカードリーダライタだけを使用可能であるものとする。そのために、特定のメモリカードリーダライタを示すＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報を特定外部デバイス情報（特定周辺デバイス情報）としてＨＤＤ１０５内の特定の領域（特定デバイス情報記憶領域）に記憶しているものとする。なお、特定外部デバイス情報としてＨＤＤ１０５に記憶されるＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤが複数あってもよい。
【００２８】
まず、ステップＳ５０１で、状態検知部２０４は、この特定外部デバイス情報として管理しているＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤと、ＲＡＭ１０３から取得した接続状態情報のＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤとを比較することで解析を行う。そして、ステップＳ５０２において、切断されたＵＳＢデバイスが特定外部デバイス情報によって特定されるメモリカードリーダライタであるか否かを判定し、特定のメモリカードリーダライタ１０９でない場合（ステップＳ５０２でＮＯ）は、処理を終了する。一方、特定のメモリカードリーダライタ１０９である場合（ステップＳ５０２でＹＥＳ）、ステップＳ５０３へ進む。ステップＳ５０３において状態検知部２０４は、切断されたメモリカードリーダライタの情報に基づいて、状態検知部２０４が管理するＲＡＭ１０３に記憶される検知情報を更新する。ここで検知情報について説明する。
【００２９】
図６は状態検知部における検知情報の一例を示す図である。検知情報が有する複数の項目のうち、デバイスファイル名６０１は、オペレーティングシステム２０５がメモリカードリーダライタ１０９が備えるスロットを特定するために割り当てた情報で、図４の接続状態情報と同等である。ＶｅｎｄｏｒＩＤ６０２はスロットにマウントされた（利用可能状態にされた）メモリカードの製造ベンダーのＩＤを示す。ＰｒｏｄｕｃｔＩＤ６０３はスロットにマウントされたメモリカードの製品ＩＤである。シリアル番号６０４は、スロットにマウントされたメモリカードの個体を特定することができるシリアル番号である。識別情報はメモリカードを識別するためのユニークなＩＤであり、メモリカードのマウントが成功した場合、状態検知部２０４が発行する。本実施形態では識別情報６０５の一例としてアルファベット１文字で表現するドライブレターとしているが、メモリカードを識別するための情報であればこれに限らない。状態６０６はメモリカードの接続状態を示す項目でありマウント（メモリカードがスロットに挿入、接続される）或いはアンマウント（メモリカードが取り外し、切断される）のいずれかで表現される。直前のデバイスファイル名６０７は、メモリカードリーダライタ１０９が切断された場合に記憶する、切断前のデバイスファイル名である。
【００３０】
６００Ａでは、メモリカードリーダライタ１０９が接続されている状態における検知情報の一例を示している。６００Ｂでは、メモリカードリーダライタが切断された場合の検知情報の一例を示している。検知情報６００Ｂでは、直前のデバイスファイル名６０７に、切断される前における各スロットのデバイスファイル名が記述されている。
【００３１】
６００Ｃでは、切断されたメモリカードリーダライタが再度接続した場合における検知情報の一例を示している。検知情報６００Ｃでは、直前のデバイスファイル名６０７に、切断される前における各スロットのデバイスファイル名が記述されている。そして、再接続することによってオペレーティングシステム２０５が新たに各スロットに対して割り当てたデバイスファイル名６０１が記述されている。ここで、同じスロットに対するデバイスファイル名６０１と、直前のデバイスファイル名６０７が異なっている点に留意されたい。
【００３２】
図５のフローチャートはＵＳＢデバイスとの接続が切断された場合の処理であるので、ステップＳ５０３の処理によって図６の検知情報は６００Ａから６００Ｂに更新される。
【００３３】
次いで、ステップＳ５０４でメモリカードリーダライタ１０９にマウント済みのメモリカードが存在していたか否かを判定する。具体的には、状態管理部２０３が管理する管理情報からメモリカードの管理情報を検索することにより行われる。ここで管理情報について説明する。
【００３４】
図７は状態管理部２０３が管理する管理情報の一例を示す図である。管理情報はメモリカードリーダライタに接続され、マウントされているメモリカードの情報を管理するテーブルであり、メモリカード毎に１レコードとしてＲＡＭ１０３に記憶される。管理情報は、デバイスファイル名７０１、ＶｅｎｄｏｒＩＤ７０２、ＰｒｏｄｕｃｔＩＤ７０３、シリアル番号７０４、識別情報７０５、一時切断フラグ７０６の項目を備える。デバイスファイル名７０１、ＶｅｎｄｏｒＩＤ７０２、ＰｒｏｄｕｃｔＩＤ７０３、シリアル番号７０４、識別情報７０５は、それぞれ、図６の検知情報におけるデバイスファイル名６０１、ＶｅｎｄｏｒＩＤ６０２、ＰｒｏｄｕｃｔＩＤ６０３、シリアル番号６０４、識別情報６０５と同じ情報である。一時切断フラグ７０６は、ＵＳＢホストＩ／Ｆ１０８とメモリカードリーダライタ１０９との間の接続が切断されたことによってメモリカードが使用停止（アンマウント）されたことを示すフラグである。メモリカードがアンマウントされた場合に一時切断フラグ７０６は「ＯＮ」になる。
【００３５】
７００Ａでは、２つのメモリカードがマウントされている場合の管理情報を示している。７００Ｂでは、ＵＳＢホストＩ／Ｆ１０８とメモリカードリーダライタ１０９との接続が切断した場合における管理情報を示している。７００Ｃでは、ＵＳＢホストＩ／Ｆ１０８とメモリカードリーダライタ１０９とが再接続した場合の管理情報を示している。管理情報の内容を更新する処理については後述する。
【００３６】
ステップＳ５０４での検索の結果、管理情報にレコードが存在しない、つまりメモリカードが接続されていなかった場合、処理を終了する。一方、管理情報にレコードが存在する、つまりメモリカードが接続されていた場合、ステップＳ５０５へ進む。
【００３７】
ステップＳ５０５では、状態管理部２０３により管理される管理情報の該メモリカードのレコードに一時切断状態であることを記録する。すなわち、管理情報７００Ａの各レコードの一時切断フラグ７０６を「ＯＮ」にし、管理情報７００Ｂに更新する。そしてステップＳ５０６においてスロットに挿入されているメモリカードのアンマウント処理を行い、処理を終了する。このとき、状態通知部２０２からアプリケーション部２００への切断通知は行わない。なぜなら、本来切断されることの無いＵＳＢホストＩ／Ｆ１０８とメモリカードリーダライタ１０９との接続が切断されたということは、静電気などの原因によって「切断」と判断されたものであり、すぐに再接続されるとみなすことができるからである。この処理により、操作者にとっては原因のわからない切断であるにもかかわらず、操作部１０７にメモリカードが切断されたことを示す旨の表示をしないので、ユーザが混乱してしまうことを防止できる。
【００３８】
図８は、制御部２０１におけるＵＳＢデバイスの接続処理の一例を説明するフローチャートである。本フローチャートは図３のフローチャートのステップＳ３０３の処理の詳細を示す。
【００３９】
オペレーティングシステム２０５は、ＵＳＢデバイスが物理的に接続されたことを認識すると、ＵＳＢデバイスからデバイス情報を取得し、接続状態情報としてＲＡＭ１０３に記憶する。そして、ＵＳＢデバイスにアクセスするためのアクセスポイントをデバイスファイルとして割り当てる。そして、ステップＳ８０１において状態検知部２０４は、ＲＡＭ１０３から取得した接続状態情報に基づいて、ＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤの情報を解析する（Ｓ８０１）。解析の結果、接続されたＵＳＢデバイスが前述した特定のメモリカードリーダライタ１０９であるか否かを判定し（ステップＳ８０２）、特定のメモリカードリーダライタ１０９でない場合は処理を終了する。特定のメモリカードリーダライタ１０９であると判定された場合、ステップＳ８０３へ進み、切断時に記憶されたメモリカードリーダライタと同一のものであるかを判定する。これはステップＳ５０３において更新された検知情報６００ＢのＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤと、接続されたメモリカードリーダライタのＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤが一致するかどうかで判定する。切断時に記憶されたメモリカードリーダライタ１０９と同一のものでない場合、処理を終了する。切断時に記憶されたメモリカードリーダライタ１０９とが同一である場合、ステップＳ８０４進み、接続されたメモリカードリーダライタ１０９にメモリカードが接続されているか否かを判定する。これは状態検知部が、検知情報６００Ｂで管理されるデバイスファイル名を使用してデバイスファイルにアクセスすることで確認する。メモリカードが接続されていない場合、処理を終了する。メモリカードが接続されている場合、ステップＳ８０５へ進み、検知情報で管理される状態６０６を参照して、メモリカードがマウント済みであるか否かを判定する。メモリカードがマウントされていると判定した場合、処理を終了する。メモリカードがマウントされていないと判定した場合、ステップＳ８０６へ進みメモリカードのマウント処理を行う。そして、ステップＳ８０７で管理情報の更新処理を行う。ステップＳ８０７の処理の詳細については後述する。
【００４０】
次いで、ステップＳ８０８において検知情報から直前のデバイスファイル名を削除し、処理を終了する。このとき、状態通知部２０２からアプリケーション部２００への接続通知は行わない。
【００４１】
この処理により、操作者にとっては原因のわからないＵＳＢデバイスの一時的な切断−再接続が発生した場合に、操作者に意識させることなく行い、かつ、切断前と同じ操作メモリカードにアクセスすることができる。
【００４２】
図９は、ＣＰＵ１０２により実行される、制御部２０１における管理情報の更新処理を説明するフローチャートである。本フローチャートは図８のフローチャートのステップＳ８０７の処理の詳細を示すものである。
【００４３】
ステップＳ９０１において、状態管理部２０３は管理情報（図７の７００Ｂ）の最初のレコードを取得する。そして、ステップＳ９０２において一時切断フラグが立っている（ＯＮになっている）か否かを判定する。一時切断フラグが立っている場合は、ステップＳ９０３へ進み、管理情報７００Ｂの当該レコードのデバイスファイル名と図５のステップＳ５０３において更新した検知情報６００Ｂの直前のデバイスファイル名が一致するか否かを判定する。デバイスファイル名が一致する場合は、ステップＳ９０４へ進み、管理情報７００Ｂのレコード上のデバイスファイル名を検知情報のデバイスファイル名に変更する。言い換えれば、再接続によって、オペレーティングシステム２０５がメモリカードスロットに新規に割り当てたデバイスファイル名に更新する。そして、当該レコードの一時切断フラグを、ＯＮからＯＦＦに更新する。これにより、管理情報は７００Ｂから７００Ｃに更新される。一方、一時切断フラグが立っていないと判断した場合（ステップＳ９０２でＮｏ）、あるいは、デバイスファイル名が一致しないと判断した場合（ステップＳ９０３でＮｏ）は、ステップＳ９０５へ進み、管理情報に次のレコードが存在するか否かを判定する。次のレコードが存在する場合、次のレコードを取得し（ステップＳ９０６）、ステップＳ９０２の処理に戻る。次のレコードが存在しない場合、処理を終了する。
【００４４】
図９のフローチャートの処理により、操作部１０７には管理情報内の識別情報（例えば、ドライブレター）がアクセス情報として表示される。そして静電気等の印加があっても、操作部１０７に表示されるメモリカードの識別情報（例えばドライブレター）は変更されない。そして、状態管理部では、操作者から指定された識別情報と関連付けされたデバイスファイルを再接続後によって変更されたデバイスファイルに更新するため、再接続後のメモリカードにアクセスできる。よって、ユーザは、静電気などの印加によってＵＳＢホストＩ／Ｆ１０８とメモリカードリーダライタ１０９との接続が一時的に切断されたとしても、切断前と同様の操作でメモリカードにアクセスすることが可能になる。
【００４５】
なお、本実施形態においては、ユーザがメモリカードにアクセスしていない状態において、メモリカードリーダライタ１０９が切断された場合において記述した。しかしメモリカードのアクセス中（例えばメモリ内のデータへの読み出し中や書き込み中）にメモリカードリーダライタ１０９の切断が発生した場合においても同様に、再接続処理を行うことも可能である。ただしアクセス中の操作が中断されるため、該メモリカードにアクセス中の場合に限り、アクセス中の操作が失敗したことを通知し、再度メモリ内のデータの読み出し、書き込みを実行させることを操作部１０７に出力する形態としてもよい。
【００４６】
以上、本実施形態によれば、静電気等の印加によるメモリカードリーダライタの一時的な切断が発生した場合でも、操作者に意図しない切断を意識させずにメモリへのアクセスを行わせることが可能となる。
【００４７】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（制御プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００４８】
１００  デジタル複合機
１０９  メモリカードリーダライタ
２０１  制御部
【図１】
0005566054.tif 000002
【図２】
0005566054.tif 000003
【図３】
0005566054.tif 000004
【図４】
0005566054.tif 000005
【図５】
0005566054.tif 000006
【図６】
0005566054.tif 000007
【図７】
0005566054.tif 000008
【図８】
0005566054.tif 000009
【図９】
0005566054.tif 000010