(57)【要約】【課題】着脱可能な記録媒体のファイルシステムの修復に関して効率的かつ適切に判断を行い、正常なファイルシステムを効率よく維持することができるデータ処理装置等を提供する。【解決手段】所定のファイルシステムが構築された記録媒体を着脱可能に装着する装着部を有し、装着部に装着された記録媒体にデータを書き込むデータ処理装置が、装着部への記録媒体の着脱を検出する着脱検出部と、着脱検出部が記録媒体の抜き出しを検出した場合に、抜き出されたときにデータを書き込んでいた状態を記憶する書き込み状態記憶部と、着脱検出部が記録媒体の装着を検出した場合に、書き込み状態記憶部が記憶した状態に基づいて、装着された記録媒体に構築されたファイルシステムについて修復に関する診断を行う必要があるか否かを判断する修復診断判断部を備える。【選択図】  図３
2010009630.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体を着脱可能に装着する装着部を有し、前記装着部に装着された記録媒体にデータを書き込むデータ処理装置であって、
前記装着部への前記記録媒体の着脱を検出する着脱検出部と、
前記記録媒体にデータを書き込み中に前記着脱検出部が前記記録媒体の抜き出しを検出した場合に、前記記録媒体に書き込み中であったファイルのファイル名を記憶する書き込み状態記憶部と、
前記着脱検出部が前記記録媒体の装着を検出した場合に、前記書き込み状態記憶部が記憶したファイル名と、前記装着された記録媒体に記憶されているファイルのファイル名とが一致する場合に、前記装着部に装着された記録媒体に構築されたファイルシステムについて修復に関する診断が必要と判断する修復診断判断部と、を備えることを特徴とするデータ処理装置。
【請求項２】
請求項１において、更に、
前記診断が必要であると判断された記録媒体のファイルシステムを診断する、または、診断及び修復する、ファイルシステム診断修復部を、更に備えることを特徴とするデータ処理装置。
【請求項３】
請求項１において、更に、
前記診断が必要であると判断された記録媒体の、前記書き込み状態記憶部が記憶したファイル名に一致するファイル名を有するファイルのデータについて、診断する、または、診断及び修復する、ファイルシステム診断修復部を、備えることを特徴とするデータ処理装置。
【請求項４】
請求項１乃至請求項３のいずれかにおいて、更に、
前記修復に関するメッセージをユーザに通知するメッセージ通知部を備えることを特徴とするデータ処理装置。
【請求項５】
記録媒体を着脱可能に装着する装着部を有し、前記装着部に装着された記録媒体にデータを書き込むデータ処理装置であって、
前記装着部への前記記録媒体の着脱を検出する着脱検出部と、
前記記録媒体にデータを書き込み中に前記着脱検出部が前記記録媒体の抜き出しを検出した場合に、前記記録媒体に書き込み中であったファイルのファイル名を記憶する書き込み状態記憶部と、
前記着脱検出部が前記記録媒体の装着を検出した場合に、前記書き込み状態記憶部が記憶したファイル名と、前記装着された記録媒体に記憶されているファイルのファイル名とが一致する場合に、前記装着部に装着された記録媒体に構築されたファイルシステムについて修復を行う必要があると判断する修復判断部と、を備えることを特徴とするデータ処理装置。
【請求項６】
記録媒体を着脱可能に装着する装着部を有し、前記装着部に装着された記録媒体にデータを書き込むデータ処理装置におけるデータ処理方法であって、
前記データ処理装置が、前記装着部への前記記録媒体の着脱を検出する着脱検出工程と、
前記データ処理装置が、前記記録媒体にデータを書き込み中に前記記録媒体の抜き出しを検出した場合に、前記記録媒体に書き込み中であったファイルのファイル名を記憶する書き込み状態記工程と、
前記データ処理装置が、前記記録媒体の装着を検出した場合に、前記記憶したファイル名と、前記装着された記録媒体に記憶されているファイルのファイル名とが一致する場合に、前記装着部に装着された記録媒体に構築されたファイルシステムについて修復に関する診断が必要と判断する修復診断判断工程と、を有することを特徴とするデータ処理方法。
【請求項７】
記録媒体を着脱可能に装着する装着部に装着された記録媒体にデータを書き込むための制御プログラムであって、
前記装着部を備えるデータ処理装置が制御部を有し、
前記装着部への前記記録媒体の着脱を検出する着脱検出工程と、
前記記録媒体にデータを書き込み中に前記記録媒体の抜き出しを検出した場合に、前記記録媒体に書き込み中であったファイルのファイル名を記憶する書き込み状態記憶工程と、
前記記録媒体の装着を検出した場合に、前記記憶したファイル名と、前記装着された記録媒体に記憶されているファイルのファイル名とが一致する場合に、前記装着部に装着された記録媒体に構築されたファイルシステムについて修復に関する診断が必要と判断する修復診断判断工程と、を前記データ処理装置の制御部に実行させることを特徴とする制御プログラム。
【請求項８】
請求項７に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
データ処理装置、データ処理方法、制御プログラムおよびそのプログラムを記録する記録媒体に関する。
【背景技術】
【０００２】
近年、可搬性に優れたリムーバブルメモリとして、パーソナルコンピュータ（以下、ＰＣという）、プリンタ、スキャナなどのＵＳＢ(Universal Serial Bus)インターフェイスに直接着脱することができるＵＳＢメモリが広く用いられてきている。ＵＳＢメモリでは、内蔵するメモリの記憶領域上にＦＡＴ(File Allocation Tables)と呼ばれるファイルシステムを構築して、記録したデータを管理している。ＦＡＴファイルシステムでは、記録したデータを管理する管理テーブルと、記録したデータとを別々の領域に記録しており、管理テーブルを参照することにより所望のデータにアクセスすることができる。また、データを書き込む際には、データ領域にデータを記録すると共に管理テーブルを更新するようにして、書き込んだデータを管理する。
【０００３】
ここで、管理テーブルと、実際に記憶しているデータとの整合が取れなくなってしまうことがある。特に、ＵＳＢインターフェイスは、装着されたＰＣなどの機器が起動した状態でＵＳＢ機器を抜き差しする、いわゆる活線挿抜に対応する仕様となっているので、ＵＳＢメモリにデータを書き込み中に関わらず、ユーザが誤ってＵＳＢメモリを抜いてしまったり、抜けてしまうことがある。
【０００４】
データの書き込み中にＵＳＢメモリが抜けた場合、データの書き込みが強制的に中断されてしまうので、管理テーブルとデータ領域に記憶されているデータとの論理的整合が取れなくなり、ファイルシステムに記憶したデータを正しく読み取ることができなくなる。また、実際には記憶されていないデータのために管理テーブル上で記憶領域が確保されて、使用可能な記憶領域が減少してしまうこともある。
【０００５】
こうした不具合を回避するため、Ｗｉｎｄｏｗｓ（登録商標）などのＯＳでは、ファイルシステムを修復・診断する機能が標準で与えられており、ユーザからの指示に従ってファイルシステムの修復・診断を実行するようになっている。ファイルシステムの診断を実行すると修復する必要があるか否かが分かる。ファイルシステムの修復を実行するとファイルシステムの不具合を解消し、整合のとれた正常なファイルシステムに戻すことができる。
【０００６】
しかし、ユーザにとっては、いつ、ファイルシステムを修復すべきかが分からないので、修復する必要がないときに修復・診断の処理を行ってしまったり、修復する必要があることに気付かずに、整合のとれていないファイルシステムのまま使用し続けることがあった。
【０００７】
そこで、特許文献１に記載の技術では、ファイルシステムにアクセスしたときに、前回の計算機システムのシステム終了時の状態に応じて、ファイルシステムの修復を実行するようにしている。これによれば、システムが異常終了したときには、データの書き込みが途中で強制終了されてファイルシステムに不具合が生じる可能性が高いので、ファイルシステムの修復が必要と判断することができる。
【０００８】
また、ＵＳＢメモリなどの着脱可能な記録媒体について、ファイルシステムの修復が必要であるか否かを特定のタイミングで判断することもある。例えば、特許文献２に記載の技術では、システムの起動時にメモリの修復が必要であるかを判断している。特許文献３に記載の技術では、メモリの装着時に判断している。特許文献４に記載の技術では、メモリに記憶されたファイルにアクセスした時に判断している。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平５−２５１９号公報
【特許文献２】特開２００３−８５０５６号公報
【特許文献３】特開２００３−３０４４３８号公報
【特許文献４】特開平８−２２７３７２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載の技術では、システムの終了時の状態から判断しているので、システムを起動したまま着脱することができるＵＳＢメモリなどの記録媒体に構築されたファイルシステムに適用することはできない。また、特許文献２に記載の技術においても、システムの起動時（電源ＯＮ時）に判断しているので、同様に、システムを起動したまま着脱する記録媒体のファイルシステムには適切でない。
【００１１】
また、特許文献３及び４の技術では、特定のタイミングで常に診断処理をして修復の必要性を判断しているので、修復する必要性が低いときにも比較的時間を要する診断処理を行ってしまうことになる。そのため、システムの起動が遅くなったり、特定のタイミングで当該処理にシステムのリソースが割かれたりし、正常なファイルシステムを効率よく維持することができない。
【００１２】
そこで、本発明は、着脱可能な記録媒体のファイルシステムの修復に関して効率的かつ適切に判断を行い、正常なファイルシステムを効率よく維持することができるデータ処理装置、データ処理方法、制御プログラムおよびそのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明は、所定のファイルシステムが構築された記録媒体を着脱可能に装着する装着部を有し、前記装着部に装着された記録媒体にデータを書き込むデータ処理装置であって、前記装着部への前記記録媒体の着脱を検出する着脱検出部と、前記着脱検出部が前記記録媒体の抜き出しを検出した場合に、抜き出されたときにデータを書き込んでいた状態を記憶する書き込み状態記憶部と、前記着脱検出部が前記記録媒体の装着を検出した場合に、前記書き込み状態記憶部が記憶した状態に基づいて、前記装着された記録媒体に構築されたファイルシステムについて修復に関する診断を行う必要があるか否かを判断する修復診断判断部と、を備えることを特徴とする。
【００１４】
この構成によれば、着脱検出部が記録媒体の抜き出しを検出した場合、抜き出されたときにデータを書き込んでいた状態から、装着された記録媒体に構築されたファイルシステムを診断する必要があるか否かを判断するので、修復する必要があるか否かを適切に判断することができる。なお、読み出し中および読み出しも書き込みも行っていないときに記録媒体が抜き出された場合は、ファイルシステムに不整合は生じないので、ファイルシステムの修復または診断は不要であると適切に判断することができる。さらに、修復の必要がない場合に無駄な診断を行わないことにより、ファイルシステムの起動を早くすることができる。
【００１５】
ここで、前記書き込み状態記憶部は、前記記録媒体にデータを書き込み中に前記記録媒体が前記装着部から抜き出されたか否かを示す情報を記憶し、前記修復診断判断部は、前記書き込み状態記憶部が記憶した情報を参照して、前記記録媒体にデータを書き込み中に、前記記録媒体が前記装着部から抜き出された場合に、前記装着部に装着された記録媒体のファイルシステムに修復に関する診断が必要と判断することが好ましい。
【００１６】
このようにすれば、書き込み状態記憶部に記憶された情報を参照することにより、データを書き込み中に装着部から抜き出された記録媒体についてファイルシステムの修復診断が必要と判断するので、修復診断を行う必要があるか否かを適切に判断することができる。
【００１７】
ここで、前記書き込み状態記憶部は、前記記録媒体にデータを書き込み中に前記記録媒体が前記装着部から抜き出されたことを検出した場合に、前記抜き出された記録媒体を識別するための識別情報を記憶し、前記修復診断判断部は、前記書き込み状態記憶部が記憶した識別情報と、前記装着された記録媒体の識別情報とが一致する場合に、前記装着部に装着された記録媒体のファイルシステムに修復に関する診断が必要と判断することが好ましい。
【００１８】
このようにすれば、記録媒体がデータ書き込み中に装着部から抜き出された場合に、抜き出された記録媒体の識別情報を記憶しておき、記録媒体が装着されたときには、記憶した識別情報と装着された記録媒体の識別情報とが一致する場合に、記録媒体に構築されたファイルシステムを診断する。データ書き込み中に抜き出された記録媒体を診断して必要があれば修復し、他の記録媒体が装着されても修復が必要と判断しないので、修復する必要があるか否かを記録媒体ごとに適切に判断することができる。
【００１９】
ここで、前記書き込み状態記憶部は、更に、前記記録媒体にデータを書き込み中に前記記録媒体が前記装着部から抜き出されたことを検出した場合に、前記記録媒体に書き込み中であったファイルのファイル名を記憶することが好ましい。
【００２０】
ここで、前記書き込み状態記憶部は、前記記録媒体にデータを書き込み中に前記記録媒体が前記装着部から抜き出されたことを検出した場合に、前記記録媒体に書き込み中であったファイルのファイル名を記憶し、前記修復診断判断部は、前記書き込み状態記憶部が記憶したファイル名と、前記装着部に装着された記録媒体に記憶されているファイルのファイル名とが一致する場合に、前記装着部に装着された記録媒体のファイルシステムに修復に関する診断が必要と判断することが好ましい。
【００２１】
このようにすれば、装着部に装着された記録媒体へのファイルの書き込み中に記録媒体
が抜き出された場合に、書き込み中であったファイル名に一致するファイル名のファイルを記憶している記録媒体だけを修復するので、修復する必要があるか否かを記録媒体ごとに適切に判断することができる。
【００２２】
ここで、前記診断が必要であると判断された記録媒体のファイルシステムを診断する、または、診断及び修復する、ファイルシステム診断修復部を、更に備えることが好ましい。
【００２３】
このようにすれば、診断する必要があると判断された記録媒体のファイルシステムを診断して必要であれば修復することにより、正常なファイルシステムを効率的に維持することができる。
【００２４】
ここで、前記診断が必要であると判断された記録媒体の、前記書き込み状態記憶部が記憶したファイル名に一致するファイル名を有するファイルのデータについて、診断する、または、診断及び修復する、ファイルシステム診断修復部を、更に備えることが好ましい。
【００２５】
このようにすれば、記録媒体が抜き出されたときに書き込んでいたファイルのデータを修復するので、正常なファイルシステムをさらに効率的に維持することができる。
【００２６】
なお、書き込み中に記録媒体が抜き出されたときに書き込んでいたファイルを削除することによってファイルシステムを修復してもよい。この場合は、より簡易にファイルシステムを効率的に維持することができる。
【００２７】
ここで、更に、前記修復に関するメッセージをユーザに通知するメッセージ通知部を備えることが好ましい。
【００２８】
また、本発明の別の側面は、所定のファイルシステムが構築された記録媒体を着脱可能に装着する装着部を有し、前記装着部に装着された記録媒体にデータを書き込むデータ処理装置が、前記装着部への前記記録媒体の着脱を検出する着脱検出部と、前記着脱検出部が前記記録媒体の抜き出しを検出した場合に、抜き出されたときにデータを書き込んでいた状態を記憶する書き込み状態記憶部と、前記着脱検出部が前記記録媒体の装着を検出した場合に、前記書き込み状態記憶部が記憶した状態に基づいて、前記装着された記録媒体に構築されたファイルシステムについて修復を行う必要があるか否かを判断する修復判断部と、を備えることである。
【００２９】
このようにすれば、従来のように、毎回、時間を要する診断処理を行わなくても、修復の必要性を適確に判断することができる。
【００３０】
また、本発明は、方法の発明とすることもできる。すなわち、本発明のデータ処理方法は、所定のファイルシステムが構築された記録媒体を着脱可能に装着する装着部に装着された記録媒体にデータを書き込むデータ処理方法であって、前記装着部への前記記録媒体の着脱を検出する着脱検出工程と、前記記録媒体の抜き出しを検出した場合に、抜き出されたときにデータを書き込んでいた状態を記憶する書き込み状態記憶工程と、前記記録媒体の装着を検出した場合に、前記記憶した状態に基づいて、前記装着された記録媒体に構築されたファイルシステムについて修復に関する診断を行う必要があるか否かを判断する修復診断判断工程と、を備えることを特徴とする。
【００３１】
さらに、本発明は、プログラムまたはそのプログラムを記憶した記録媒体とすることもできる。すなわち、本発明のプログラムは、所定のファイルシステムが構築された記録媒体を着脱可能に装着する装着部に装着された記録媒体にデータを書き込むための制御プログラムであって、前記装着部を備えるデータ処理装置の制御部に、前記装着部への前記記録媒体の着脱を検出する着脱検出工程と、前記記録媒体の抜き出しを検出した場合に、抜き出されたときにデータを書き込んでいた状態を記憶部に記憶する書き込み状態記憶工程と、前記記録媒体の装着を検出した場合に、記憶した状態に基づいて、前記装着された記録媒体に構築されたファイルシステムについて修復に関する診断を行う必要があるか否かを判断する修復診断判断工程と、を実行させることを特徴とする。また、このプログラムを記録した記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＩＣカード、メモリカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
【図面の簡単な説明】
【００３２】
【図１】プリンタのハードウェア構成を示した図。
【図２】ＵＳＢメモリのファイルシステムを説明する図。
【図３】データ処理装置の構成を示した図。
【図４】データを書き込む処理の流れを例示したフローチャート。
【図５】ＵＳＢメモリが抜かれたときの割り込み処理を示すフローチャート。
【図６】ＵＳＢ機器が装着されたときの割り込み処理を示すフローチャート。
【図７】変形例１におけるデータを書き込む際の処理を例示したフローチャート。
【図８】ＵＳＢメモリリスト部を例示した図。
【図９】変形例１のＵＳＢ機器が装着されたときの処理を示すフローチャート。
【図１０】ファイル名を記録した書き込み状態情報Ｉを例示した図。
【発明を実施するための形態】
【００３３】
（第１の実施形態）
以下、本発明に係る第１の実施形態について図面を参照して説明する。
【００３４】
図１は、第１の実施形態のプリンタのハードウェア構成を示した図である。図１に示すように、プリンタ１は、各種の処理を行うデータ処理装置１０と、データ処理装置１０から印刷データを受け取って画像を印刷する印刷エンジン１１と、を備えている。また、プリンタ１にはホストコンピュータ２が接続されている。
【００３５】
データ処理装置１０は、ＣＰＵ２０、ＲＡＭ２１、ＲＯＭ２２、ホストコンピュータ２とのインターフェイスであるホストＩ／Ｆ２３、ＵＳＢＩ／Ｆ２４、ＵＳＢコントローラ２５、エンジンＩ／Ｆ２６およびユーザＩ／Ｆ２７を有している。データ処理装置１０の各構成は相互にデータ授受可能に接続されている。
【００３６】
また、図１に示すように、プリンタ１には、ＵＳＢＩ／Ｆ２４を介して、スキャナ３、内部に読み書き可能な不揮発性のフラッシュメモリを備えた記録媒体であるＵＳＢメモリ（記録媒体）４などのＵＳＢ機器がユーザの必要に応じ適宜接続されるよう構成されている。
【００３７】
ＣＰＵ２０は、データ処理装置１０が行う各種の処理を制御する部分である。ＲＯＭ２２は、フラッシュＲＯＭ、ＥＥＰＲＯＭなどデータを読み書き可能な不揮発性のメモリである。ＲＡＭ２１は、各種の処理のワーキングメモリとして用いられる汎用のメモリであり、ホストコンピュータ２から送信された印刷対象のデータなどが記憶される。
【００３８】
ＵＳＢＩ／Ｆ（装着部）２４は、スキャナ３やＵＳＢメモリ４などの機器が実際に接続されるコネクタ部分であり、外部のＵＳＢ機器が着脱自在に接続される。ＵＳＢＩ／Ｆ２４に接続された機器とデータ処理装置１０とは、コネクタ内のデータを送受信するデータ線、データ処理装置１０からＵＳＢ機器に電源を供給する電源供給線などを介して電気的に接続される。
【００３９】
ＵＳＢコントローラ２５は、ＵＳＢＩ／Ｆ２４に接続された機器とのデータの送受信を制御している。
【００４０】
ＵＳＢＩ／Ｆ２４に装着されたＵＳＢメモリ４は、ＵＳＢＩ／Ｆ２４に備わる電源供給線より供給された電源を受けてメモリ装置として駆動する。そして、ＵＳＢコントローラ２５がデータ線を通じてＵＳＢメモリ４にデータを送受信することにより、データ処理装置１０はＵＳＢメモリ４に記憶されているデータに対して、読み込み・書き込みなどの処理を行う。
【００４１】
また、ＵＳＢコントローラ２５は、ＵＳＢＩ／Ｆ２４に備わる電源供給線の電圧を監視しており、ＵＳＢメモリ４を着脱により生じる電源供給線の電圧変動により、ＵＳＢ機器の着脱を検出する。ＵＳＢ機器の着脱を検出すると、ＵＳＢコントローラ２５は着脱があった旨の着脱信号をＣＰＵ２０に送信し、ＣＰＵ２０は着脱信号を受け取ると、後述する割り込み処理を実行する。なお、着脱信号では、装着されたときの信号と抜き出されたときの信号とは区別されている。
【００４２】
さらに、ＵＳＢコントローラ２５は、ＵＳＢＩ／Ｆ２４に接続された機器からＵＳＢ機器の識別情報を読み出し、プリンタ内のＲＡＭ２１やＲＯＭ２２に記憶させる処理も行う。識別情報としては、例えば、製品名、メーカ名、製造番号などの情報がある。
【００４３】
エンジンＩ／Ｆ２６は、データ処理装置１０と印刷エンジン１１とのインターフェイスを司る部分である。エンジンＩ／Ｆ２６には、図示していないが、データを一時的に格納するメモリが備えられ、ＲＡＭ２１から読み出した印刷対象データをいったん内部のメモリに蓄積して、描画処理、色変換処理、ハーフトーン処理などの処理（データ解析・イメージ生成）を施し、生成した印刷データを印刷エンジン１１に送信する。
【００４４】
また、ユーザＩ／Ｆ２７は、当該プリンタ１のユーザとのインターフェースであり、操作パネル、表示パネル等で構成される。
【００４５】
なお、ホストＩ／Ｆ２３、ＵＳＢコントローラ２５およびエンジンＩ／Ｆ２６は、具体
的には、ＡＳＩＣ(Application Specific Integrated Circuit)で構成されている。
【００４６】
次に、ＵＳＢメモリ４のファイルシステムについて説明する。本実施形態に係るＵＳＢメモリ４にはファイルシステムとしてはＦＡＴファイルシステムが用いられている。図２に示すように、ＦＡＴファイルシステムにおけるファイルシステムＦＳは、ＦＡＴ、ルートディレクトリおよびデータ領域から構成される。
【００４７】
データ領域は、多数のクラスタから構成され、クラスタ番号が順番に付与されている。クラスタは、記録したデータを管理するための処理単位であり、１つのクラスタに記録することができるデータ容量は予め決められている。１クラスタより大きいデータ容量を有するファイルについては、複数のクラスタに分けてデータが記録される。
【００４８】
ルートディレクトリには、記憶しているファイルのファイル名、作成日時、ファイル容量およびそのファイルのデータを記憶しているクラスタの先頭のクラスタ番号が記録されている。
【００４９】
ＦＡＴは、ファイルとして格納したデータが、どのクラスタにどのような順番に格納れているかを管理する管理テーブルである。ＦＡＴには、データを格納したクラスタごとにレコードが記録されている。レコードには、次のデータを格納しているクラスタの番号が格納され、データが格納された最後のクラスタに対応するレコードには、最終クラスタであることを示すコードが格納されている。
【００５０】
ファイルのデータの読み出しは、まず、ルートディレクトリからファイルを記録している先頭クラスタを読み出し、先頭クラスタ以降のクラスタについてはＦＡＴのレコードを辿ってファイルの最終クラスタまでデータを順番に読み出すことにより行う。
【００５１】
一方、ファイルを書き込む際には、データが記録されていないクラスタにファイルのデータを記録すると共に、記録したファイルのデータに対応するルートディレクトリおよびＦＡＴを更新することにより、ＦＡＴ、ルートディレクトリおよびデータ領域間の整合をとっている。
【００５２】
以上に、述べたように、ファイルシステムＦＳは、ＦＡＴ、ルートディレクトリおよびデータ領域に論理的整合が取れている場合に正常に機能するものであり、さもなければ、正しいデータにアクセスすることができない。
【００５３】
とりわけ、ファイルシステムＦＳにデータを書き込んでいる最中に、ファイルシステムＦＳへのアクセスが遮断されると、ＦＡＴ、ルートディレクトリおよびデータ領域間の整合が壊れる。換言すると、ファイルシステムＦＳが構築されているＵＳＢメモリ４が、データ書き込み中にＵＳＢＩ／Ｆ２４から抜き出されると、ＵＳＢメモリ４のファイルシステムＦＳは正しく機能しなくなってしまう。
【００５４】
そこで、本発明のデータ処理装置１０は、データの書き込み中に抜き出されたＵＳＢメモリ４について、ファイルシステムＦＳの論理的整合を正す、修復処理を行う。
【００５５】
次に、データ処理装置１０の機能構成について説明する。図３は、データ処理装置１０の機能構成を示した図である。図３に示すように、データ処理装置１０は、ＵＳＢデバイスドライバ（ＵＳＢメモリ制御部）３０、書き込み状態記憶部４０、印刷ジョブ受信制御部５０、印刷ジョブのデータ解析・イメージ生成部６０、および印刷制御部７０を備える。
【００５６】
さらに、ＵＳＢデバイスドライバ３０は、ＵＳＢデバイス着脱検出部３１、ＵＳＢメモリ識別情報読み出し・記憶制御部３２、ＵＳＢメモリへの書き込み／読み出し制御部３３、障害発生情報制御部３４、ＵＳＢメモリ修復診断判断部３５、ＵＳＢメモリファイルシステム診断・修復部３６、および、ＵＳＢメモリファイルシステムの修復に関するメッセージ通知部３７を備えている。
【００５７】
ＵＳＢデバイスドライバ３０は、ＵＳＢ機器の識別情報からＵＳＢ機器を識別して、接続されたＵＳＢ機器がＵＳＢメモリ４などの記録媒体であれば、記録媒体に構築されたファイルシステムを認識して、ファイルシステムへのアクセスを制御する。また、ＵＳＢＩ／Ｆ２４にＵＳＢ機器が着脱されたときに、その着脱を検出する。さらに、本データ処理装置１０の特徴である、ＵＳＢメモリ４に構築されたファイルシステムの修復に関する判断に係る処理を司る。なお、本ＵＳＢデバイスドライバ３０は、前述したＣＰＵ２０、ＲＡＭ２１、ＲＯＭ２２、ＵＳＢＩ／Ｆ２４、およびＵＳＢコントローラ２５等で構成される。
【００５８】
ＵＳＢデバイス着脱検出部３１は、ＵＳＢＩ／Ｆ２４にＵＳＢ機器が着脱されたときに、その着脱を検出する部分である。ＵＳＢメモリ識別情報読み出し・記憶制御部３２は、ＵＳＢＩ／Ｆ２４にＵＳＢメモリ４が装着された際に、そのＵＳＢメモリ４の識別情報、すなわち、「製造番号」、「メーカ名」、「製品名」などの固有情報を、ＵＳＢメモリ４から読み出し、書き込み状態記憶部４０の所定の領域に記憶する部分である。
【００５９】
ＵＳＢメモリへの書き込み／読み出し制御部３３は、装着されたＵＳＢメモリ４に構築されたファイルシステムを認識して、ファイルシステムへのアクセスを制御する部分である。また、ＵＳＢメモリ４へのファイルの書き込み時における書き込み状態記憶部４０の制御もここが行う。また、障害発生情報制御部３４は、ＵＳＢメモリ４へのファイルの書き込み中に当該ＵＳＢメモリ４が抜き出されてしまったことを知らせる障害発生情報を書き込み状態記憶部４０に記憶する部分である。
【００６０】
ＵＳＢメモリ修復診断判断部３５は、ＵＳＢメモリ４がＵＳＢＩ／Ｆ２４に装着されたときに、データ処理装置１０の書き込み状態記憶部４０の情報に基づき、当該ＵＳＢメモリ４のファイルシステムＦＳについて修復に関する診断処理を行なう必要があるか否かを判断する。
【００６１】
ＵＳＢメモリファイルシステム診断・修復部３６は、前記ＵＳＢメモリ修復診断判断部３５により診断が必要であると判断された場合に、ＵＳＢメモリ４のファイルシステムＦＳの診断処理を実行し、その結果、修復が必要である場合に、当該ファイルシステムＦＳの修復処理を行う。
【００６２】
ＵＳＢメモリファイルシステムの修復に関するメッセージ通知部３７は、ＵＳＢデバイスドライバ３０が、装着されたＵＳＢメモリ４のファイルシステムＦＳに修復のための診断が必要だと判断した場合に、ユーザＩ/Ｆ２７にファイルシステムＦＳの診断が必要であることを通知する。また、当該診断処理中や修復処理中に、それぞれ、処理中である旨のメッセージを通知する。
【００６３】
書き込み状態記憶部４０は、ＵＳＢデバイスドライバ３０が、ＵＳＢメモリ４にデータを書き込み中に、ＵＳＢメモリ４が抜き出されたかどうかを示す情報を保持する。当該記憶部に含まれる、一つの領域として、書き込み中情報領域を備える。本領域に収める情報は、「０」か「１」かの１ビットのフラグであり、書き込み中であれば「１」、書き込みが終了したか書き込み中でないときには「０」であるよう制御される。
【００６４】
また、次の領域として、障害発生情報領域を備える。本領域に収める情報も「０」か「１」かの１ビットのフラグであり、ＵＳＢメモリ４が抜き出されたときに、上記書き込み中情報が「１」であれば「１」を保持する。すなわち、障害発生情報は、データの書き込み中にＵＳＢメモリ４が抜き出されたか否かの状態を示した情報である。本情報の初期値は「０」とし、本情報が不要となった時点でも「０」とするように制御する。
【００６５】
さらに、書き込み状態記憶部４０には、ＵＳＢメモリ４の固有情報用の領域を備えてもよい。具体的には、その時点でプリンタ１に装着されているＵＳＢメモリ４の固有情報を記憶する領域（装着メモリ部）と、ＵＳＢメモリ４が書き込み中に抜き出されたときに、当該ＵＳＢメモリ４の固有情報をリストとして保持する領域（ＵＳＢメモリリスト部）が備えられる。なお、書き込み状態記憶部４０は、ＲＯＭ２２、ＲＡＭ２１等で構成される。
【００６６】
印刷ジョブ受信制御部５０、印刷ジョブのデータ解析・イメージ生成部６０、および印刷制御部７０は、それぞれ、本プリンタ１が印刷要求を受けた際に、当該印刷ジョブをホストコンピュータ２などから受信する処理を司る部分、受信した印刷ジョブのデータを解析しイメージデータを生成する部分、および、生成されたデータに基づいて印刷エンジン１１に印刷指示を行なう部分である。これらは、ＣＰＵ２０、ＲＡＭ２１、ＲＯＭ２２、ホストＩ／Ｆ２３、およびエンジンＩ／Ｆ２６等で構成される。
【００６７】
なお、図３に示したデータ処理装置１０の構成は、ＣＰＵ２０が、ＲＯＭ２２に格納された制御プログラムを読み出して、実行することにより処理を行うようにしている。すなわち、ＣＰＵ２０が制御プログラムを実行することにより、データ処理装置１０の各構成が機能する。この制御プログラムは、予めＲＯＭ２２に格納されていることとしてもよいし、例えば、ＵＳＢメモリ４やメモリカードなどのコンピュータ読み取り可能な記録媒体によって外部から供給され、ＲＯＭ２２に格納されるものとしてもよい。
【００６８】
次に、データ処理装置１０が行う処理について、フローチャートに従って詳細に説明する。図４は、ＵＳＢメモリ４にデータを書き込む処理の流れを例示したフローチャートである。例えば、ホストコンピュータ２から、印刷ＪＯＢのファイルを印刷するとともにＵＳＢメモリ４に保存する指示がなされたり、ユーザＩ/Ｆ２７から、スキャナ３が取り込んだ画像データファイルを、ＵＳＢメモリ４に書き込む指示が与えられると、ＵＳＢデバイスドライバ３０がファイル書き込み処理を開始する。
【００６９】
まず、ステップＳ１０では、実際のデータ書き込みに先立って、ＵＳＢメモリへの書き込み／読み出し制御部３３が、書き込み状態記憶部４０の書き込み中情報領域に、データの書き込み中であることを示す書き込み中情報を設定する。具体的には、書き込み中情報として、書き込み中であることを表す「１」のフラグをＲＡＭ２１に格納する。なお、本実施形態では、各種情報およびフラグをＲＡＭ２１の所定の領域に格納するものとして説明するが、ＲＯＭ２２またはハードディスク（図示なし）などの不揮発性のメモリに格納するようにしてもよい。
【００７０】
次に、ステップＳ１１では、ＵＳＢメモリへの書き込み／読み出し制御部３３は、ＵＳＢメモリ４のファイルシステムＦＳにアクセスして、書き込み対象のファイルのデータを書き込む。
【００７１】
そして、ステップＳ１１−１では、ＵＳＢメモリへの書き込み／読み出し制御部３３がファイルを書き込みながら書き込み中エラーが発生したか否かを監視する。具体的には、当該書き込み処理が、所定の単位毎に複数回の処理で実行されるので、毎回、その単位データの書き込みが問題なく完了したか否かにより、書き込み中エラーが発生したか否かを判断する。そして、書き込みが正常に完了せずエラー発生と判断した場合には、処理がステップＳ１２に移行する。
【００７２】
次に、ステップＳ１２では、ＵＳＢメモリへの書き込み／読み出し制御部３３は、書き込み中エラーが発生した原因が、ＵＳＢメモリ４への書き込み中に当該メモリの抜き出しがあったことによるものであるか否かを判断する。ここでは、後述する障害発生情報を参照して障害発生情報のフラグが「１」である場合（Ｙｅｓ）、書き込み中にメモリの抜き出しがあったと判断してステップＳ１３に処理が移行する。なお、ＵＳＢメモリ４への書き込み中に当該メモリの抜き出しがあった場合には、前述の通り、ＵＳＢメモリ４のファイルシステムＦＳに障害が発生する可能性が高いと判断される。
【００７３】
なお、障害発生情報は、後述する（割り込み）処理において設定される。障害発生情報は、書き込み中情報が「１」のときにＵＳＢメモリ４が抜き取られたとき、ＵＳＢデバイスドライバ３０により「１」にセットされる情報である。本情報が「１」であれば、ＵＳＢメモリ４のファイルシステムに障害が発生した可能性が高いことを示す。
【００７４】
ステップＳ１３では、ＵＳＢメモリへの書き込み／読み出し制御部３３は、書き込み中情報のフラグを「１」のままとし、障害発生情報を「０」に初期化して、図４に示す書き込み処理を終了する。
【００７５】
一方、ステップＳ１１−１において、エラーが発生していないときには、ステップＳ１１−２に移行し、ＵＳＢメモリへの書き込み／読み出し制御部３３は、書き込むデータが残っているときには、ステップＳ１１の処理に戻る。書き込むデータがなければ、無事に書き込み対象ファイルの全データがＵＳＢメモリ４に書き込まれたことになり、ステップＳ１４に移行する。ステップＳ１４では、データの書き込み中に障害が発生することなく、書き込み処理を終えたので、書き込み中情報のフラグを「０」に初期化して、図４の書き込み処理を終了する。
【００７６】
また、ステップＳ１２で、エラーが発生しているもののＵＳＢメモリ４が抜き出されていないときにはステップＳ１５に移行する。この場合には、上記エラーの原因として、例えば、メモリオーバーや、書き込み禁止のＵＳＢメモリ４であったなどが考えられる。そして、この場合には、その旨のエラーメッセージをユーザＩ／Ｆ２７へ通知するなどのエラー処理を実行する。また、ここでは、ＵＳＢメモリ４内のＦＡＴシステムには矛盾は生じないため、ＵＳＢメモリへの書き込み／読み出し制御部３３は、書き込み中情報フラグを「０」に戻したのち、ファイル書き込み処理を終了する。
【００７７】
次に、ＵＳＢメモリ４が抜き出されたときの（割り込み）処理について説明する。ＵＳＢメモリ４が抜き出された場合、前記ＵＳＢデバイス着脱検出部が、ＵＳＢメモリ４が抜き出されたことを検出すると（着脱検出工程）、前記障害発生情報制御部３４は、割り込み処理を実行する。以下、図５に示したフローチャートに従って説明する。
【００７８】
ＵＳＢメモリ４が抜き出されたときの割り込み処理が開始されると、まず、ステップＳ２０で、書き込み状態記憶部４０から、すなわち、ＲＡＭ２１の所定の領域から、書き込み中情報を読み出す。
【００７９】
次に、ステップＳ２１では、書き込み中にＵＳＢメモリ４が抜けたか否かを判断する。前述したステップＳ１０では、書き込み中であることを示すフラグを「１」としたので、書き込み中情報のフラグが「１」であれば書き込み中にＵＳＢメモリ４が抜き出されたと判断して（Ｙｅｓ）、ステップＳ２２に移行する。フラグが「１」でなければ（Ｎｏ）、ＵＳＢメモリ４が抜き出されたのは書き込み中ではないと判断して、割り込み処理を終了する。
【００８０】
ステップＳ２２では、データの書き込み中にＵＳＢメモリ４が抜き出されファイルシステムＦＳに障害が発生している可能性が高いことを示す障害発生情報を記憶する。障害発生情報としては、具体的には、障害が発生した可能性が高いことを表す「１」のフラグを、ＲＡＭ２１の所定の領域に格納する。ステップＳ２２の処理を終了すると、割り込み処理を終了する。
【００８１】
ここで、ファイル書き込み処理中に、ＵＳＢメモリ４が抜き出されたときの割り込み処理が発生した場合は、割り込み処理を終えるとファイル書き込み処理に戻って、ＣＰＵ２０は、割り込まれたときに行っていた処理の続きの処理を行う。例えば、ファイル書き込み処理におけるデータ書き込みの処理中（ステップＳ１１）にＵＳＢメモリ４が抜き出された場合、書き込み中情報のフラグが「１」の状態で割り込み処理が実行されるので、割り込み処理では障害発生情報のフラグとして「１」を設定する。割り込み処理を終了すると、障害発生情報のフラグが「１」の状態で、ファイル書き込み処理に戻り、ステップＳ１１においてＵＳＢメモリ４が抜き出されて、データを書き込むことができなくなっているので、次のステップＳ１２に進む。ステップＳ１２では、障害発生情報が「１」であるので、ステップＳ１３に進み、書き込み中情報のフラグが「１」の状態で、ファイル書き込み処理を終了する。
【００８２】
一方、ＵＳＢメモリ４にデータを書き込んでいないときにＵＳＢメモリ４が抜き出された場合、書き込み中情報のフラグは初期値「０」であるので、割り込み処理では障害発生情報は初期値である「０」のフラグのまま割り込み処理を終了する。
【００８３】
次に、ＵＳＢメモリ４などのＵＳＢ機器が装着されたときに行う処理について説明する。ＵＳＢ機器が装着された場合、ＵＳＢデバイスドライバ３０は、ＵＳＢデバイス着脱検出部３１からの着脱信号を受けて、図６に示す割り込み処理を実行する。
【００８４】
装着されたときの割り込み処理を開始すると、まず、ステップＳ３０において、ＵＳＢデバイス着脱検出部３１は、ＵＳＢメモリ４の識別情報を参照して、装着された機器がＵＳＢメモリ４か否かを判断する。装着された機器がＵＳＢメモリ４であれば（Ｙｅｓ）、ステップＳ３１に進む。装着された機器がＵＳＢメモリ４でなければ（Ｎｏ）、割り込み処理を終了する。
【００８５】
次に、ステップＳ３１では、ＵＳＢメモリ修復診断判断部３５がデータ書き込み中にＵＳＢメモリ４が抜き出されたか否かを判断する。ここでは、ＣＰＵ２０が、ＲＡＭ２１から書き込み中情報のフラグの値を読み出し、書き込み中情報のフラグが「１」であれば（Ｙｅｓ）、データ書き込み中にＵＳＢメモリ４が抜き出されたので、装着されたＵＳＢメモリ４のファイルシステムＦＳについて、修復に関する診断を行う必要があると判断して、ステップＳ３１−１に進む。一方、読み出した書き込み中情報のフラグが「０」であれば（Ｎｏ）、データ書き込み中にＵＳＢメモリ４が抜き出されていないのでファイルシステムＦＳを修復する必要がないと判断して、処理を終了する。
【００８６】
ステップＳ３１−１では、ＵＳＢメモリファイルシステム診断・修復部３６が、装着されたＵＳＢメモリ４のファイルシステムＦＳについて診断処理を実行する。その結果、ファイルシステムＦＳに論理的不整合が生じているなどファイルシステムＦＳの修復が必要であると判断された場合には（ステップＳ３１−２のＹｅｓ）、ステップＳ３２に進む。一方、診断結果が修復の必要性がないことを示す場合には（ステップＳ３１−２のＮｏ）、ステップＳ３３に進む。
【００８７】
ステップＳ３２では、ＵＳＢメモリファイルシステム診断・修復部３６は、ＵＳＢメモリ４のファイルシステムＦＳを修復する。具体的には、ＣＰＵ２０は、ＵＳＢメモリ４のファイルシステムＦＳにアクセスして、ＦＡＴ、ルートディレクトリおよびデータ領域間に論理的整合が取れていないデータを整合の取れたデータに書き換えることにより、ファイルシステムＦＳを修復する。
【００８８】
次に、ステップＳ３３では、ＵＳＢメモリファイルシステム診断・修復部３６は、書き込み中情報のフラグを「０」に初期化して、割り込み処理を終了する。
【００８９】
なお、ステップＳ１０、ステップＳ１４、およびステップＳ１５は書き込み状態記憶工程に、ステップＳ３０は着脱検出工程、ステップＳ３１は修復診断判断工程、に相当する。
【００９０】
以上のようにして、データ処理装置１０は、データの書き込み中にＵＳＢＩ／Ｆ２４から抜き出されたＵＳＢメモリ４が、再びＵＳＢＩ／Ｆ２４に装着されたときに、ファイルシステムＦＳの修復がなされるようにしている。また、読み出し中に記録媒体が抜き出された場合は、ファイルシステムに不整合は生じないので、ファイルシステムの修復または診断を行っていない。
【００９１】
以下、第１の実施形態における効果を記載する。
【００９２】
（１）データの書き込み中にＵＳＢＩ／Ｆ２４から抜き出されたＵＳＢメモリ４のファイルシステムＦＳについて、修復のための診断を行う必要があると判断するので、ファイルシステムＦＳを修復する必要があるＵＳＢメモリ４を正確に知ることができる。
【００９３】
（２）データの書き込み中にＵＳＢＩ／Ｆ２４から抜き出されて、ファイルシステムＦＳに不具合が発生した可能性の高いＵＳＢメモリ４に絞って修復のための診断処理をしている。したがって、正常なファイルシステムＦＳを効率的に維持することができる。
【００９４】
（３）ＵＳＢメモリ修復診断判断部３５およびＵＳＢメモリファイルシステム診断・修復部３６が修復する必要があるファイルシステムＦＳを判断しているので、ユーザが判断することなく、ＵＳＢメモリ４のファイルシステムを適切な状態に維持することができる。
【００９５】
（４）ＵＳＢメモリ４をプリンタ１に装着したときに、ファイルシステムＦＳの修復のための診断を行う必要があるか否かを判断するので、プリンタ１など装置が起動中に着脱が行われる記憶媒体について適切なタイミングで上記診断を行うことができる。
【００９６】
以上、本発明の一実施形態について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施することもできる。以下、変形例を挙げて説明する。
【００９７】
（変形例１）
当該変形例は、データを書き込み中にＵＳＢメモリ４が抜き出された場合に、その状態を、前述した書き込み中情報ではなく、抜き出されたＵＳＢメモリ４の識別情報で示そうとするものである。従って、ここでは、ＵＳＢメモリ４が抜き出されたときに、ＵＳＢメモリ４自体の識別情報を記録するようにする。
【００９８】
図７は、ＵＳＢメモリ４にデータを書き込む際の処理を例示したフローチャートである。
【００９９】
図４に基づいて説明した場合と同様に、例えば、ホストコンピュータ２から、印刷ＪＯＢのファイルを印刷するとともにＵＳＢメモリ４に保存する指示がなされたり、ユーザＩ/Ｆ２７から、スキャナ３が取り込んだ画像データファイルを、ＵＳＢメモリ４に書き込む指示が与えられると、ＵＳＢデバイスドライバ３０がファイル書き込み処理を開始する。
【０１００】
まず、ステップＳ４０では、ＵＳＢメモリへの書き込み／読み出し制御部３３が、ＵＳＢメモリ４のファイルシステムＦＳにアクセスして、書き込み対象のファイルのデータを書き込む。
【０１０１】
そして、ステップＳ４１では、ＵＳＢメモリへの書き込み／読み出し制御部３３がファイルを書き込みながら書き込み中エラーが発生したか否かを監視する。具体的には、当該書き込み処理が、所定の単位毎に複数回の処理で実行されるので、毎回、その単位データの書き込みが問題なく完了したか否かにより、書き込み中エラーが発生したか否かを判断する。そして、書き込みが正常に完了せずエラー発生と判断した場合には、処理がステップＳ４３に移行する。
【０１０２】
次に、ステップＳ４３では、ＵＳＢメモリへの書き込み／読み出し制御部３３は、書き込み中エラーが発生した原因が、ＵＳＢメモリ４への書き込み中に当該メモリの抜き出しがあったことによるものであるか否かを判断する。具体的には、前述したＵＳＢデバイス着脱検出部３１によって当該ＵＳＢメモリ４の抜き出しが検出されるので、ＵＳＢメモリへの書き込み／読み出し制御部３３が、そのときの状態をＵＳＢデバイス着脱検出部３１に問い合わせることにより、上記判断がなされる。
【０１０３】
そして、書き込み中にメモリの抜き出しがあったと判断した場合には（Ｙｅｓ）、ステップＳ４５に処理が移行する。なお、この場合には、前述の通り、ＵＳＢメモリ４のファイルシステムＦＳに障害が発生する可能性が高いと判断される。
【０１０４】
ステップＳ４５では、ＵＳＢメモリへの書き込み／読み出し制御部３３は、当該書き込み中に抜き出されたＵＳＢメモリ４の識別情報（固有情報）を、前述した書き込み状態記憶部４０のＵＳＢメモリリスト部に書き込む。具体的には、後述するＵＳＢメモリ４の装着時の処理において、装着したＵＳＢメモリ４の識別情報が、書き込み状態記憶部４０の、その時点でプリンタ１に装着されているＵＳＢメモリ４の固有情報を記憶する領域（装着メモリ部）に書き込まれているので、その固有情報をＵＳＢメモリリスト部に書き込む。
【０１０５】
図８は、そのＵＳＢメモリリスト部を例示した図である。ここに示す例では、ＵＳＢメモリ４の「製造番号」、「メーカー名」、および「製品名」の固有情報を当該メモリの識別情報として、書き込み状態情報Ｉとしてリスト形式で記録している。なお、この識別情報として用いる固有情報は一例であって、記録する固有情報は、これらのうちのいずれかの一つ又は二つでも良いし、他の情報を用いてもよい。
【０１０６】
このようにして、ＵＳＢメモリリスト部への書き込みが行われると、図７に示す書き込み処理を終了する。
【０１０７】
一方、ステップＳ４１において、エラーが発生していないときには、ステップＳ４２に移行し、ＵＳＢメモリへの書き込み／読み出し制御部３３は、書き込むデータが残っているときには、ステップＳ４０の処理に戻る。書き込むデータがなければ、無事に書き込み対象ファイルの全データがＵＳＢメモリ４に書き込まれたことになり、図７の書き込み処理を終了する。
【０１０８】
また、ステップＳ４３で、エラーが発生しているもののＵＳＢメモリ４が抜き出されていないときにはステップＳ４４に移行する。この場合には、前述の通り、上記エラーの原因として、例えば、メモリオーバーや、書き込み禁止のＵＳＢメモリ４であったなどが考えられるが、ＵＳＢメモリへの書き込み／読み出し制御部３３は、その旨のエラーメッセージをユーザＩ／Ｆ２７へ通知するなどのエラー処理を実行する。そして、当該ファイル書き込み処理を終了する。
【０１０９】
次に、変形例１における、ＵＳＢメモリ４などのＵＳＢ機器が装着されたときの処理について説明する。ＵＳＢ機器が装着された場合、ＵＳＢデバイスドライバ３０は、ＵＳＢデバイス着脱検出部３１からの着脱信号を受けて、図９に示す割り込み処理を実行する。
【０１１０】
装着されたときの割り込み処理を開始すると、まず、ステップＳ５０において、ＵＳＢデバイス着脱検出部３１は、ＵＳＢメモリ４の識別情報を参照して、装着された機器がＵＳＢメモリ４か否かを判断する。装着された機器がＵＳＢメモリ４であれば（Ｙｅｓ）、ステップＳ５１に進む。装着された機器がＵＳＢメモリ４でなければ（Ｎｏ）、割り込み処理を終了する。
【０１１１】
次に、ステップＳ５１では、ＵＳＢメモリ識別情報読み出し・記憶制御部３２が、装着されているＵＳＢメモリ４の識別情報（前述した固有情報）を読み出して、前述した書き込み状態記憶部４０の装着メモリ部に書き込む。
【０１１２】
次にステップＳ５２では、ＵＳＢメモリ修復診断判断部３５が、装着されたＵＳＢメモリ４がデータ書き込み中に抜き出されたものであるか否かを判断する。具体的には、上記装着メモリ部に書き込まれている固有情報を読み出し、その情報と一致する情報が、前述したＵＳＢメモリリスト部に保存されているか否かをチェックする。換言すれば、当該読み出した固有情報とＵＳＢメモリリスト部に保存されている固有情報とで一致するものがあるか否かをチェックする。
【０１１３】
その結果、一致するものがあれば（Ｙｅｓ）、すなわち、装着されたＵＳＢメモリ４の識別情報がＵＳＢメモリリスト部に保存されていれば、ステップＳ５３に移行する。一方、一致するものがなければ（Ｎｏ）、割り込み処理を終了する。
【０１１４】
そして、ステップＳ５３に移行した場合には、装着されているＵＳＢメモリ４は、ファイル（データ）を書き込み中に抜き出されているので、修復の必要性が高く、修復のための診断を行う必要がある。従って、ＵＳＢメモリファイルシステムの修復に関するメッセージ通知部３７は、ユーザＩ／Ｆ２７に、修復のための診断を行う必要がある旨のメッセージを通知する。その結果、ユーザＩ／Ｆ２７の表示パネル等に当該メッセージが表示される。
【０１１５】
そして、ステップＳ５４では、表示されたメッセージに対して、ユーザＩ／Ｆ２７の操作ボタン等を用いたユーザの応答がなされるが、それが修復（のための診断）を希望するものである場合には（Ｙｅｓ）、ステップＳ５５に進む。一方、修復を希望しない場合には（Ｎｏ）、割り込み処理を終了する。なお、ユーザが修復を希望しなかった場合には、後述するステップＳ５８に進み、ＵＳＢメモリリスト部から当該ＵＳＢメモリ４の固有情報を削除してもよい。この場合には、削除する前に、ユーザに対して「今後、同様の確認はしないでよいですか？」などのメッセージを表示して、削除の確認を行うようにすることがより望ましい。確認が得られて、ＵＳＢメモリリスト部から削除されると、再度、当該ＵＳＢメモリ４について書き込み中の抜き出しが起こらない限り、修復のための診断が必要である旨の前記メッセージは表示されないようになる。
【０１１６】
ステップＳ５５では、ＵＳＢメモリファイルシステム診断・修復部３６が、装着されたＵＳＢメモリ４のファイルシステムＦＳについて診断処理を実行する。また、ＵＳＢメモリファイルシステムの修復に関するメッセージ通知部３７は、診断中である旨のメッセージをユーザＩ／Ｆ２７に通知し、当該メッセージがユーザに表示される。一般的に、この診断処理には比較的長い時間を要するので、当該メッセージの表示は有効的である。
【０１１７】
その結果、ファイルシステムＦＳに論理的不整合が生じているなどファイルシステムＦＳの修復が必要であると判断された場合には（ステップＳ５６のＹｅｓ）、ステップＳ５７に進む。一方、診断結果が修復の必要性がないことを示す場合には（ステップＳ５６のＮｏ）、ステップＳ５８に進む。
【０１１８】
ステップＳ５７では、ＵＳＢメモリファイルシステム診断・修復部３６が、前述の通り、ＵＳＢメモリ４のファイルシステムＦＳを修復する。また、ＵＳＢメモリファイルシステムの修復に関するメッセージ通知部３７は、修復中である旨のメッセージをユーザＩ／Ｆ２７に通知し、当該メッセージがユーザに表示される。
【０１１９】
次に、ステップＳ５８では、ＵＳＢメモリファイルシステム診断・修復部３６は、ＵＳＢメモリリスト部から当該ＵＳＢメモリ４の固有情報を削除して、割り込み処理を終了する。
【０１２０】
なお、上記ステップＳ５６において、修復が必要であるか否かの診断結果をユーザに表示するようにしても良い。さらに、修復が必要であるとの診断結果であった場合に、修復するか否か、対象のファイルを修復するかそれとも削除するかなど、対処法をユーザに選択させても良い。
【０１２１】
また、上記ステップＳ５３のメッセージ通知を行わなくても良い。この場合には、ユーザに確認することなく、診断処理（ステップＳ５５）に移行する。
【０１２２】
以上説明したように、変形例１では、ＵＳＢメモリリスト部に残された「製造番号」、「メーカ名」、「製品名」などの固有情報と一致するＵＳＢメモリ４についてのみ修復の対象とされる。従って、複数個のＵＳＢメモリ４が接続されうる使用環境であっても、書き込み中に抜かれたＵＳＢメモリ４についてのみ修復のための処理が行われ、修復する必要があるファイルシステムＦＳがより正確に判断され、ファイルシステムＦＳを正常に維持するための処理をより効率的に行うことができる。
【０１２３】
また、変形例１では、図５に基づいて説明したＵＳＢメモリ４が抜き出されたときの割り込み処理は不要であり、第１の実施形態の場合よりも冗長性のない効率的な制御を行うことができる。なお、第１の実施形態の場合にも、この変形例１のように、ＵＳＢメモリ４にデータを書き込み中にエラーが発生した際の、当該メモリが抜き出されたか否かの判断を、そのときに、ＵＳＢメモリへの書き込み／読み出し制御部３３がＵＳＢデバイス着脱検出部３１に問い合わせることにより行っても良い。
【０１２４】
また、変形例１では、修復のための診断処理の必要性、診断処理中であること、および修復処理中であることがユーザに報知されるので、ユーザは、使用するＵＳＢメモリ４の状況、処理状態を正しく理解することができ、処理完了を安心して待つことができる。なお、これらのユーザへの通知は、この変形例１の場合に限られるものではなく、第１の実施形態の場合などにも適用することができる。
【０１２５】
（変形例２）
データを書き込み中にＵＳＢメモリ４が外されたときに、書き込み中であったファイルの名称を記録するようにしてもよい。例えば、図１０に示すように、書き込み中にメモリが抜かれることにより障害が発生した可能性の高いファイル名を、書き込み状態記憶部４０にファイルを記録したパスと共に書き込み状態情報Ｉとして記録しておく。
【０１２６】
この記録したファイル名は、まず、診断および修復の対象を限定する意味で使用することができる。前述した第１の実施形態、変形例１において、メモリを再接続した際に、診断処理の必要が有ると判断された場合に、その後の診断処理、修復処理において、当該記憶したファイル名により修復する必要があるファイル名を知ることができるので、当該記録したパスにあるファイルだけを処理の対象とすることができる。したがって、修復や診断に要する処理時間をより短くすることができる。なお、当該ファイルを削除することによってファイルシステムを修復してもよい。
【０１２７】
また、ＵＳＢメモリ４を装着した際の、診断処理が必要であるか否かの判断を、この記録したファイル名だけで行っても良い。すなわち、装着時に、書き込み状態情報Ｉのファイル名と一致するファイルを記録した記録媒体であれば、診断処理の必要があると判断するようにすることができる。かかる場合には、このファイル名を、第１の実施形態における書き込み中情報、変形例１におけるメモリの識別情報の代替とすることができる。
【０１２８】
更にまた、メモリ装着時における修復診断の必要性の判断を、第１の実施形態においては、書き込み中情報とこのファイル名で行い、変形例１においてはメモリの識別情報とこのファイル名で行うようにしてもよい。これにより、ファイルシステムＦＳに修復が必要なＵＳＢメモリ４をより確実に判断することが可能である。
【０１２９】
（変形例３）前記実施形態では、記録媒体としてＵＳＢメモリを例にして説明した。記録媒体としては、これに限られることなく、メモリカードなどのリムーバブルメモリでもよい。また、ＵＳＢを介して接続されるハードディスク装置などの外部記憶装置に対応することもできる。もっとも、インターフェイスとしてもＵＳＢに限られることなく、例えば、ＩＥＥＥ１３９４などの様々なインターフェイスであってもよい。
【０１３０】
（変形例４）図６に示した処理において、ファイルシステムＦＳの診断のみを行って修復を行わないようにしてもよい。
【０１３１】
（変形例５）前記実施形態では、プリンタ１に含まれるデータ処理装置について説明した。本発明のデータ処理装置は、パーソナルコンピュータ、スキャナ、ファックス、デジタルビデオカメラ、テレビなど様々な機器に適用することができる。
【０１３２】
（変形例６）前記実施形態では、ＣＰＵ２０が制御プログラムを実行することにより、データ処理装置１０としての機能を実現する例について説明した。第６の変形例として、上述したデータ処理装置１０の機能を、ＡＳＩＣなどのハードウェア回路により実現するとしてもよい。もちろん、一部の機能をハードウェア回路にもたせて、ハードウェア回路がもたない機能をソフトウェアによって実現するようにしてもよい。
【０１３３】
なお、前記実施形態では、メモリの装着時に、書き込み中情報などに基づいて、診断処理の必要性を判断した。ただし、診断処理の必要性があると判断される場合は、書き込み中にメモリが抜き出された場合であるので、そのメモリのファイルシステムＦＳを修復する必要がある可能性が極めて高く、従って、上記書き込み中情報などに基づく判断は、そのメモリの修復の必要性の判断と見ることもできる。このように見た場合には、前記診断処理は、修復対象を探索する処理となり、この診断処理と実際の修復処理を合わせた処理を修復として表現してもよい。このように表現すれば、前述の実施形態は、ＵＳＢメモリ修復診断判断部３５が修復判断部として、修復の必要性を判断し、ＵＳＢメモリファイルシステム診断・修復部３６が修復部として修復を実行するということになる。
【符号の説明】
【０１３４】
１…プリンタ、２…ホストコンピュータ、３…スキャナ、４…記録媒体としてのＵＳＢメモリ、１０…データ処理装置、１１…印刷エンジン、２０…ＣＰＵ、２１…ＲＡＭ、２２…記憶部としてのＲＯＭ、２３…ホストインターフェイス、２４…装着部としてのＵＳＢインターフェイス、２５…ＵＳＢコントローラ、２６…エンジンインターフェイス、２７…ユーザインターフェイス、３０…ＵＳＢデバイスドライバ（ＵＳＢメモリ制御部）、３１…着脱検出部としてのＵＳＢデバイス着脱検出部、３２…ＵＳＢメモリ識別情報読み出し・記憶制御部、３３…ＵＳＢメモリへの書き込み／読み出し制御部、３４…障害発生情報制御部、３５…ＵＳＢメモリ修復診断判断部（修復診断判断部）、３６…ＵＳＢメモリファイルシステム診断・修復部（ファイルシステム診断修復部）、３７…ＵＳＢメモリファイルシステムの修復に関するメッセージ通知部（メッセージ通知部）、４０…書き込み状態記憶部、ＦＳ…ファイルシステム、Ｉ…書き込み状態情報
【図１】
2010009630.tif 000003
【図２】
2010009630.tif 000004
【図３】
2010009630.tif 000005
【図４】
2010009630.tif 000006
【図５】
2010009630.tif 000007
【図６】
2010009630.tif 000008
【図７】
2010009630.tif 000009
【図８】
2010009630.tif 000010
【図９】
2010009630.tif 000011
【図１０】
2010009630.tif 000012