(57)【特許請求の範囲】
【請求項１】
外部記憶装置を装着できる装着手段と、
前記装着手段に装着された外部記憶装置のマウント及びアンマウントを行うオペレーティングシステムと、
前記装着手段に装着された外部記憶装置に記憶されているデータの読み出し、又は当該外部記憶装置へのデータの書き出しを行う複数のアプリケーションプログラムと、
前記複数のアプリケーションプログラムの各々から前記装着手段に装着された外部記憶装置のマウント又はアンマウントの要求を受け付け可能であり、受け付けた要求に応じて当該外部記憶装置のマウント又はアンマウントを前記オペレーティングシステムに指示する外部記憶装置監視手段と、
を備え、
前記外部記憶装置監視手段は、前記複数のアプリケーションプログラムのうち一のアプリケーションプログラムから前記装着手段に装着された外部記憶装置のアンマウントの要求を受け付けると、要求元のアプリケーション以外の他のアプリケーションから当該外部記憶装置のマウントの要求を受け付けているか否かを判断し、マウントの要求を受け付けていると判断したときには当該外部記憶装置のマウントを継続させ、マウントの要求を受け付けていないと判断したときには当該外部記憶装置のアンマウントを前記オペレーティングシステムに指示することを特徴とする情報処理装置。
【請求項２】
前記装着手段に対する外部記憶装置の着脱状態を検出する検出手段と、
前記検出手段により検出された外部記憶装置の着脱状態を、前記アプリケーションプログラムに通知する着脱状態通知手段と、
を更に備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記着脱状態通知手段は、前記検出手段により前記装着手段への外部記憶装置の装着が検出された場合に、当該外部記憶装置に関する情報を前記アプリケーションプログラムに通知することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記外部記憶装置監視手段は、前記複数のアプリケーションプログラムの何れかから、前記装着手段に装着された外部記憶装置のマウントの禁止が要求されると、当該外部記憶装置のマウントを抑制することを特徴とする請求項１〜３の何れか一項に記載の情報処理装置。
【請求項５】
前記外部記憶装置監視手段は、前記マウントの禁止を要求したアプリケーションプログラムからのみ、前記マウントの禁止を解除する要求を受け付けることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
外部記憶装置を装着できる装着手段と、前記装着手段に装着された外部記憶装置のマウント及びアンマウントを行うオペレーティングシステムと、前記装着手段に装着された外部記憶装置に記憶されているデータの読み出し、又は当該外部記憶装置へのデータの書き出しを行う複数のアプリケーションプログラムと、を備えた情報処理装置で実行される情報処理方法であって、
外部記憶装置監視手段が、前記複数のアプリケーションプログラムの各々から前記装着手段に装着された外部記憶装置のマウント又はアンマウントの要求を受け付け可能であり、受け付けた要求に応じて当該外部記憶装置のマウント又はアンマウントを前記オペレーティングシステムに指示する外部記憶装置監視工程を有し、
前記外部記憶装置監視工程では、前記複数のアプリケーションプログラムのうち一のアプリケーションプログラムから前記装着手段に装着された外部記憶装置のアンマウントの要求を受け付けると、要求元のアプリケーション以外の他のアプリケーションから当該外部記憶装置のマウントの要求を受け付けているか否かを判断し、マウントの要求を受け付けていると判断したときには当該外部記憶装置のマウントを継続させ、マウントの要求を受け付けていないと判断したときには当該外部記憶装置のアンマウントを前記オペレーティングシステムに指示することを特徴とする情報処理方法。
【請求項７】
検出手段が、前記装着手段に対する外部記憶装置の着脱状態を検出する検出工程と、
着脱状態通知手段が、前記検出工程で検出された外部記憶装置の着脱状態を、前記アプリケーションプログラムに通知する着脱状態通知工程と、
を更に含むことを特徴とする請求項６に記載の情報処理方法。
【請求項８】
前記着脱状態通知手段は、前記着脱状態通知工程において、前記検出工程で前記装着手段への外部記憶装置の装着が検出された場合に、当該外部記憶装置に関する情報を前記アプリケーションプログラムに通知することを特徴とする請求項７に記載の情報処理方法。
【請求項９】
前記外部記憶装置監視手段は、前記外部記憶装置監視工程において、前記複数のアプリケーションプログラムの何れかから、前記装着手段に装着された外部記憶装置のマウントの禁止が要求されると、当該外部記憶装置のマウントを抑制することを特徴とする請求項６〜８の何れか一項に記載の情報処理方法。
【請求項１０】
前記外部記憶装置監視手段は、前記外部記憶装置監視工程において、前記マウントの禁止を要求したアプリケーションプログラムからのみ、前記マウントの禁止を解除する要求を受け付けることを特徴とする請求項９に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、着脱自在に設けられた外部記憶装置のマウント／アンマウントを行う情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、ＵＳＢフラッシュメモリやＳＤメモリカード（登録商標）のような外部記憶装置の使用が一般的に普及している。これらの外部記憶装置を用いて、例えばデジタルカメラで撮影した画像データをＰＣ上で確認・加工したり等といったように、データを様々な機器間で持ち運ぶことが行われている。複合機(スキャナ・プリンタ等の複数の機能を有する画像形成装置)においてもこれらの着脱自在な外部記憶装置使用のニーズが高まっている。例えば、スキャンした画像データを外部記憶装置に保存する、外部記憶装置に保存されている画像データをプリントするといった用途が考えられる。
【０００３】
一方、ＵＮＩＸ（登録商標）等のＯＳを備えたシステムにおいては、一般的にこれらの外部記憶装置を使用するためには、明示的ないし暗示的なマウント／アンマウント操作が必要である。ここで「マウント」とは、システム上で外部記憶装置内部を参照できるようにするために必要なリソースを割り当てる動作である。外部記憶装置のマウントに関しては、種々の技術が提案されている。例えば、特許文献１には、外部記憶装置が挿入されたことが特定のアプリケーションに通知されると、このアプリケーションがマウント処理を行う技術が開示されている。また、特許文献２には、挿抜可能な外部記憶装置が挿入されると、自動でマウントする技術が開示されている。
【０００４】
また、「アンマウント」とは、マウントにて割り当てたリソースを解放するとともに、外部記憶装置内のデータを一貫性のある状態とする作業である。アンマウントが必要な理由としては、ＯＳ上で外部記憶装置へのアクセスを高速化する目的でシステム内部(例えば主メモリ上など)にデータをキャッシュさせておくようになっているためである。これにより実際の外部記憶装置へのアクセスを減らすことで動作の高速化が計られている。また、近年では突然の電源断などでもデータの破損を最小限におさえるためにジャーナルという技術が用いられており、ジャーナルの書き戻し等も行われる。このような理由により、外部記憶装置のアンマウントを行わなかった場合には、システム上で外部記憶装置に書き込みを行ったデータが実際には外部記憶装置上に記録されていない可能性がある。また、外部記憶装置への書き込みが行われている最中に、外部記憶装置の抜き取りが行われると、内部のデータに不整合が発生する可能性がある。
【０００５】
このような背景の下、Ｗｉｎｄｏｗｓ（登録商標）のようなＰＣシステムでは、システムが外部記憶装置の接続を検知すると自動でマウントを行い、アンマウント時には、ＧＵＩ等を表示することでユーザに対して外部記憶装置のアンマウントを明示的に指示させるような方式を採用している。
【０００６】
【特許文献１】特開２００５−１７４２４１号公報
【特許文献２】特開２００４−４６８０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、複合機のような非ＰＣシステムにおいては、ユーザに対して明示的に外部記憶装置のアンマウント指示を行わせるような方式は望ましくなく、また不意に電源を落とされるようなことも考えられる。このような場合、システム中にキャッシュされているデータが実際には外部記憶装置には書き込まれず、外部記憶装置中のデータが破損してしまう可能性がある。また、複合機においては、例えばスキャナ・プリンタといった各アプリケーションがそれぞれ独立して動作しているため、各アプリケーションはお互いを意識せずに外部記憶装置を使用できるような方式が望まれている。
【０００８】
本発明は、上記に鑑みてなされたものであって、ユーザからの明示的なアンマウント指示を必要とせず、各アプリケーションが独立的に外部記憶装置のマウント／アンマウントを行うことが可能な情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、外部記憶装置を装着できる装着手段と、前記装着手段に装着された外部記憶装置のマウント及びアンマウントを行うオペレーティングシステムと、前記装着手段に装着された外部記憶装置に記憶されているデータの読み出し、又は当該外部記憶装置へのデータの書き出しを行う複数のアプリケーションプログラムと、前記複数のアプリケーションプログラムの各々から前記装着手段に装着された外部記憶装置のマウント又はアンマウントの要求を受け付け可能であり、受け付けた要求に応じて当該外部記憶装置のマウント又はアンマウントを前記オペレーティングシステムに指示する外部記憶装置監視手段と、を備え、前記外部記憶装置監視手段は、前記複数のアプリケーションプログラムのうち一のアプリケーションプログラムから前記装着手段に装着された外部記憶装置のアンマウントの要求を受け付けると、要求元のアプリケーション以外の他のアプリケーションから当該外部記憶装置のマウントの要求を受け付けているか否かを判断し、マウントの要求を受け付けていると判断したときには当該外部記憶装置のマウントを継続させ、マウントの要求を受け付けていないと判断したときには当該外部記憶装置のアンマウントを前記オペレーティングシステムに指示することを特徴とする。
【００１１】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記装着手段に対する外部記憶装置の着脱状態を検出する検出手段と、前記検出手段により検出された外部記憶装置の着脱状態を、前記アプリケーションプログラムに通知する着脱状態通知手段と、を更に備えたことを特徴とする。
【００１２】
また、請求項３にかかる発明は、請求項２にかかる発明において、前記着脱状態通知手段は、前記検出手段により前記装着手段への外部記憶装置の装着が検出された場合に、当該外部記憶装置に関する情報を前記アプリケーションプログラムに通知することを特徴とする。
【００１３】
また、請求項４にかかる発明は、請求項１〜３の何れか一項にかかる発明において、前記外部記憶装置監視手段は、前記複数のアプリケーションプログラムの何れかから、前記装着手段に装着された外部記憶装置のマウントの禁止が要求されると、当該外部記憶装置のマウントを抑制することを特徴とする。
【００１４】
また、請求項５にかかる発明は、請求項４にかかる発明において、前記外部記憶装置監視手段は、前記マウントの禁止を要求したアプリケーションプログラムからのみ、前記マウントの禁止を解除する要求を受け付けることを特徴とする。
【００１５】
また、請求項６にかかる発明は、外部記憶装置を装着できる装着手段と、前記装着手段に装着された外部記憶装置のマウント及びアンマウントを行うオペレーティングシステムと、前記装着手段に装着された外部記憶装置に記憶されているデータの読み出し、又は当該外部記憶装置へのデータの書き出しを行う複数のアプリケーションプログラムと、を備えた情報処理装置で実行される情報処理方法であって、外部記憶装置監視手段が、前記複数のアプリケーションプログラムの各々から前記装着手段に装着された外部記憶装置のマウント又はアンマウントの要求を受け付け可能であり、受け付けた要求に応じて当該外部記憶装置のマウント又はアンマウントを前記オペレーティングシステムに指示する外部記憶装置監視工程を有し、前記外部記憶装置監視工程では、前記複数のアプリケーションプログラムのうち一のアプリケーションプログラムから前記装着手段に装着された外部記憶装置のアンマウントの要求を受け付けると、要求元のアプリケーション以外の他のアプリケーションから当該外部記憶装置のマウントの要求を受け付けているか否かを判断し、マウントの要求を受け付けていると判断したときには当該外部記憶装置のマウントを継続させ、マウントの要求を受け付けていないと判断したときには当該外部記憶装置のアンマウントを前記オペレーティングシステムに指示することを特徴とする。
【００１７】
また、請求項７にかかる発明は、請求項６にかかる発明において、検出手段が、前記装着手段に対する外部記憶装置の着脱状態を検出する検出工程と、着脱状態通知手段が、前記検出工程で検出された外部記憶装置の着脱状態を、前記アプリケーションプログラムに通知する着脱状態通知工程と、を更に含むことを特徴とする。
【００１８】
また、請求項８にかかる発明は、請求項７にかかる発明において、前記着脱状態通知手段は、前記着脱状態通知工程において、前記検出工程で前記装着手段への外部記憶装置の装着が検出された場合に、当該外部記憶装置に関する情報を前記アプリケーションプログラムに通知することを特徴とする。
【００１９】
また、請求項９にかかる発明は、請求項６〜８の何れか一項にかかる発明において、前記外部記憶装置監視手段は、前記外部記憶装置監視工程において、前記複数のアプリケーションプログラムの何れかから、前記装着手段に装着された外部記憶装置のマウントの禁止が要求されると、当該外部記憶装置のマウントを抑制することを特徴とする。
【００２０】
また、請求項１０にかかる発明は、請求項９にかかる発明において、前記外部記憶装置監視手段は、前記外部記憶装置監視工程において、前記マウントの禁止を要求したアプリケーションプログラムからのみ、前記マウントの禁止を解除する要求を受け付けることを特徴とする。
【発明の効果】
【００２１】
請求項１、６にかかる発明によれば、外部記憶装置監視手段が、各アプリケーションプログラムからのマウント／アンマウント要求に応じて、外部記憶装置のマウント／アンマウントを一括して制御するため、ユーザからの明示的なアンマウント指示を必要とすることなく、外部記憶装置のアンマウントをアプリケーションプログラム単位で行うことができる。また、各アプリケーションプログラムは、他のアプリケーションプログラムを意識することなく外部記憶装置のマウント／アンマウントを独立して行うことができる。
【００２２】
また、請求項１、６にかかる発明によれば、一のアプリケーションプログラムからマウントが要求されている間、他のアプリケーションプログラムからのアンマウントの要求を排除することができるため、外部記憶装置へのアクセス途中にアンマウントが行われてしまうことを防止することができる。
【００２３】
また、請求項２、７にかかる発明によれば、外部記憶装置の着脱状態の確認を各アプリケーションプログラムが個別に行う必要がなくなるため、各アプリケーションプログラムの処理を簡略化することができる。
【００２４】
また、請求項３、８にかかる発明によれば、外部記憶装置に関する情報の取得を各アプリケーションプログラムが個別に行う必要がなくなるため、各アプリケーションプログラムの処理を簡略化することができる。
【００２５】
また、請求項４、５、９、１０にかかる発明によれば、任意のアプリケーションプログラムからのマウント禁止の要求に応じて、当該アプリケーションプログラムによる外部記憶装置の排他的な使用を可能とするため、例えば、外部記憶装置のフォーマット等の排他的な処理を確実に行うことができる。
【発明を実施するための最良の形態】
【００２６】
以下に添付図面を参照して、この発明にかかる情報処理装置及び情報処理方法の最良な実施の形態を詳細に説明する。なお、以下では本発明にかかる情報処理装置及び情報処理方法をプリンタ機能、画像読取り（スキャナ）機能等を複合した所謂複合機に適用した例を示すが、これに限定されるものではなく、ＰＣや単体としての複写機やプリンタ等の情報処理装置等にも適用することが可能である。
【００２７】
［第１の実施形態］
図１は、第１の実施形態にかかる複合機１００のハードウェア構成を示したブロック図である。同図に示したように、複合機１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１２と、システムメモリ１３と、記憶部１４と、操作表示部１５と、エンジン部１６と、スキャナ部１７と、インタフェース部１８とを備えている。
【００２８】
ＣＰＵ１１は、システムメモリ１３（ＲＡＭ１３２）の所定領域を作業領域として、後述するＲＯＭ１３１又は記憶部１４に予め記憶された各種制御プログラムとの協働により各種処理を実行し、複合機１００全体の動作を統括的に制御する。
【００２９】
ＡＳＩＣ１２は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、ＣＰＵ１１と各部を夫々接続するブリッジとしての機能を有する。
【００３０】
システムメモリ１３は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリ等として用いるシステムメモリであり、ＲＯＭ１３１、ＲＡＭ１３２等から構成される。ここで、ＲＯＭ１３１は、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１３２は、プログラムやデータの展開用メモリ、プリンタの描画用メモリ等として用いる書き込み及び読み出し可能な揮発性のメモリである。なお、ＲＡＭ１３２には、後述する外部記憶装置（ＳＤカードメモリ、ＵＳＢフラッシュメモリ）へのアクセス時において、アクセスを高速化する目的のため当該外部記憶装置にかかるデータのキャッシュが行われる。
【００３１】
記憶部１４は、磁気的又は光学的に記録可能な記憶媒体を有し、複合機１００の制御にかかるプログラムや各種設定情報等を書き換え可能に記憶する。また、記憶部１４は、スキャナ部１７やインタフェース部１８を介して入力される画像データ等を記憶する。
【００３２】
操作表示部１５は、複合機１００とユーザとのインタフェースを行う部分であって、ＬＣＤ（液晶表示装置）等の表示デバイスと、キースイッチ等の入力デバイスとから構成される。操作表示部１５は、ＣＰＵ１１の制御の下、装置の各種状態や操作方法をＬＣＤに表示するとともに、ユーザからのタッチパネルやキースイッチ群を介した入力を検出し、ＣＰＵ１１に出力する。
【００３３】
エンジン部１６は、プリンタエンジンなどであり、例えば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部１６には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
【００３４】
スキャナ部１７は、ＣＣＤ光電変換素子からなるラインセンサとＡ／Ｄコンバータとそれらの駆動回路等を具備し、セットされた原稿をスキャンすることで得る原稿の濃淡情報から、ＲＧＢ各８ビットのデジタル画像データを生成し、ＣＰＵ１１に出力する。
【００３５】
インタフェース部１８は、複合機１００と外部装置とを着脱可能に接続するためのインタフェースである。具体的に、インタフェース部１８は、外部記憶装置であるＳＤカードメモリ（登録商標）が挿入されるＳＤメモリカードスロット１８１と、同じく外部記憶装置であるＵＳＢフラッシュメモリが挿入されるＵＳＢインタフェース１８２とを備える。以下、ＳＤカードメモリ及びＵＳＢフラッシュメモリを総称して「外部記憶装置」とよぶ。
【００３６】
なお、本実施形態では、インタフェース部１８は、ＳＤカードメモリ、ＵＳＢフラッシュメモリと接続するためのインタフェースを備えることとしたが、これに限定するものではない。例えば、コンパクトフラッシュ（登録商標）カード等のメモリデバイスや、ＩＥＥＥ１３９４規格に準拠したデバイスと接続するためのインタフェースを備えることとしてもよい。
【００３７】
次に、図２を参照して、上述したＣＰＵ１１とＲＯＭ１３１又は記憶部１４に記憶されたプログラムとの協働により実現される各機能部について説明する。図２は、複合機１００の機能的構成（ソフトウェア構成）を示したブロック図である。
【００３８】
図２に示したように、複合機１００は、オペレーティングシステム２１と、外部記憶装置監視モジュール２２と、アプリケーション２３とを備えている。
【００３９】
オペレーティングシステム２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、外部記憶装置監視モジュール２２並びにアプリケーション２３の各ソフトウェアを夫々プロセスとして独立的に並列実行する。
【００４０】
また、オペレーティングシステム２１は、ファイルシステム２１１と、デバイスドライバ２１２とを有する。ファイルシステム２１１は、記憶部１４やインタフェース部１８に挿入される外部記憶装置のファイルシステムを管理するためのものであって、外部記憶装置監視モジュール２２からの指示に応じて、外部記憶装置のマウント／アンマウントなどを実行する。なお、ＳＤメモリカードスロット１８１、ＵＳＢインタフェース１８２に接続される外部記憶装置のマウントポイントは、ファイルシステム２１１により規定されているものとする。
【００４１】
デバイスドライバ２１２は、インタフェース部１８に挿入される外部機器に対するアクセス制御を行うものであり、ＳＤメモリカードスロット１８１やＵＳＢインタフェース１８２からの割り込みにより外部記憶装置の挿抜状態（着脱状態）を検出し、当該外部記憶装置のマウントポイント等を通知することで、外部記憶装置の挿入または抜き出しを外部記憶装置監視モジュール２２に通知する。
【００４２】
外部記憶装置監視モジュール２２は、インタフェース部１８に挿入された外部記憶装置のマウント／アンマウントを統括的に管理するものであり、アプリケーション２３の各アプリからの要求に応じて、外部記憶装置のマウント／アンマウントをオペレーティングシステム２１に指示する。なお、外部記憶装置監視モジュール２２の動作の詳細については、後述する。
【００４３】
アプリケーション２３は、ページ記述言語（ＰＤＬ、ＰＣＬ）およびポストスクリプト（ＰＳ）を有する印刷用のソフトウェアであるプリンタアプリ２３１と、スキャナ用ソフトウェアであるスキャナアプリ２３２とを有している。これら各アプリは、オペレーティングシステム２１の制御の下、データの読み出しや書き出し等の必要に応じて外部記憶装置のマウントを要求する信号を外部記憶装置監視モジュール２２に出力する。以下、この信号をマウント要求という。なお、マウント要求には、マウント対象となる外部記憶装置を指示する情報（例えば、マウントパス等）が少なくとも含まれているものとする。
【００４４】
また、アプリケーション２３の各アプリは、外部記憶装置への処理が完了すると、外部記憶装置のアンマウントを要求する信号を外部記憶装置監視モジュール２２に出力する。以下、この信号をアンマウント要求という。なお、アンマウント要求には、アンマウント対象となる外部記憶装置を指示する情報（例えば、マウントパス等）が少なくとも含まれているものとする。
【００４５】
本実施形態では、プリンタアプリ２３１とスキャナアプリ２３２の２つのアプリケーションを例示したが、これに限らず、複合機１００の機能に応じたアプリケーション（例えば、コピー用のソフトウェアであるコピーアプリや、ファクシミリ用ソフトウェアであるファックスアプリ、ネットワークファイル用ソフトウェアであるネットファイルアプリ）を含めることとしてもよい。
【００４６】
以下、外部記憶装置のマウント／アンマウントにかかる複合機１００の動作について説明する。まず、図３を参照して、単一のアプリケーション（プリンタアプリ２３１）から外部記憶装置のマウント／アンマウントが要求された際の動作について説明する。
【００４７】
図３は、オペレーティングシステム２１、外部記憶装置監視モジュール２２、プリンタアプリ２３１との間で、外部記憶装置のマウント／アンマウント時に行われる処理の手順を示した図である。なお、本処理の前提として、ＳＤメモリカードスロット１８１又はＵＳＢインタフェース１８２の何れか又は両方に外部記憶装置が挿入済みで、且つ、未マウントの状態であり、当該外部記憶装置の挿入がデバイスドライバ２１２から外部記憶装置監視モジュール２２に通知されているものとする。
【００４８】
まず、印刷にかかる画像データの読み出しなどに伴い、特定の外部記憶装置へのアクセスの用が発生すると、プリンタアプリ２３１は、この外部記憶装置のマウント要求を、外部記憶装置監視モジュール２２に出力する（ステップＳ１１）。
【００４９】
一方、外部記憶装置監視モジュール２２では、プリンタアプリ２３１からマウント要求を受け付けると、マウント処理を実行する（ステップＳ１２）。ここで、図４のフローチャートを参照して、ステップＳ１２のマウント処理について説明する。なお、本処理は、外部記憶装の種別毎に独立して行われるものとする。
【００５０】
図４は、第１の実施形態にかかるマウント処理の手順を示したフローチャートである。まず、外部記憶装置監視モジュール２２は、今回のマウント要求によりマウントが要求された外部記憶装置について、今回迄にマウントを要求したアプリケーションの個数を表すマウントアプリケーション数が“０”か否かを判定する（ステップＳ２１）。なお、アプリケーションの個数のカウントは、アプリケーションの種別単位で行われるものとする。
【００５１】
ステップＳ２１において、マウントアプリケーション数が“０”でないと判定した場合（ステップＳ２１；Ｎｏ）、外部記憶装置監視モジュール２２は、ステップＳ２３の処理に直ちに移行する。
【００５２】
一方、ステップＳ２１において、マウントアプリケーション数が“０”と判定した場合（ステップＳ２１；Ｙｅｓ）、外部記憶装置監視モジュール２２は、今回のマウント要求によりマウントが要求された外部記憶装置のマウントを指示する信号をオペレーティングシステム２１に出力し（ステップＳ２２）、ステップＳ２３の処理に移行する。
【００５３】
続くステップＳ２３では、外部記憶装置監視モジュール２２が、マウントアプリケーション数を１インクリメントし（ステップＳ２３）、本処理を終了する。なお、マウント要求で指示された外部記憶装置の挿入がデバイスドライバ２１２から通知されていない場合には、外部記憶装置監視モジュール２２から、未挿入である旨の情報をプリンタアプリ２３１に出力することとしてもよい。
【００５４】
ここで、図３に戻ると、マウント要求はプリンタアプリ２３１のみから行われているため、図４に示したマウント処理のステップＳ２１では、マウントアプリケーション数が“０”と判定され、外部記憶装置監視モジュール２２から、オペレーティングシステム２１にマウントが指示される（ステップＳ１３）。
【００５５】
一方、オペレーティングシステム２１では、外部記憶装置監視モジュール２２から外部記憶装置のマウントが指示されると、この指示された外部記憶装置をファイルシステム上にマウントする（ステップＳ１４）。
【００５６】
その後、プリンタアプリ２３１から、マウントされた外部記憶装置にアクセスが行われる（ステップＳ１５）。続いて、外部記憶装置へのアクセスが完了すると、プリンタアプリ２３１は、マウントされた外部記憶装置のアンマウント要求を、外部記憶装置監視モジュール２２に出力する（ステップＳ１６）。
【００５７】
外部記憶装置監視モジュール２２では、プリンタアプリ２３１からアンマウント要求を受け付けると、アンマウント処理を実行する（ステップＳ１７）。ここで、図５のフローチャートを参照して、ステップＳ１７のアンマウント処理について説明する。なお、本処理は、マウント処理と同様、外部記憶装の種別毎に独立して行われるものとする。
【００５８】
まず、外部記憶装置監視モジュール２２は、アンマウントが要求された外部記憶装置についてカウントしていたマウントアプリケーション数を１デクリメントする（ステップＳ３１）。続いて、外部記憶装置監視モジュール２２は、マウントアプリケーション数が“０”か否かを判定し、“０”でないと判定した場合には（ステップＳ３２；Ｎｏ）、本処理を直ちに終了する。
【００５９】
一方、ステップＳ３２において、マウントアプリケーション数が“０”と判定した場合（ステップＳ３２；Ｙｅｓ）、外部記憶装置監視モジュール２２は、アンマウント要求によりアンマウントが要求された外部記憶装置のアンマウントを指示する信号をオペレーティングシステム２１に出力し（ステップＳ３３）、本処理を終了する。
【００６０】
ここで、図３に戻ると、マウント要求はプリンタアプリ２３１のみから行われていたため、図５に示したアンマウント処理におけるステップＳ３１の結果は、マウントアプリケーション数＝０となる。そのため、外部記憶装置監視モジュール２２は、アンマウント処理でのステップＳ３２に基づき、アンマウント要求でアンマウントが要求された外部記憶装置のアンマウントをオペレーティングシステム２１に指示する（ステップＳ１８）。
【００６１】
オペレーティングシステム２１では、外部記憶装置監視モジュール２２から外部記憶装置のアンマウントが指示されると、この指示された外部記憶装置をファイルシステム上からアンマウントする（ステップＳ１９）。このアンマウントの際、オペレーティングシステム２１では、外部記憶装置へのアクセスを高速化する目的でシステムメモリ１３（ＲＡＭ１３２）などにキャッシュさせておいたデータやジャーナルを外部記憶装置に書き戻す等の処理が行われ、アンマウント後、外部記憶装置はインタフェース部１８から取り外し可能な状態となる。
【００６２】
次に、図６を参照して、複数のアプリケーション（プリンタアプリ２３１、スキャナアプリ２３２）から外部記憶装置のマウント／アンマウントが要求された際の動作について説明する。
【００６３】
図６は、オペレーティングシステム２１、外部記憶装置監視モジュール２２、アプリケーション２３（プリンタアプリ２３１、スキャナアプリ２３２）との間で、外部記憶装置のマウント／アンマウント時に行われる処理の手順を示した図である。なお、本処理の前提として、ＳＤメモリカードスロット１８１又はＵＳＢインタフェース１８２の何れか又は両方に外部記憶装置が挿入済みで、且つ、未マウントの状態であり、当該外部記憶装置の挿入がデバイスドライバ２１２から外部記憶装置監視モジュール２２に通知されているものとする。
【００６４】
まず、スキャンした画像データの書き出しなどに伴い、特定の外部記憶装置へのアクセスの用が発生すると、スキャナアプリ２３２は、この外部記憶装置のマウント要求を、外部記憶装置監視モジュール２２に出力する（ステップＳ４１）。
【００６５】
一方、外部記憶装置監視モジュール２２では、スキャナアプリ２３２からマウント要求を受け付けると、上述したマウント処理を実行する（ステップＳ４２）。この場合、マウント要求はスキャナアプリ２３２のみから行われているため、マウント処理のステップＳ２１では、“マウントアプリケーション数＝０”と判定され、外部記憶装置監視モジュール２２から、オペレーティングシステム２１にマウントが指示される（ステップＳ４３）。
【００６６】
オペレーティングシステム２１では、外部記憶装置監視モジュール２２から外部記憶装置のマウントが指示されると、この指示された外部記憶装置をファイルシステム上にマウントする（ステップＳ４４）。
【００６７】
ここで、スキャナアプリ２３２からマウント要求が出力された後、プリンタアプリ２３１から、特定の外部記憶装置のマウント要求が、外部記憶装置監視モジュール２２に出力されたとする（ステップＳ４５）。外部記憶装置監視モジュール２２では、プリンタアプリ２３１からのマウント要求を受け付け、ステップＳ４２と同様にマウント処理を実行する（ステップＳ４６）。
【００６８】
このとき、先にスキャナアプリ２３２によりマウントが要求された外部記憶装置と同一の外部記憶装置のマウントがプリンタアプリ２３１から要求されたとすると、図４に示したマウント処理のステップＳ２１において、外部記憶装置監視モジュール２２は“マウントアプリケーション数＝１”と判定する。つまり、プリンタアプリ２３１からマウント要求された外部記憶装置は、既にファイルシステム上にマウント済みであるため、外部記憶装置監視モジュール２２はマウントの指示をオペレーティングシステム２１に出力せず、ステップＳ２３でマウントアプリケーション数のインクリメントのみを行う。以降、プリンタアプリ２３１、スキャナアプリ２３２から、ファイルシステム上にマウントされた外部記憶装置にアクセスが行われる（ステップＳ４７、Ｓ４８）。
【００６９】
その後、スキャナアプリ２３２から外部記憶装置へのアクセスが完了すると、スキャナアプリ２３２は、マウントされた外部記憶装置のアンマウント要求を、外部記憶装置監視モジュール２２に出力する（ステップＳ４９）。
【００７０】
一方、外部記憶装置監視モジュール２２では、スキャナアプリ２３２からアンマウント要求を受け付けると、上述したアンマウント処理を実行する（ステップＳ５０）。この場合、マウント要求がプリンタアプリ２３１、スキャナアプリ２３２の２つのアプリから行われていたため、図５に示したアンマウント処理におけるステップＳ３１の結果は、マウントアプリケーション数＝１となる。つまり、スキャナアプリ２３２からアンマウント要求された外部記憶装置は、他のアプリも使用中であるため、外部記憶装置監視モジュール２２はアンマウントの指示をオペレーティングシステム２１に出力せずに、アンマウント処理を終了する。
【００７１】
続いて、プリンタアプリ２３１から外部記憶装置へのアクセスが完了すると、プリンタアプリ２３１は、マウントされた外部記憶装置のアンマウント要求を、外部記憶装置監視モジュール２２に出力する（ステップＳ５１）。
【００７２】
外部記憶装置監視モジュール２２では、プリンタアプリ２３１からのアンマウント要求を受け付けると、ステップＳ４９と同様にアンマウント処理を実行する（ステップＳ５２）。この場合、スキャナアプリ２３２についてのアンマウント処理がステップＳ４９で行われているため、図５に示したアンマウント処理におけるステップＳ３１の結果は、“マウントアプリケーション数＝０”となる。そのため、外部記憶装置監視モジュール２２は、アンマウント処理でのステップＳ３３に基づき、アンマウント要求でアンマウントが要求された外部記憶装置のアンマウントをオペレーティングシステム２１に指示する（ステップＳ５３）。
【００７３】
オペレーティングシステム２１では、外部記憶装置監視モジュール２２から外部記憶装置のアンマウントが指示されると、この指示された外部記憶装置をファイルシステム上からアンマウントする（ステップＳ５４）。
【００７４】
以上のように、第１の実施形態によれば、外部記憶装置監視モジュール２２が、各アプリケーション２３（プリンタアプリ２３１、スキャナアプリ２３２）からのマウント／アンマウント要求に応じて、外部記憶装置のマウント／アンマウントを一括して制御するため、ユーザからの明示的なアンマウント指示を必要とすることなく、外部記憶装置のアンマウントをアプリケーション単位で行うことができる。また、各アプリケーションは、他のアプリケーションを意識することなく外部記憶装置のマウント／アンマウントを独立して行うことができる。
【００７５】
また、一のアプリケーションからマウントが要求されている間、他のアプリケーションからのアンマウント要求を排除することができるため、外部記憶装置へのアクセス途中にアンマウントが行われてしまうことを防止することができる。
【００７６】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。第２の実施形態では、外部記憶装置がインタフェース部１８に挿入された旨を、アプリケーション２３に通知を行うことが可能な形態について説明する。なお、上述した第１の実施形態と同様の構成については、同一の符号を付与しその説明を省略する。
【００７７】
図７は、第２の実施形態にかかる複合機２００の機能的構成（ソフトウェア構成）を示したブロック図である。なお、複合機２００のハードウェア構成は、図１に示した複合機１００のハードウェア構成と同様であるため説明を省略する。
【００７８】
図７に示したように、複合機２００は、オペレーティングシステム２１と、外部記憶装置監視モジュール３１と、アプリケーション３２とを備えている。
【００７９】
ここで、アプリケーション３２は、上述したアプリケーション２３と同様、プリンタアプリ３２１とスキャナアプリ３２２とを有している。これら各アプリはプリンタアプリ２３１、スキャナアプリ２３２と同様の機能を有するとともに、外部記憶装置監視モジュール３１へのマウント要求の出力に先がけ、外部記憶装置が複合機２００に接続されたことの通知を依頼する信号を外部記憶装置監視モジュール３１に出力する。以下、この信号を接続通知依頼という。
【００８０】
外部記憶装置監視モジュール３１は、上述した外部記憶装置監視モジュール２２と同様の機能を有するとともに、デバイスドライバ２１２から外部記憶装置の挿入の通知を受けると、この外部記憶装置が複合機２００に接続されたことを、接続通知依頼を出力したアプリケーション３２宛に通知する。
【００８１】
以下、図８を参照して、本実施形態に特有の複合機２００の動作について説明する。図８は、オペレーティングシステム２１、外部記憶装置監視モジュール３１、アプリケーション３２（プリンタアプリ３２１、スキャナアプリ３２２）との間で、外部記憶装置の挿入（装着）時に行われる処理の手順を示した図である。
【００８２】
まず、プリンタアプリ３２１が接続通知依頼を外部記憶装置監視モジュール３１に出力すると（ステップＳ６１）、外部記憶装置監視モジュール３１は、接続通知依頼を受け付け、この接続通知依頼を出力したアプリ名をＲＡＭ１３２又は記憶部１４に保持した後、デバイスドライバ２１２からの通知を待機することで、外部接続装置の接続状態を監視する（ステップＳ６２）。
【００８３】
また、スキャナアプリ３２２が接続通知依頼を外部記憶装置監視モジュール３１に出力すると（ステップＳ６３）、外部記憶装置監視モジュール３１は、接続通知依頼を受け付け、この接続通知依頼を出力したアプリ名をＲＡＭ１３２又は記憶部１４に保持し、ステップＳ６２での監視処理を継続する。
【００８４】
ここで、ユーザによりインタフェース部１８に外部記憶装置が挿入されると、オペレーティングシステム２１（デバイスドライバ２１２）は、外部記憶装置が挿入されたことを外部記憶装置監視モジュール３１に通知する（ステップＳ６４）。なお、外部記憶装置は、ＳＤメモリカードスロット１８１、ＵＳＢインタフェース１８２の何れか又は両方に挿入されるものとするが、この挿入された外部記憶装置を識別可能な情報（例えば、マウントポイントなど）が外部記憶装置監視モジュール３１に通知されるものとする。
【００８５】
外部記憶装置監視モジュール３１では、オペレーティングシステム２１から外部記憶装置挿入の通知を受けると、この外部記憶装置が複合機２００に接続されたことをＲＡＭ１３２に保持した各アプリ宛に通知し（ステップＳ６５、Ｓ６６）、本処理を終了する。
【００８６】
本処理の後、接続通知を受けた各アプリでは、データの読み出しや書き出し等の必要に応じて当該接続通知により通知された外部記憶装置のマウント要求を外部記憶装置監視モジュール３１に出力する。なお、接続通知を受けていない外部記憶装置については、マウント要求を出さないよう各アプリケーション側で制御する態様としてもよい。
【００８７】
以上のように、第２の実施形態によれば、外部記憶装置の着脱状態の確認を各アプリケーション３２（プリンタアプリ３２１、スキャナアプリ３２２）が個別に行う必要がなくなるため、各アプリケーション３２の処理を簡略化することができる。
【００８８】
なお、本実施形態では、接続通知依頼を出したアプリに対してのみ接続通知を返す態様としたが、これに限らず、接続通知依頼の有無に依らず全てのアプリに接続通知を出力する態様としてもよい。また、本実施形態では、外部記憶装置の挿入時についてのみ説明したが、外部記憶装置の抜き出し時においても同様に各アプリに通知を行う態様としてもよい。
【００８９】
［第３の実施形態］
次に本発明の第３の実施形態について説明する。ＵＮＩＸ（登録商標）などのオペレーティングシステム環境下では、外部記憶装置を含めた全ての記憶媒体にアクセスするために、ファイルシステム上にマウントしたパス名が必要となる（例えば、“/mnt/sdcard”など）。また、外部記憶装置の種類によっては書き込み禁止状態にするスイッチを保持するものもあり、この場合、外部記憶装置をマウントしてもデータを書き込むことはできない。これら外部記憶装置に関する情報は、実際にアクセスを行うアプリケーション２３にとって必要なものとなるため、マウント要求が行われる前に各アプリに通知しておくことが好ましい。そこで、本実施形態では、外部記憶装置の挿入時に、当該外部記憶装置に関する情報をアプリケーション２３に通知することが可能な態様について説明する。なお、上述した第１、第２の実施形態と同様の構成については、同一の符号を付与しその説明を省略する。
【００９０】
図９は、第３の実施形態にかかる複合機３００の機能的構成（ソフトウェア構成）を示したブロック図である。なお、複合機３００のハードウェア構成は、図１に示した複合機１００のハードウェア構成と同様であるため説明を省略する。
【００９１】
図９に示したように、複合機３００は、オペレーティングシステム２１と、外部記憶装置監視モジュール４１と、アプリケーション３２とを備えている。
【００９２】
外部記憶装置監視モジュール４１は、上述した外部記憶装置監視モジュール３１と同様の機能を有するとともに、デバイスドライバ２１２から外部記憶装置の挿入の通知を受けると、オペレーティングシステム２１を介して当該外部記憶装置に関する情報を取得し、記憶部１４に記憶された外部記憶装置管理テーブルに外部記憶装置関連情報として登録する。
【００９３】
図１０は、記憶部１４に記憶された外部記憶装置管理テーブルの一例を示した図である。同図に示したように、外部記憶装置管理テーブルは「マウント用パス」、「使用状態」、「外部記憶装置種別」、「アクセスモード」の４つの項目から構成されている。
【００９４】
ここで「マウント用パス」は、ファイルシステム２１１が管理する外部記憶装置のマウントポイントであって、同図では３つのパス（/mnt/ext1,/mnt/ext2,/mnt/ext3）が予め登録されている。
【００９５】
「使用状態」は、マウント用パスが使用状態にあるか否かを示した情報が登録される項目である。外部記憶装置監視モジュール４１は、デバイスドライバ２１２から通知される外部記憶装置の挿入または抜き出しの情報に応じ、この外部記憶装置にかかるマウント用パスの「使用状態」を使用（ＯＮ）又は未使用（ＯＦＦ）に切り替える。
【００９６】
「外部記憶装置種別」は、マウント用パスにマウントされた外部記憶装置の種別が登録される項目である。外部記憶装置監視モジュール４１は、オペレーティングシステム２１を介して外部記憶装置の種別を取得すると、対応する外部記憶装置（マウント用パス）の「外部記憶装置種別」にその種別を登録する。
【００９７】
「アクセスモード」は、マウント用パスにマウントされた外部記憶装置のアクセスモードが登録される項目である。外部記憶装置監視モジュール４１は、オペレーティングシステム２１を介して外部記憶装置のアクセスモードを取得すると、対応する外部記憶装置（マウント用パス）の「アクセスモード」にそのモードを登録する。なお、図１０では、マウント用パス“/mnt/ext1”にマウントされた外部記憶装置（ＳＤカードメモリ）が“読み書き可能”なモードであることを示しており、また、マウント用パス“/mnt/ext3”にマウントされた外部記憶装置（ＵＳＢフラッシュメモリ）が“読み込みのみ可能”なモードであることを示している。
【００９８】
外部記憶装置監視モジュール４１は、外部記憶装置管理テーブルに登録された情報（外部記憶装置関連情報）をアプリケーション３２に通知する。なお、外部記憶装置関連情報の通知は、第２の実施形態で説明した、接続通知とともに行う態様としてもよいし、各アプリからマウント要求が行われた際に、行う態様としてもよい。
【００９９】
以下、図１１を参照して、外部記憶装置監視モジュール４１が、外部記憶装置関連情報をアプリケーション３２に通知する際の動作について説明する。図１１は、外部記憶装置監視モジュール４１が実行する外部記憶装置接続監視処理の手順を示したフローチャートである。なお、本処理は、第２の実施形態で説明したステップＳ６２の処理時等に行われるものとする。
【０１００】
外部記憶装置監視モジュール４１は、ステップＳ７１〜Ｓ８４のループ処理において、以下の処理（ステップＳ７２〜Ｓ８３）を所定の時間間隔毎に実行する。まず、外部記憶装置監視モジュール４１は、デバイスドライバ２１２からの通知の有無を確認し（ステップＳ７２）、インタフェース部１８への挿抜状態が変化したか否かを判定する（ステップＳ７３）。ここで、挿抜状態に変化なしと判定した場合、即ちデバイスドライバ２１２からの通知が確認されない場合（ステップＳ７３；Ｎｏ）、ステップＳ８４の処理に直ちに移行する。
【０１０１】
一方、ステップＳ７３において、挿抜状態に変化ありと判定した場合、即ちデバイスドライバ２１２からの通知を確認した場合（ステップＳ７３；Ｙｅｓ）、外部記憶装置監視モジュール４１は、この通知内容に基づいて、新たな外部記憶装置がインタフェース部１８に挿入されたか否かを判定する（ステップＳ７４）。ここで、否と判定した場合、即ち外部記憶装置がインタフェース部１８から抜き出されたと判定した場合（ステップＳ７４；Ｎｏ）、外部記憶装置監視モジュール４１は、この外部記憶装置のマウントポイントに対応するマウント用パスを外部記憶装置管理テーブルから特定すると（ステップＳ７５）、当該マウント用パスに関連付けられた「使用状態」を“ＯＦＦ”に切り替え（ステップＳ７６）、「外部記憶装置種別」及び「アクセスモード」を空（ｎｕｌｌ）とした後（ステップＳ７７）、ステップＳ８４の処理に移行する。
【０１０２】
また、ステップＳ７４において、新たな外部記憶装置が挿入されたと判定した場合（ステップＳ７４；Ｙｅｓ）、外部記憶装置監視モジュール４１は、この外部記憶装置のマウントポイントに対応するマウント用パスを外部記憶装置管理テーブルから特定し、当該マウント用パスに関連付けられた「使用状態」が“ＯＦＦ”か否かを判定する（ステップＳ７９）。ここで、「使用状態」が“ＯＮ”と判定した場合（ステップＳ７９；Ｎｏ）、ステップＳ８４の処理に移行する。
【０１０３】
一方、ステップＳ７９において、「使用状態」が“ＯＦＦ”と判定した場合（ステップＳ７９；Ｙｅｓ）、外部記憶装置監視モジュール４１は、オペレーティングシステム２１を介し、新たに挿入された外部記憶装置に関する情報を取得する（ステップＳ８０）。次いで、外部記憶装置監視モジュール４１は、ステップＳ７８で特定したマウント用パスに対応するエントリの「外部記憶装置種別」、「アクセスモード」に、ステップＳ８０で取得した外部記憶装置の種別とアクセスモードとを夫々登録する（ステップＳ８１）。
【０１０４】
続いて、外部記憶装置監視モジュール４１は、ステップＳ８１で登録したエントリの「使用状況」を“ＯＮ”に切り替えた後（ステップＳ８２）、当該エントリに登録された各情報（外部記憶装置関連情報）を、アプリケーション３２に通知し（ステップＳ８３）、ステップＳ８４に移行する。
【０１０５】
以上のように、第３の実施形態によれば、外部記憶装置に関する情報の取得を各アプリケーション３２（プリンタアプリ３２１、スキャナアプリ３２２）が個別に行う必要がなくなるため、各アプリケーションの処理を簡略化することができる。
【０１０６】
［第４の実施形態］
次に、本発明の第４の実施形態について説明する。特定のアプリが外部記憶装置のフォーマット等を行うような際、他のアプリからの要求に応じ当該外部記憶装置がマウントされアクセスが行われてしまうと、フォーマットが失敗する可能性がある。そのため、本実施形態では、特定のアプリから出力されるマウント禁止の要求に応じて、外部記憶装置のマウントを禁止することが可能な態様について説明する。なお、上述した実施形態と同様の構成については、同一の符号を付与しその説明を省略する。
【０１０７】
図１２は、第４の実施形態にかかる複合機４００の機能的構成（ソフトウェア構成）を示したブロック図である。なお、複合機４００のハードウェア構成は、図１に示した複合機１００のハードウェア構成と同様であるため説明を省略する。
【０１０８】
図１２に示したように、複合機４００は、オペレーティングシステム２１と、外部記憶装置監視モジュール５１と、アプリケーション５２とを備えている。
【０１０９】
ここで、アプリケーション５２は、上述したアプリケーション２３と同様、プリンタアプリ５２１とスキャナアプリ５２２とを有している。これら各アプリはプリンタアプリ２３１、スキャナアプリ２３２と同様の機能を有するとともに、外部記憶装置のフォーマット時など当該外部記憶装置に対する他のアプリのアクセスを禁止する用が発生すると、外部記憶装置のマウントの禁止を要求する信号を外部記憶装置監視モジュール５１に出力する。以下、この信号をマウント禁止要求という。
【０１１０】
また、各アプリ（プリンタアプリ５２１、スキャナアプリ５２２）は、フォーマットの完了等に伴い外部記憶装置に対する処理が終了すると、当該外部記憶装置に対するアクセス禁止の解除を要求する信号を外部記憶装置監視モジュール５１に出力する。以下、この信号をマウント禁止解除要求という。なお、マウント禁止要求及びマウント禁止解除要求には、少なくとも操作対象となる外部記憶装置を指示するための情報（例えば、マウントポイント等）が含まれているものとする。
【０１１１】
外部記憶装置監視モジュール５１は、上述した外部記憶装置監視モジュール２２と同様の機能を有するとともに、特定のアプリ（プリンタアプリ５２１又はスキャナアプリ５２２）からマウント禁止要求を受け付けると、このマウント禁止要求で指示された外部記憶装置のマウントを行わないよう制御する。また、外部記憶装置監視モジュール５１は、特定のアプリ（プリンタアプリ５２１又はスキャナアプリ５２２）からマウント禁止解除要求を受け付けると、このマウント禁止解除要求で指示された外部記憶装置をマウントが可能な状態とする。
【０１１２】
具体的に、外部記憶装置監視モジュール５１は、特定のアプリからマウント禁止要求を受け付けると、このマウント禁止要求により指示された外部記憶装置や当該マウント禁止要求を出力したアプリに関する情報等を、記憶部１４に記憶された外部記憶装置管理テーブルに登録することで、外部記憶装置の状態を管理する。
【０１１３】
図１３は、記憶部１４に記憶された外部記憶装置管理テーブルの一例を示した図である。同図に示したように、外部記憶装置管理テーブルは「マウント用パス」、「禁止フラグ」、「アプリ種別」の３つの項目から構成されている。
【０１１４】
ここで「マウント用パス」は、ファイルシステム２１１が管理する外部記憶装置のマウントポイントであって、同図では３つのパス（/mnt/ext1,/mnt/ext2,/mnt/ext3）が予め登録されている。「禁止フラグ」は、マウント用パスに対応する外部記憶装置がマウント禁止状態にあるか否かを示した情報が登録される項目である。「アプリ種別」は、マウント禁止要求を出力したアプリの種別（例えば、スキャナアプリ等）が登録される項目である。
【０１１５】
外部記憶装置監視モジュール５１は、特定のアプリからマウント禁止要求を受け付けると、このマウント禁止要求が指示する外部記憶装置のマウント用パスに関連付けられた「禁止フラグ」を“ＯＮ”に切り替えるとともに、このマウント禁止要求を出力したアプリの種別を「アプリ種別」に登録する。
【０１１６】
また、外部記憶装置監視モジュール５１は、特定のアプリからマウント禁止解除要求を受け付けると、このマウント禁止解除要求が指示する外部記憶装置のマウント用パスに関連付けられた「禁止フラグ」を“ＯＦＦ”に切り替えるとともに、この「禁止フラグ」に関連付けられた「アプリ種別」を空とする。なお、本実施形態では、マウント禁止要求を出力したアプリからのみ、このマウント禁止要求で指示された外部記憶装置のマウント禁止を解除することが可能であるものとする。そのため、外部記憶装置監視モジュール５１では、同一の外部記憶装置に対し、マウント禁止要求を送信したアプリとは異なるアプリからマウント禁止解除要求を受け付けた場合には、このマウント禁止解除要求を破棄するものとする。
【０１１７】
以下、外部記憶装置監視モジュール５１が、アプリケーション５２からマウント禁止要求／マウント禁止解除要求を受けた際の動作について説明する。
【０１１８】
図１４は、オペレーティングシステム２１、外部記憶装置監視モジュール５１、アプリケーション５２（プリンタアプリ５２１、スキャナアプリ５２２）との間で、外部記憶装置のマウント／アンマウント時に行われる処理の手順を示した図である。なお、本処理の前提として、ＳＤメモリカードスロット１８１又はＵＳＢインタフェース１８２の何れか又は両方に外部記憶装置が挿入済みで、且つ、未マウントの状態であり、当該外部記憶装置の挿入がデバイスドライバ２１２から外部記憶装置監視モジュール５１に通知されているものとする。
【０１１９】
まず、外部記憶装置のフォーマット等に伴い、特定の外部記憶装置へのアクセスを禁止する用が発生すると、プリンタアプリ５２１は、この外部記憶装置のマウント禁止要求を、外部記憶装置監視モジュール５１に出力する（ステップＳ９１）。
【０１２０】
一方、外部記憶装置監視モジュール５１は、プリンタアプリ５２１からのマウント禁止要求を受け付けると、マウント禁止処理を実行する（ステップＳ９２）。以下、図１５を参照して、ステップＳ９２のマウント禁止処理について説明する。
【０１２１】
図１５は、マウント禁止処理の手順を示したフローチャートである。まず、外部記憶装置監視モジュール５１は、記憶部１４に記憶された外部記憶装置管理テーブルを参照し、マウント禁止要求で指示された外部記憶装置に対応するマウントポイント（マウント用パス）を特定する（ステップＳ１１１）。
【０１２２】
次いで、外部記憶装置監視モジュール５１は、ステップＳ１１１で特定したマウント用パスに関連付けられた「禁止フラグ」を“ＯＮ”に切り替え（ステップＳ１１２）、このマウント禁止要求を出力したアプリの種別を「アプリ種別」に登録した後（ステップＳ１１３）、本処理を終了する。なお、マウント禁止状態にある外部記憶装置について、他のアプリからマウント禁止が多重に要求されてしまうことを防止するため、排他処理を行うこととしてもよい。
【０１２３】
図１４に戻り、プリンタアプリ５２１は、マウントの禁止を要求した外部記憶装置に対し、フォーマット等の所定の処理を実行する（ステップＳ９３）。ここで、スキャナアプリ５２２から、マウント禁止状態にある外部記憶装置のマウント要求が外部記憶装置監視モジュール５１に出力されたとすると（ステップＳ９４）、外部記憶装置監視モジュール５１は、このマウント要求に基づいてマウント処理を実行する（ステップＳ９５）。以下、図１６を参照して、ステップＳ９５のマウント処理について説明する。なお、本処理は、マウントが要求された外部記憶装毎に個別に行われるものとする。
【０１２４】
図１６は、第４の実施形態にかかるマウント処理の手順を示したフローチャートである。まず、外部記憶装置監視モジュール２２は、記憶部１４に記憶された外部記憶装置管理テーブルを参照し、マウント要求によりマウントが要求された外部記憶装置に対応するマウントポイント（マウント用パス）を特定する（ステップＳ１２１）。
【０１２５】
次いで、外部記憶装置監視モジュール５１は、ステップＳ１２１で特定したマウント用パスに関連付けられた「禁止フラグ」が“ＯＦＦ”であるか否かを判定する（ステップＳ１２２）。ここで、「禁止フラグ」が“ＯＮ”と判定した場合（ステップＳ１２２；Ｎｏ）、外部記憶装置監視モジュール５１は、マウント要求を出力したアプリに対しマウントが行えない旨の信号（マウント要求拒否）を出力し（ステップＳ１２３）、本処理を終了する。
【０１２６】
一方、ステップＳ１２２において、「禁止フラグ」が“ＯＦＦ”と判定した場合（ステップＳ１２２；Ｙｅｓ）、外部記憶装置監視モジュール５１は、ステップＳ１２４〜Ｓ１２６の処理を実行する。なお、ステップＳ１２４〜Ｓ１２６の処理は、図４を用いて説明したマウント処理のステップＳ２１〜Ｓ２３と同様であるため、説明は省略する。
【０１２７】
ここで、図１４に戻ると、スキャナアプリ５２２からは、マウント禁止状態にある外部記憶装置のマウントが要求されていることを想定しているため、図１６に示したマウント処理のステップＳ１２２において、外部記憶装置監視モジュール５１は、「禁止フラグ」が“ＯＮ”と判定するため、マウント要求拒否をスキャナアプリ５２２に出力する。
【０１２８】
続いて、フォーマット等の処理の完了に伴い、プリンタアプリ５２１がマウント禁止解除要求を外部記憶装置監視モジュール５１に出力すると、外部記憶装置監視モジュール５１は、このマウント禁止解除要求に基づいてマウント禁止解除処理を実行する（ステップＳ９８）。以下、図１７を参照して、ステップＳ９８のマウント禁止解除処理について説明する。
【０１２９】
図１７は、マウント禁止解除処理の手順を示したフローチャートである。まず、外部記憶装置監視モジュール５１は、記憶部１４に記憶された外部記憶装置管理テーブルを参照し、マウント禁止解除要求により指示された外部記憶装置に対応するマウントポイント（マウント用パス）を特定する（ステップＳ１３１）。
【０１３０】
次いで、外部記憶装置監視モジュール５１は、ステップＳ１３１で特定した「マウント用パス」に関連付けられた「アプリ種別」の内容と、マウント禁止解除要求を出力したアプリの種別とが一致するか否かを判定する（ステップＳ１３２）。ここで、一致しないと判定した場合（ステップＳ１３２；Ｎｏ）、外部記憶装置監視モジュール５１は、マウント禁止を解除できない旨の信号（マウント禁止解除拒否）を、このマウウント禁止解除要求を出力したアプリに出力し（ステップＳ１３３）、本処理を終了する。
【０１３１】
一方、ステップＳ１３２において、両アプリ種別が一致したと判定した場合（ステップＳ１３２；Ｙｅｓ）、ステップＳ１３１で特定した「マウント用パス」に関連付けられた「禁止フラグ」を“ＯＦＦ”に切り替え（ステップＳ１３４）、「アプリ種別」を空とした後（ステップＳ１３５）、本処理を終了する。
【０１３２】
ここで、図１４に戻ると、ステップＳ９１でプリンタアプリ５２１からマウント禁止要求が出力されているため、図１７に示したマウント禁止解除処理のステップＳ１３２において、外部記憶装置監視モジュール５１は、両アプリ種別が一致すると判定するため、「禁止フラグ」を“ＯＦＦ”に切り替え、「アプリ種別」を空とすることで該当する外部記憶総理のマウント禁止状態を解除する。
【０１３３】
ステップＳ９８の処理の後、スキャナアプリ５２２から、ステップＳ９６の処理でマウントが要求された外部記憶装置に対するマウント要求が外部記憶装置監視モジュール５１に再度出力されると（ステップＳ９９）、外部記憶装置監視モジュール５１は、ステップＳ９５と同様に図１６で説明したマウント処理を実行する（ステップＳ１００）。なお、この場合、図１６に示したマウント処理のステップＳ１２２において、外部記憶装置監視モジュール５１は、「禁止フラグ」が“ＯＦＦ”と判定するため、マウント要求で指示された外部記憶装置のマウントをオペレーティングシステム２１に指示する（ステップＳ１０１）。
【０１３４】
一方、オペレーティングシステム２１では、外部記憶装置監視モジュール２２から外部記憶装置のマウントが指示されると、この指示された外部記憶装置をファイルシステム上にマウントする（ステップＳ１０２）。
【０１３５】
なお、マウントされた外部記憶装置のアンマウントについては、上述した第１の実施形態と同様、外部記憶装置監視モジュール５１によるアンマウント処理によりわれるものとする。
【０１３６】
以上のように、第４の実施形態によれば、任意のアプリケーション５２（プリンタアプリ５２１、スキャナアプリ５２２）からのマウント禁止の要求に応じて、当該アプリケーションによる外部記憶装置の排他的な使用を可能とするため、例えば、外部記憶装置のフォーマット等の排他的な処理を確実に行うことができる。
【０１３７】
なお、本発明は、上記第１〜第４の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【０１３８】
例えば、上述した複合機で実行される各処理にかかるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上述した複合機で実行される各処理にかかるプログラムを、インターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１３９】
また、上述した複合機で実行される各処理にかかるプログラムを、ＲＯＭ等の記憶媒体に予め組み込んで提供するように構成してもよい。
【産業上の利用可能性】
【０１４０】
以上のように、本発明にかかる画像処理装置、画像処理方法及び画像処理プログラムは、ファクシミリ、スキャナ、複写機、デジタル複合機（ＭＦＰ）等の画像出力装置に有用であり、特に、出力を禁止する出力禁止領域を含んだ画像データの出力を行う画像出力装置に適している。
【図面の簡単な説明】
【０１４１】
【図１】第１の実施形態にかかる複合機のハードウェア構成を示したブロック図である。
【図２】第１の実施形態にかかる複合機の機能的構成を示したブロック図である。
【図３】外部記憶装置のマウント／アンマウント時に行われる処理の手順を示した図である。
【図４】第１の実施形態にかかるマウント処理の手順を示したフローチャートである。
【図５】アンマウント処理の手順を示したフローチャートである。
【図６】外部記憶装置のマウント／アンマウント時に行われる処理の手順を示した図である。
【図７】第２の実施形態にかかる複合機の機能的構成を示したブロック図である。
【図８】外部記憶装置の挿入時に行われる処理の手順を示した図である。
【図９】第３の実施形態にかかる複合機の機能的構成を示したブロック図である。
【図１０】第３の実施形態にかかる外部記憶装置管理テーブルの一例を示した図である。
【図１１】外部記憶装置接続監視処理の手順を示したフローチャートである。
【図１２】第４の実施形態にかかる複合機の機能的構成を示したブロック図である。
【図１３】第４の実施形態にかかる外部記憶装置管理テーブルの一例を示した図である。
【図１４】外部記憶装置のマウント／アンマウント時に行われる処理の手順を示した図である。
【図１５】マウント禁止処理の手順を示したフローチャートである。
【図１６】第４の実施形態にかかるマウント処理の手順を示したフローチャートである。
【図１７】マウント禁止解除処理の手順を示したフローチャートである。
【符号の説明】
【０１４２】
１００  複合機
２００  複合機
３００  複合機
４００  複合機
１１  ＣＰＵ
１２  ＡＳＩＣ
１３  システムメモリ
１３１  ＲＯＭ
１３２  ＲＡＭ
１４  記憶部
１５  操作表示部
１６  エンジン部
１７  スキャナ部
１８  インタフェース部
１８１  ＳＤメモリカードスロット
１８２  ＵＳＢインタフェース
２１  オペレーティングシステム
２１１  ファイルシステム
２１２  デバイスドライバ
２２  外部記憶装置監視モジュール
２３  アプリケーション
２３１  プリンタアプリ
２３２  スキャナアプリ
３１  外部記憶装置監視モジュール
３２  アプリケーション
３２１  プリンタアプリ
３２２  スキャナアプリ
４１  外部記憶装置監視モジュール
５１  外部記憶装置監視モジュール
５２  アプリケーション
５２１  プリンタアプリ
６２２  スキャナアプリ
【図１】
0005015046.tif 000002
【図２】
0005015046.tif 000003
【図３】
0005015046.tif 000004
【図４】
0005015046.tif 000005
【図５】
0005015046.tif 000006
【図６】
0005015046.tif 000007
【図７】
0005015046.tif 000008
【図８】
0005015046.tif 000009
【図９】
0005015046.tif 000010
【図１０】
0005015046.tif 000011
【図１１】
0005015046.tif 000012
【図１２】
0005015046.tif 000013
【図１３】
0005015046.tif 000014
【図１４】
0005015046.tif 000015
【図１５】
0005015046.tif 000016
【図１６】
0005015046.tif 000017
【図１７】
0005015046.tif 000018