(57)【要約】【課題】  カードリーダーに装着されたメモリカードをアンマウント処理後、カードリーダーが静電気ノイズ等で瞬断すると、アンマウントしたはずのメモリカードが、再びマウントされてしまい、ユーザの意図しない処理が実行されてしまう。【解決手段】  メモリカードのアンマウント処理時にカードリーダーとメモリカードを特定する情報の組み合わせで状態を記憶しておいて、カードリーダーマウント時には記憶している状態と同じ状態になるように、マウント処理の実行／非実行を切り替える。【選択図】  図２
2011008401.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体を装着可能な周辺デバイスと接続するためのインターフェース手段と、
前記インターフェース手段に接続された周辺デバイスに装着された記憶媒体を使用停止状態にするための処理を実行する使用停止手段と、
周辺デバイスが前記インターフェース手段と接続されたことを検知する接続検知手段と、
前記接続検知手段が検知した周辺デバイスに前記使用停止手段によって使用停止状態とされた記憶媒体が装着されているか否かを判定する判定手段と、
前記判定手段が前記周辺デバイスに前記使用停止手段によって使用停止状態とされた記憶媒体が装着されていると判定したことに従って前記記憶媒体を使用停止状態とするよう前記使用停止手段を制御する制御手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記使用停止手段によって使用停止された記憶媒体を特定する情報と、当該記憶媒体が装着されている周辺デバイスを特定する情報とを記憶する記憶手段を更に備え、
前記検知手段が検知した周辺デバイスに装着されている記憶媒体が前記記憶手段に記憶されている情報によって特定される記憶媒体である場合、前記判定手段は前記接続検知手段が検知した周辺デバイスに前記使用停止手段によって使用停止状態とされた記憶媒体が装着されていると判定することを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記周辺デバイスに装着された記憶媒体を使用可能状態にするための処理を実行する使用可能化手段を更に備え、
前記制御手段は、前記接続検知手段が検知した周辺デバイスに装着された前記記憶媒体を前記使用可能化手段が使用可能な状態にしないよう制御することを特徴とする、請求項１または２に記載の情報処理装置。
【請求項４】
前記周辺デバイスに装着された記憶媒体を使用可能状態にするための処理を実行する使用可能化手段を更に備え、
前記制御手段は、前記接続検知手段が検知した周辺デバイスに装着された前記記憶媒体を前記使用可能化手段が使用可能な状態にした後、前記使用停止手段に使用停止状態にさせるよう制御することを特徴とする、請求項１または２に記載の情報処理装置。
【請求項５】
記憶媒体が前記周辺デバイスから取り外されたことを検知する取り外し検知手段を更に備え、
前記記憶手段は記憶媒体が前記周辺デバイスから取り外されたことを前記検知手段が検知したことに従って、前記記憶媒体を特定する情報と前記周辺デバイスを特定する情報とを削除することを特徴とする、請求項２に記載の情報処理装置。
【請求項６】
前記インターフェース手段は、プラグアンドプレイに対応したインターフェースであることを特徴とする、請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
周辺デバイスと接続するためのインターフェース手段と、
前記インターフェース手段に接続された周辺デバイスを使用停止状態にするための処理を実行する使用停止手段と、
周辺デバイスが前記インターフェース手段と接続されたことを検知する接続検知手段と、
前記接続検知手段が検知した周辺デバイスに前記使用停止手段によって使用停止状態とされ、前記インターフェース手段から取り外されているか否かを判定する判定手段と、
前記周辺デバイスが前記使用停止手段によって使用停止状態とされ、前記インターフェース手段から取り外されていないと前記判定手段が判定したことに従って、前記周辺デバイスを使用停止状態とするよう前記使用停止手段を制御する制御手段と、を備えることを特徴とする情報処理装置。
【請求項８】
記憶媒体を装着可能な周辺デバイスと接続するためのインターフェース手段を備える情報処理装置の制御方法であって、
前記インターフェース手段に接続された周辺デバイスに装着された記憶媒体を使用停止状態にするための処理を実行する使用停止工程と、
周辺デバイスが前記インターフェース手段と接続されたことを検知する接続検知工程と、
前記接続検知工程において検知された周辺デバイスに前記使用停止工程において使用停止状態とされた記憶媒体が装着されているか否かを判定する判定工程と、
前記使用停止工程において使用停止状態とされた記憶媒体が前記周辺デバイスに装着されていると前記判定工程において判定されたことに従って、前記記憶媒体を使用停止状態とするよう制御する制御工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項９】
周辺デバイスと接続するためのインターフェース手段を備える情報処理装置の制御方法であって、
前記インターフェース手段に接続された周辺デバイスを使用停止状態にするための処理を実行する使用停止工程と、
周辺デバイスが前記インターフェース手段と接続されたことを検知する接続検知工程と、
前記接続検知工程において検知された周辺デバイスが前記使用停止工程において使用停止状態とされ、前記インターフェース手段から取り外されているか否かを判定する判定工程と、
前記周辺デバイスが前記使用停止工程において使用停止状態とされ、前記インターフェース手段から取り外されていないと前記判定工程において判定されたことに従って、前記周辺デバイスを使用停止状態とするよう制御する制御工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項１０】
記憶媒体を装着可能な周辺デバイスと接続するためのインターフェース手段を備える情報処理装置の制御方法をコンピュータに実行させるためのコンピュータプログラムであって、
前記インターフェース手段に接続された周辺デバイスに装着された記憶媒体を使用停止状態にするための処理を実行する使用停止ステップと、
周辺デバイスが前記インターフェース手段と接続されたことを検知する接続検知ステップと、
前記接続検知ステップにおいて検知された周辺デバイスに前記使用停止ステップにおいて使用停止状態とされた記憶媒体が装着されているか否かを判定する判定ステップと、
前記使用停止ステップにおいて使用停止状態とされた記憶媒体が前記周辺デバイスに装着されていると前記判定ステップにおいて判定されたことに従って、前記記憶媒体を使用停止状態とするよう制御する制御ステップと、を備えることを特徴とするコンピュータプログラム。
【請求項１１】
周辺デバイスと接続するためのインターフェース手段を備える情報処理装置の制御方法をコンピュータに実行させるためのコンピュータプログラムであって、
前記インターフェース手段に接続された周辺デバイスを使用停止状態にするための処理を実行する使用停止ステップと、
周辺デバイスが前記インターフェース手段と接続されたことを検知する接続検知ステップと、
前記接続検知ステップにおいて検知された周辺デバイスが前記使用停止ステップにおいて使用停止状態とされ、前記インターフェース手段から取り外されているか否かを判定する判定ステップと、
前記周辺デバイスが前記使用停止ステップにおいて使用停止状態とされ、前記インターフェース手段から取り外されていないと前記判定ステップにおいて判定されたことに従って、前記周辺デバイスを使用停止状態とするよう制御する制御ステップと、を備えることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターフェースを介して周辺デバイスを接続可能な情報処理装置に関する。
【背景技術】
【０００２】
従来から、ホスト装置と周辺デバイスとの接続にＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェースで接続が用いられている。ホスト装置にＵＳＢインターフェースなどで接続された周辺デバイスに静電気などのノイズが発生すると、ホスト装置と周辺デバイスとの電気的な接続が一時的に切断されてしまうことがある。このような場合には、ホスト装置は周辺デバイスを継続して使用することはできなくなる。そのため、一旦、ホスト装置の電源を落として再起動するといった操作が必要となる。このような場合にホスト装置と周辺デバイスの間でデータを送受信する汎用インターフェースの回路を再起動させたり（特許文献１参照）ホスト装置のデバイス制御モジュールを再起動させる（特許文献２参照）ことで、復旧にかかる時間の短縮を図ることが行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１３１９５６号公報
【特許文献２】特開２００８−２７３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、周辺デバイスの一例であるメモリカードリーダライターに装着されたメモリカードに対してアンマウント（使用停止状態）処理を行った後、メモリカードリーダライターに静電気ノイズが発生した場を考える。この場合、アンマウント状態であったメモリカードリーダライターがユーザの意図と反して再度マウント（使用可能状態）してしまうという問題が発生する。このような場合、マウントされたメモリカードに対して情報処理装置システムからのアクセスが発生する。しかし、ユーザはメモリカードがマウントされたとは気づかずにシステムからアクセスされている最中のメモリカードを引き抜いてしまうと、メモリカード内のデータに不整合が発生したり、データが破壊されてしまうことがある。従来の技術ではこのようなケースについては考慮されていない。
【０００５】
本発明は上述した課題を鑑みてなされたものであり、アンマウントされたデバイスがユーザの意図によらずマウントされてしまうことを防止することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の情報処理装置は、記憶媒体を装着可能な周辺デバイスと接続するためのインターフェース手段と、前記インターフェース手段に接続された周辺デバイスに装着された記憶媒体を使用停止状態にするための処理を実行する使用停止手段と、周辺デバイスが前記インターフェース手段と接続されたことを検知する接続検知手段と、前記接続検知手段が検知した周辺デバイスに前記使用停止手段によって使用停止状態とされた記憶媒体が装着されているか否かを判定する判定手段と、前記判定手段が前記周辺デバイスに前記使用停止手段によって使用停止状態とされた記憶媒体が装着されていると判定したことに従って前記記憶媒体を使用停止状態とするよう前記使用停止手段を制御する制御手段と、を備えることを特徴とする。
【０００７】
また、本発明の情報処理装置は、周辺デバイスと接続するためのインターフェース手段と、前記インターフェース手段に接続された周辺デバイスを使用停止状態にするための処理を実行する使用停止手段と、周辺デバイスが前記インターフェース手段と接続されたことを検知する接続検知手段と、前記接続検知手段が検知した周辺デバイスに前記使用停止手段によって使用停止状態とされ、前記インターフェース手段から取り外されているか否かを判定する判定手段と、前記周辺デバイスが前記使用停止手段によって使用停止状態とされ、前記インターフェース手段から取り外されていないと前記判定手段が判定したことに従って、前記周辺デバイスを使用停止状態とするよう前記使用停止手段を制御する制御手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、使用停止状態とされたデバイスがユーザの意図によらず使用可能状態されてしまうことを防止することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置の一例であるデジタル複合機の構成の一例を示すブロック図である。
【図２】デジタル複合機のＣＰＵ１０２が実行するソフトウェア構成の一例を示すブロック図である。
【図３】デジタル複合機におけるアンマウント処理の一例を示すフローチャート
【図４】デジタル複合機におけるカードリーダーマウント処理の一例を示すフローチャートである。
【図５】デジタル複合機におけるカードリーダーマウント処理の他の一例を示すフローチャートである。
【図６】デジタル複合機の構成の他の一例を示すブロック図である。
【図７】デジタル複合機におけるカードリーダー切断時の処理の一例を示すフローチャートである。
【図８】デジタル複合機におけるカード引き抜き時の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１１】
〔第１の実施形態〕
図１は、第１の実施形態における情報処理装置の一例であるデジタル複合機の構成の一例を示すブロック図である。デジタル複合機１０は、コントローラユニット１００、マルチメディアカードリーダー１１０（以下、カードリーダー１１０とする）、スキャナエンジン１１２、プリンタエンジン１１３、操作部１２０を含んでいる。
【００１２】
コントローラユニット１００は、ＣＰＵ１０２を備え、ＣＰＵ１０２は、ＲＯＭ１０６に格納されているブートプログラムによりオペレーティングシステム（ＯＳ）を立ち上げる。そして、ＣＰＵ１０２はＯＳの管理の元でＨＤＤ（ハードディスクドライブ）１０５に格納されているアプリケーションプログラムを実行する。これによってデジタル複合機１０は各種処理を実行する。このＣＰＵ１０２の作業領域としてはＲＡＭ１０３が用いられる。ＲＡＭ１０３は、作業領域を提供するとともに、画像データを一時記憶するための画像メモリ領域を提供する。ＨＤＤ１０５は、上記アプリケーションプログラムや画像データを格納する。
【００１３】
システムバス１０７には、操作部インターフェース（Ｉ／Ｆ）１０１、ＣＰＵ１０２、ＲＡＭ１０３、ＵＳＢホストインターフェース（Ｉ／Ｆ）１０４、ＨＤＤ１０５、ＲＯＭ１０６、エンジンインターフェース（Ｉ／Ｆ）１１１接続される。
【００１４】
操作部Ｉ／Ｆ１０１は、操作部１２０とのインターフェースであり、操作部１２０に表示すべき画像データを操作部１２０に対して出力する。また、操作部インタフェース１０１は、操作部１２０においてユーザにより入力された情報をＣＰＵ１０２に送出する。操作部１２０は、液晶ディスプレイなどで構成される表示部と、タッチパネルシートやハードキーなどで構成される操作部から構成される。
【００１５】
ＵＳＢホストＩ／Ｆ１０４は、メモリカード１１４を接続可能なインターフェースを有するカードリーダー１１０とのインターフェースである。ＵＳＢホストＩ／Ｆ１０４は、コマンドをカードリーダー１１０に送信したり、カードリーダー１１０からの信号をＣＰＵ１０２に送出したりする。
【００１６】
カードリーダー１１０はＵＳＢホストＩ／Ｆ１０４に接続可能なＵＳＢデバイスの一例である。本実施形態のＵＳＢデバイスは情報処理装置に接続可能な周辺デバイスの一例である。ＵＳＢデバイスとしてはＵＳＢメモリ、ＵＳＢハードディスク（ＨＤＤ）、デジタルカメラ、オーディオプレーヤー、携帯電話、ＣＤ／ＤＶＤドライブ、ＩＣカードリーダなどでもよい。
【００１７】
カードリーダー１１０は小型の記憶媒体であるメモリカード１１４を挿入するためのスロットを複数備え、複数種類のメモリカードを装着可能である。また、複数のメモリカードを同時に接続することも可能である。メモリカードとしては例えばＳＤカード、スマートメディア、コンパクトフラッシュ（登録商標）、メモリースティック、マイクロドライブなどがあり、カードリーダー１１０はこれらに対して、データの読み出し、書き込みを行う。また、カードリーダー１１０がＵＳＢハブを備え、カードリーダー１１０に対して更にＵＳＢデバイスが接続できるようにしてもよい。例えばＵＳＢメモリをカードリーダー１１０に接続することも可能である。
【００１８】
また、第１の実施形態では、カードリーダー１１０がデジタル複合機１０の内部に設置されているものとする。ユーザはカードリーダー１１０に対してメモリカード１１４の抜き差しは可能であるが、ＵＳＢホストＩ／Ｆ１０４とカードリーダー１１０との間のＵＳＢケーブルによる接続をユーザが抜き差しすることはできないものとする。
【００１９】
図２は、第１の実施形態におけるデジタル複合機のソフトウェア構成の一例を示すブロック図である。図２の２００−２０３、２１０、２２０はそれぞれソフトウェアモジュールを示す。これらのソフトウェアはデジタル複合機１０のＨＤＤ１０５、あるいはＲＯＭ１０６に格納されており、ＲＡＭ１０３にロードされ、ＣＰＵ１０２によって実行される。図２に示すソフトウェアは、制御モジュール２００とＯＳ２１０とアプリケーション２２０から構成される。
【００２０】
制御モジュール２００は、制御部２０１、要求送受信部２０２、状態管理部２０３から構成される。制御部２０１は、ＯＳ２１０からの情報を受けたり、ＯＳに対して要求を出したりする。要求送受信部２０２は、アプリケーション２２０からの要求を受けて制御部２０１に処理を依頼したり、制御部の処理結果をアプリケーション２２０に通知したりする。状態管理部２０３は、カードリーダー１１０と、カードリーダー１１０に接続されているメモリカードの状態に関しての情報を管理する。
【００２１】
アプリケーション２２０は、例えば、カードリーダー１１０に接続されているメモリカードに記憶されているファイルのファイル名などの情報を操作部１２０に表示するためのプログラムである。また、アプリケーション２２０は、ユーザに指示されたファイルをメモリカードから読み出してデジタル複合機でプリントするためのプログラムである。
【００２２】
第１の実施形態では、カードリーダー１１０がデジタル複合機内に含まれ、通常はカードリーダー１１０とＵＳＢホストＩ／Ｆ１０４との物理的な接続を切断することはできない。このため、カードリーダー１１０とＵＳＢホストＩ／Ｆ１０４は、物理的に常時接続されている。しかし、カードリーダー１１０に外部から静電気などのノイズが入った場合に、ＵＳＢホストＩ／Ｆ１０４とカードリーダー１１０との間の電気的な接続が一時的に異常な状態になり、一時的にＯＳ２１０はカードリーダー１１０を認識できなくなる。これは、ＵＳＢホストＩ／Ｆ１０４とカードリーダー１１０との物理的な接続が瞬間的に切断され、再接続されることと等価な現象となる。
【００２３】
カードリーダー１１０にメモリカード１１４が装着されているとき、メモリカード１１４は、ソフトウェアから使用可能な状態（マウント状態）になっている。ユーザがメモリカード１１４の使用停止要求（アンマウント要求）を行った場合、使用停止処理を行って、メモリカード１１４をカードリーダー１１０から安全に取り外せる状態（アンマウント状態）に変更する。このとき、ユーザがメモリカード１１４をカードリーダー１１０から取り外そうとしたときに、メモリカード１１４からカードリーダー１１０に静電気ノイズが印加されることがある。このような場合、従来であれば、次のような問題が起きる。すなわち、静電気ノイズがカードリーダー１１０に印加されてカードリーダー１１０が瞬間的に切断され、そして再接続時に、ＯＳ２１０がカードリーダー１１０を使用できるようにする処理を実行する。そして、カードリーダー１１０に挿入されたままとなっているメモリカード１１４は、ＯＳによって使用可能状態（マウント状態）に変更される。そのため、ユーザがメモリカード１１４を取り外すために行った使用停止要求が、結果として受け付けられない、もしくは、受け付けても使用開始されてしまって、取り外せない状態になってしまう。つまり、ユーザがメモリカード１１４をアンマウントにする要求を行ったにも関わらず、メモリカード１１４はマウント状態に戻ってしまう。それに気づかずに、ユーザがメモリカード１１４をカードリーダー１１０から取り外すと、結果として使用可能状態での強制的な取り外しとして処理されてしまう。本実施形態では、このようにメモリカード１１４の使用停止要求を行った後に静電気ノイズによって瞬間的にＵＳＢホストＩ／Ｆ１０４とカードリーダー１１０間の接続が切断、再接続されてしまった場合の処理を説明する。
【００２４】
図３は、ユーザがメモリカード１１４の取り外し要求を行った場合にデジタル複合機１０のＣＰＵ１０２が実行する処理の一例を示すフローチャートである。
【００２５】
制御モジュール２００の要求送受信部２０２がアンマウント処理の要求を受け付けると、制御部２０１は、アンマウント処理を行うメモリカード１１４が装着されているカードリーダー１１０を特定する情報をカードリーダー１１０から取得する（ステップＳ３０１）。カードリーダー１１０を特定する情報とは、例えば、カードリーダー１１０のＶｅｎｄｏｒＩＤ、ＰｒｏｄｕｃｔＩＤ、ＳｅｒｉａｌＮｏ．などである。これらの情報は、カードリーダー１１０内に記憶されている情報である。
【００２６】
次にステップＳ３０２では、制御部２０１はアンマウント処理を行うメモリカード１１４を特定する情報をメモリカード１１４から取得する。メモリカード１１４を特定する情報は、例えば、メモリカード１１４のＳｅｒｉａｌＮｏ．、ＦＡＴ  ＶｏｌｕｍｅＳｅｒｉａｌＮｏ．、ＶｏｌｕｍｅＬａｂｅｌＮａｍｅ、などである。これらの情報はメモリカード１１４内に記憶されている。
【００２７】
次に、ステップＳ３０３では、制御部２０１がメモリカード１１４のアンマウント処理をＯＳ２１０に要求する。ＯＳ２１０はアンマウント処理要求を受けると、メモリカード１１４を使用可能状態（マウント状態）から使用停止状態（アンマウント状態）にするための処理を実行して、その処理結果を制御部２０１に通知する。
【００２８】
ステップＳ３０４では、制御部２０１がＯＳからのアンマウント処理要求の結果が成功であったのか失敗であったのかを判断する。成功であった場合は、ステップＳ３０５に進む。失敗であった場合は、アンマウント処理を行えないと判断する。そして、ステップＳ３０６へ進んで要求送受信部２０２からアプリケーション２２０に対してアンマウント処理失敗を通知して、本フローチャートを終了する。
【００２９】
ステップＳ３０５では、制御部２０１はアンマウント処理の成功したメモリカード１１４の情報としてステップＳ３０１で取得したカードリーダー１１０の情報とステップＳ３０２で取得したメモリカード１１４の情報とを、状態管理部２０３に依頼して管理テーブルに登録する。管理テーブルへの登録が完了したら、制御部２０１は要求送受信部２０２からアプリケーション２２０に対してアンマウント処理成功を通知して、処理終了となる。
【００３０】
次に、アンマウント後のメモリカード１１４が装着されたままのカードリーダー１１０が静電気ノイズによって瞬間的に切断された後の処理について説明する。
【００３１】
図４は、複合機においてメモリカード１１４をアンマウントした後にカードリーダー１１０に静電気が発生した場合にＣＰＵ１０２が実行する処理の一例を示すフローチャートである。図３のフローチャートを実行し、メモリカード１１４がアンマウントされ、かつカードリーダー１１０に装着された状態でカードリーダー１１０に静電気が印加されるとＵＳＢホストＩ／Ｆ１０４とカードリーダー１１０との電気的な接続が一時的に遮断され、再接続される。この状態から本フローチャートは処理を開始する。
【００３２】
ＯＳ２１０がカードリーダー１１０の接続を検知すると、制御モジュール２００の制御部２０１がＯＳ２１０からのカードリーダーの接続検知通知を受け付けて、処理が開始される。ステップＳ４０１において、ＯＳ２１０からの通知を受けた制御部２０１は接続されたカードリーダー１１０からカードリーダー１１０に関する情報を取得する。ここで取得する情報は、図３のステップＳ３０１で取得した情報と同じ情報である。
【００３３】
次にステップＳ４０２へ進み、制御部２０１は、ステップＳ４０１で取得したカードリーダー１１０に関する情報が状態管理部２０３で管理する管理テーブルに存在するかどうか、状態管理部２０３に検索要求を行う。管理テーブルには、図３のフローチャートのステップＳ３０５において、アンマウントしたメモリカード１１４の情報とカードリーダー１１０の情報が記憶されている。状態管理部２０３では、検索要求を受けたら、管理テーブルに要求されたカードリーダー１１０に関する情報が登録されているかどうか検索処理を行い、検索結果を制御部２０１に通知する。
【００３４】
ステップＳ４０３では、制御部２０１は、状態管理部２０３からの検索結果を受けて、検索結果が存在したかどうか判断を行う。制御部２０１は、接続されたカードリーダー１１０に関する情報が存在すると判断した場合には、状態管理部２０３から検索結果の情報を取得して、ステップＳ４０４に進む。検索結果が存在するということは、メモリカード１１４に対するアンマウント処理を行ったカードリーダー１１０が再接続されたということを意味する。本来取り外されることのないカードリーダー１１０が再接続されたということは、このカードリーダー１１０は、何らかの原因（例えば静電気などの原因）でＵＳＢホストＩ／Ｆ１０４との接続が切断されたとＯＳ２１０が検知したものである。一方、ステップＳ４０３において検索結果が存在しないと判断された場合には、制御部２０１は接続されたカードリーダー１１０に装着されたメモリカードのマウント処理要求をＯＳに対して行う。そして、制御部２０１は要求送受信部２０２からのマウント処理結果をアプリケーション２２０に通知して、処理終了となる。
【００３５】
ステップＳ４０４では、接続されたカードリーダー１１０にメモリカードが装着されているかどうかを判定する。カードリーダー１１０にメモリカードが接続されていれば、ＯＳ２１０が装着されたメモリカードを検知している。制御部２０１がＯＳ２１０に対してメモリカードを検知したか否かを問い合わせることによってステップＳ４０４を実行する。メモリカードが装着されている場合には、ステップＳ４０５へ進み、メモリカードが装着されていない場合にはステップＳ４０８へ進む。ステップＳ４０５において、制御部２０１はカードリーダー１１０に装着されているメモリカードの情報をメモリカードから取得する。ここで取得する情報は図３のステップＳ３０２で取得する情報と同じである。
【００３６】
そしてステップＳ４０６へ進み、制御部２０１は、ステップＳ４０３で取得した検索結果とステップＳ４０５で取得したメモリカード情報とを比較し、一致する情報があるか否かを判定する。一致する情報があるということは、図３のフローチャートの処理でアンマウント処理が済んでカードリーダー１１０に装着されたままのメモリカードが存在するということを意味している。ステップＳ４０６で一致する情報があると判断した場合には、ステップＳ４０７に進み、一致する情報が無ければステップＳ４０８へ進む。ステップＳ４０７では、ステップＳ４０６で一致したと判断されたメモリカード、即ちアンマウントされた状態であるべきメモリカードをマウント対象から除外するメモリカードとして、ＲＡＭ１０３上の一時記憶領域に記憶しておく。
【００３７】
ステップＳ４０８では、制御部２０１は状態管理部２０３に対して、ステップＳ４０２で検索したカードリーダー１１０の情報を管理テーブルから削除するように要求する。そして、状態管理部２０３は削除要求を受けたら管理テーブルから該当する情報の削除を行って制御部２０１に制御を戻す。削除を行ったらステップＳ４０９へ進む。ステップＳ４０９において制御部２０１は接続されたカードリーダー１１０に装着されたメモリカードに対して通常のマウント処理要求をＯＳ２１０に対して行い、要求送受信部２０２からマウント処理結果をアプリケーション２２０に通知する。このとき、制御部２０１は、ステップＳ４０７で一時記憶領域に記憶していたメモリカードに対してはマウント要求を行わないようＯＳ２１０へ要求する。そして本フローチャートを終了する。
【００３８】
以上、図４のフローチャートによれば、アンマウント処理されたメモリカードがカードリーダー１１０に装着された状態で再びカードリーダーが接続された場合、アンマウント処理が実行されていたメモリカードはマウントしないようにする。これにより、ユーザの意図しないマウント処理が行われてしまうことを防ぐことが可能となる。
【００３９】
次に、マウント処理が終了したメモリカードが引き抜かれた場合の処理について説明する。
【００４０】
図８は、第１の実施形態においてカードリーダー１１０からメモリカードが引き抜かれた場合にデジタル複合機１０のＣＰＵ１０２が実行する処理の一例を示すフローチャートである。
【００４１】
メモリカードの引き抜きが行われたことがＯＳ２１０から制御部２０１に通知されると、制御部２０１はステップＳ８０１で、メモリカードの引き抜きがあったカードリーダー１１０を特定する。そして、ステップＳ８０２では、ステップＳ８０１で特定したカードリーダー１１０に装着されて、現在マウントされているメモリカードの一覧情報を取得する。
【００４２】
ステップＳ８０３では、ＲＡＭ１０３上に記憶されているメモリカード一覧情報から、ステップＳ８０１で特定したカードリーダー１１０のメモリカード一覧情報を特定して、ステップＳ８０２の情報と比較する。ＲＡＭ１０３にはメモリカードが引き抜かれる前のメモリカード一覧情報が記憶されており、ステップＳ８０２で取得したメモリカード一覧情報と比較した結果から、引き抜かれたメモリカードの情報を特定することができる。特定したら、ステップＳ８０２で取得した情報で、ＲＡＭ上のメモリカード一覧情報を更新する。
【００４３】
ステップＳ８０４では、制御部２０１は、ステップＳ８０１で特定したカードリーダー１１０と、ステップＳ８０３で特定したメモリカードが、管理テーブルに情報が登録されているかどうか、状態管理部２０３に問い合わせる。管理テーブルには、メモリカードのアンマウントの処理が成功した場合にカードリーダーの情報とアンマウントされたメモリカードの情報が記憶される。状態管理部２０３は、管理テーブルに登録されている情報が存在するかどうかチェックし、チェック結果を制御部２０１に通知する。ステップＳ８０１で特定したカードリーダー１１０と、ステップＳ８０３で特定したメモリカードと同じ情報が管理テーブルに登録されているということは、そのメモリカード、即ち引き抜かれたメモリカードは正しくアンマウント処理されたメモリカードであることを示している。そうでない場合は引き抜かれたメモリカードは正しくアンマウントされていないメモリカードであるということを示している。
【００４４】
ステップＳ８０５ではステップＳ８０４でのチェックの結果、管理テーブルに情報が存在すると判定した場合には、ステップＳ８０６へ進み、その情報を管理テーブルから削除するように状態管理部２０３に要求する。状態管理部２０３は削除要求を受けたら、管理テーブルから要求を受けた情報の削除を行い、本フローチャートを終了する。また、ステップＳ８０５で管理テーブルに情報が存在しないと判断された場合には、本フローチャートを終了する。
【００４５】
正しくアンマウントしたメモリカードをユーザが再びカードリーダー１１０に装着したその瞬間に静電気が発生すると、図４のフローチャートを実行することになる。その際、管理テーブルに情報が存在すると、ステップＳ４０４〜４０７の処理を実行してしまい、本来マウント処理してよいはずのメモリカードのマウント処理を行うことができなくなってしまう。しかし、図８のフローチャートを実行すれば、正しくアンマウントされたメモリカードが引き抜かれた場合には、管理テーブルの情報が存在しない。よって、再びメモリカードをカードリーダー１１０に装着した瞬間に静電気が発生したとしても図４のフローチャートにおいてステップＳ４０３からすステップＳ４０９へ進み、メモリカードを正しくマウントすることができる。第１の実施形態形態では、カードリーダーとカードリーダーに接続されたメモリカードを例に説明したが、これに限らず、例えばＵＳＢメモリメディアのように記憶メディアが直接ＵＳＢホストＩ／Ｆ１０４に接続される場合にも適用可能である。この場合、ＵＳＢメモリメディアを特定する情報をＵＳＢメモリメディアから取得する。そして、アンマウント処理されたＵＳＢメモリメディアとＵＳＢホストＩ／Ｆ１０４間の電気的な接続が静電気ノイズなどによって切断されその後、ＵＳＢメモリメディアの接続が検知されたときにＵＳＢメモリメディアを特定する情報を取得する。接続されたＵＳＢメモリメディアがアンマウント処理されて取り外されていないＵＳＢメモリメディアである場合、マウント処理をしないように制御する。これにより、ユーザの意図しないマウント処理が行われてしまうことを防ぐことが可能となる。
【００４６】
〔第２の実施形態〕
第２の実施形態は、第１の実施形態と比べて、メモリカード１１４が装着されたままのカードリーダー１１０が静電気ノイズによって瞬間的に切断された後に実行される、カードリーダー１１０を使用できるようにするための処理の一部が異なる。第２の実施形態におけるデジタル複合機１０の構成やソフトウェア構成は図１、図２に示したものと同じである。第２の実施形態においても、カードリーダー１１０がデジタル複合機１０の内部に設置されているものとする。よって、ＵＳＢホストＩ／Ｆ１０４とカードリーダー１１０との間のＵＳＢケーブルによる接続をユーザが抜き差しすることはできないものとする。以下、第１の実施形態と異なる部分について説明を行う。
【００４７】
図５は、複合機においてメモリカード１１４をアンマウントした後にカードリーダー１１０に静電気が発生した場合にＣＰＵ１０２が実行する処理の他の一例を示すフローチャートである。
【００４８】
図３のフローチャートを実行し、メモリカード１１４がアンマウントされ、かつカードリーダー１１０に装着された状態でカードリーダー１１０に静電気が印加されるとＵＳＢホストＩ／Ｆ１０４とカードリーダー１１０との電気的な接続が一時的に遮断され、再接続される。この状態から本フローチャートは処理を開始する。
【００４９】
ＯＳ２１０がカードリーダー１１０の接続を検知すると、制御モジュール２００の制御部２０１がＯＳ２１０からのカードリーダーの接続検知通知を受け付けて、処理が開始される。ステップＳ５０１において、ＯＳ２１０からの接続検知通知を受けた制御部２０１は、カードリーダー１１０に装着されたメモリカードに対して通常のマウント処理要求をＯＳ２１０に対して行う。
【００５０】
ステップＳ５０２では、制御部２０１が、接続されたカードリーダー１１０からカードリーダー１１０の情報を取得する。ここで取得する情報は、図３のステップＳ３０１で取得した情報と同じ情報である。
【００５１】
そしてステップＳ５０３へ進み、制御部２０１は、ステップＳ５０２で取得した情報が、状態管理部２０３で管理する管理テーブルに存在するかどうか、状態管理部２０３に検索要求を行う。状態管理部２０３では、検索要求を受けたら、管理テーブルに要求されたカードリーダーに関する情報が登録されているかどうか検索処理を行い、検索結果を制御部２０１に通知する。
【００５２】
ステップＳ５０４では、制御部２０１は、状態管理部２０３からの検索結果を受けて、検索結果が存在するかどうか判断を行う。接続されたカードリーダーに関する情報が存在すると判断した場合には、状態管理部２０３から検索結果の情報を取得して、ステップＳ５０５に進む。ここで、検索結果がないと判断された場合には、制御部２０１は、要求送受信部２０２からマウント処理結果をアプリケーション２２０に通知して、処理終了となる。
【００５３】
ステップＳ５０５では、マウントしたメモリカードが存在するかどうかをチェックする。マウントしたメモリカードが存在する場合には、ステップＳ５０６に進み、存在しなければステップＳ５０９へ進む。ステップＳ５０６において、制御部２０１は、マウント処理されたメモリカードの情報をメモリカードから取得する。ここで、取得する情報は、図３のステップＳ３０２で取得する情報と同じである。
【００５４】
そしてステップＳ５０７において制御部２０１は、ステップＳ５０４で取得した検索結果と、ステップＳ５０６で取得したメモリカード情報で一致する情報があるかどうか確認する。ここで一致する情報があると判断された場合には、ステップＳ５０８にすすみ、一致する情報が無い場合にはステップＳ５０９へ進む。ステップＳ５０８では、制御部２０１は、ステップＳ５０７で一致したと判断されたメモリカード、即ちアンマウントされた状態であるべきであるにもかかわらずステップＳ５０１でマウントされてしまったメモリカードのアンマウント処理要求をＯＳ２１０に行う。そして、ＯＳ２１０は制御部２０１からの要求に従ってアンマウント処理を実行する。ＯＳ２１０からアンマウント処理結果の通知を受けたらステップＳ５０９へ進む。ステップＳ５０９では、制御部２０１は状態管理部２０３に対して、ステップＳ５０３で検索したカードリーダーの情報を管理テーブルから削除するように要求する。状態管理部２０３は削除要求を受けたら、管理テーブルから該当する情報の削除を行って制御部２０１に制御を戻す。そして本フローチャートを終了する。
【００５５】
以上、第２の実施形態によれば、静電気などの原因でアンマウントされているはずのメモリカードが再びマウント状態になった場合には、自動的にアンマウント処理を実行する。これにより、ユーザの意図に反してメモリカードがマウント状態になってしまうことを防ぐことが可能となる。第２の実施形態形態では、カードリーダーとカードリーダーに接続されたメモリカードを例に説明したが、これに限らず、例えばＵＳＢメモリメディアのように記憶メディアが直接ＵＳＢホストＩ／Ｆ１０４に接続される場合にも適用可能である。この場合、ＵＳＢメモリメディアを特定する情報をＵＳＢメモリメディアから取得する。そして、アンマウント処理されたＵＳＢメモリメディアとＵＳＢホストＩ／Ｆ１０４間の電気的な接続が静電気ノイズなどによって切断されその後、ＵＳＢメモリメディアの接続が検知されたときにＵＳＢメモリメディアを特定する情報を取得する。接続されたＵＳＢメモリメディアがアンマウント処理されて取り外されていないＵＳＢメモリメディアである場合、当該ＵＳＢメモリが一旦マウント処理された後、アンマウントするように制御する。これにより、ユーザの意図しないマウント処理が行われてしまうことを防ぐことが可能となる。
【００５６】
〔第３の実施形態〕
第３の実施形態は、第１の実施形態、第２の実施形態と異なり、複数のカードリーダーがデジタル複合機外に設置されている構成であるものとする。
【００５７】
図６は第３の実施形態におけるデジタル複合機及びカードリーダーの構成の一例を示す図である。図１と同一の構成については同じ符号を付し、その説明は省略する。図１と図６との違いは、カードリーダーが複数（１１０−１、１１０−２…１１０−Ｎ、これらを総称してカードリーダー１１０とする）存在し、これらカードリーダーがデジタル複合機外に設けられているという点である。したがって、図６の構成ではユーザがカードリーダー１１０をＵＳＢホストＩ／Ｆ１０４から取り外すことが可能になっている。なお、図６においてＵＳＢホストＩ／Ｆ１０４に接続されるデバイスはカードリーダー以外のＵＳＢデバイスであってもよい。なお、第３の実施形態におけるデジタル複合機１０のソフトウェア構成は図２に示したとおりである。
【００５８】
また、第３の実施形態ではカードリーダー１１０が切断されたときに行われる処理およびカードリーダー１１０が接続されたときの処理が第１、第２の実施形態と異なる。第１、第２の実施形態では、カードリーダー１１０が切断されたときの処理を説明していないが、何も処理を行っていないわけではない。前述のとおり、一般的な切断時の処理が行われるのみであるので説明を省略している。
【００５９】
また、第３の実施形態におけるカードリーダー１１０の接続処理では、第１、第２の実施形態でのそれぞれの処理時の最後に（ステップＳ４０９、ステップＳ５０９の後に）カードリーダー一覧情報の記憶処理が追加される。この処理は、マウントされているカードリーダー一覧の情報を取得して、カードリーダー一覧情報として、ＲＡＭ１０３上に記憶しておく処理である。
【００６０】
図７は、第３の実施形態においてデジタル複合機１０とカードリーダー１１０の一つが切断された場合におけるＣＰＵ１０２が実行する処理の一例を示すフローチャートである。カードリーダーの切断がＯＳ２１０から制御部２０１に通知されると、まず、ステップＳ７０１では、制御部２０１が現在接続されているカードリーダーの一覧をＯＳ２１０から取得する。
【００６１】
次にステップＳ７０２で、ステップＳ７０１で取得したカードリーダー一覧と、カードリーダー１１０の一つが切断される以前にＲＡＭ１０３上に記憶していたカードリーダー一覧情報とを比較する。そして、一覧情報の差分から今回切断されたカードリーダーがどのカードリーダーだったのかを特定する。このとき、ＲＡＭ１０３上のカードリーダー一覧情報は、ステップＳ７０１で取得したもので更新される。
【００６２】
ステップＳ７０３では、カードリーダー切断が発生した時刻を制御部２０１がＯＳ２１０から取得して記憶しておく。取得をしたら、一定時間待機した後、ステップＳ７０５で、ステップＳ７０３で取得した時刻から、設定時間以上経過したかどうか、チェックされる。ここで、待機時間や設定時間はユーザが設定できるようにしてもよいし、固定の値でもよい。静電気による瞬間的な切断時間よりも長い時間で、かつ、人が抜き差しを行うことができる時間よりも短い時間がのぞましい。
【００６３】
ステップＳ７０５で設定時間以上経過していないと判断されたときには、ステップＳ７０４に戻る。ステップＳ７０５で設定時間以上経過したと判断されたら、ステップＳ７０６へ進み、カードリーダーの再チェックを行う。具体的にはステップＳ７０１の処理と同様に接続されているカードリーダーの一覧を取得する。そして、ステップＳ７０２で特定したカードリーダーが接続されなおされているかどうかを制御部２０１がチェックする。ここで、再度接続されていると判断された場合には、静電気等のノイズによる瞬間的な切断であったと判断し、特に何も処理をせずに終了となる。再度接続されていなかった場合はユーザがカードリーダーの切断処理を行うことなくカードリーダーを取り外した場合が想定される。この場合にはステップＳ７０７へ進み、ステップＳ７０２で特定したカードリーダーに関する情報の削除要求を状態管理部２０３に行う。状態管理部２０３は、要求を受けるとそのカードリーダーに関する情報を管理テーブルから検索して削除し、制御部２０１に応答を返す。制御部２０１は、状態管理部２０３から応答を受信して本フローチャートを終了する。
【００６４】
本フローチャートによれば、切断から一定時間経過したカードリーダーに関する情報を管理テーブルから削除する。アンマウントされたメモリカードを装着したまま、ユーザが意図してカードリーダーを取り外し、もう一度接続した場合には、管理テーブルから情報が削除されているため、メモリカードが正しくマウント処理されるようになる。
【００６５】
以上、第３の実施形態によれば、静電気等のノイズによる瞬間的な切断ではないと判断した場合にはユーザが意図して再接続したものと判断し、カードリーダーの接続時にメモリカードのマウント処理を実行する。これにより、ユーザの意図したメモリカードのマウント状態とすることが可能となる。
【００６６】
〔他の実施形態〕
第１〜第３の実施形態では、デジタル複合機１０とカードリーダー１１０との間はＵＳＢインターフェースを介して接続されているものとして説明したが、他の種類のインターフェースを介して接続されるものでもよい。例えば、ＩＥＥＥ１３９４のようなインターフェースでもよいし、プラグアンドプレイに対応した他の種類のインターフェースでも構わない。その場合、図１や図６のＵＳＢホストＩ／Ｆ１０４が、他の種類のインターフェースに対応したものに置き換えればよい。
【００６７】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がコンピュータプログラムを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００６８】
１００  コントローラユニット
１０２  ＣＰＵ
１０４  ＵＳＢホストＩ／Ｆ
１１０  カードリーダー
２００  制御モジュール
２０１  制御部
２０３  状態管理部
２１０  ＯＳ
【図１】
2011008401.tif 000003
【図２】
2011008401.tif 000004
【図３】
2011008401.tif 000005
【図４】
2011008401.tif 000006
【図５】
2011008401.tif 000007
【図６】
2011008401.tif 000008
【図７】
2011008401.tif 000009
【図８】
2011008401.tif 000010