(57)【要約】【課題】機能拡張設定処理の再実行を容易に行うことができる情報処理装置を提供する。【解決手段】ＰＣ１００は、マウント処理における中間処理の実行を失敗した場合、接続されたＵＳＢストレージデバイス３００を再起動させ、該ＵＳＢストレージデバイス３００が再起動した後にマウント処理を再実行する。【選択図】図６
2018010341.tif 000002
【特許請求の範囲】
【請求項１】
接続された不揮発性記憶デバイスとデータ通信を行う情報処理装置であって、
前記接続された不揮発性記憶デバイスを前記情報処理装置の一部として利用するためのマウント処理の実行を制御する実行制御手段と、
前記マウント処理における中間処理の実行を失敗したか否かを判別する判別手段と、
前記マウント処理における中間処理の実行を失敗した場合、前記接続された不揮発性記憶デバイスを再起動させる再起動制御手段とを備え、
前記実行制御手段は、前記再起動制御手段によって前記接続された不揮発性記憶デバイスを再起動させた後に前記マウント処理を再実行することを特徴とする情報処理装置。
【請求項２】
前記接続された不揮発性記憶デバイスへ給電を行い、
前記再起動制御手段は、前記接続された不揮発性記憶デバイスへの給電を停止し、前記給電を停止してから所定の期間が経過すると、前記接続された不揮発性記憶デバイスへの給電を再開することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記所定の期間は、前記接続された不揮発性記憶デバイスが該不揮発性記憶デバイスのシステム不良を解消するための処理の実行を開始してから完了するまでに要する期間より若干長い期間であることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記マウント処理の再実行上限回数を設定する設定手段を更に備え、
前記マウント処理の実行回数が前記再実行上限回数に達した場合、前記再起動制御手段は、前記不揮発性記憶デバイスを再起動させないことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記設定手段は、前記マウント処理の実行を完了した実績がない不揮発性記憶デバイスより、前記マウント処理の実行を完了した実績がある不揮発性記憶デバイスに対して、前記再実行上限回数を多く設定することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記マウント処理の実行を完了した不揮発性記憶デバイスを特定する機器特定情報を格納する格納手段と、
前記機器特定情報に基づいて前記マウント処理の実行を完了した実績があるか否かを判別する実績判別手段とを更に備えることを特徴とする請求項４又は５記載の情報処理装置。
【請求項７】
前記不揮発性記憶デバイスが再起動中である旨を通知する通知手段を更に備えること特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
接続された不揮発性記憶デバイスとデータ通信を行う情報処理装置の制御方法であって、
前記接続された不揮発性記憶デバイスを前記情報処理装置の一部として利用するためのマウント処理の実行を制御する実行制御ステップと、
前記マウント処理における中間処理の実行を失敗したか否かを判別する判別ステップと、
前記マウント処理における中間処理の実行を失敗した場合、前記接続された不揮発性記憶デバイスを再起動させる再起動制御ステップとを有し、
前記実行制御ステップは、前記再起動制御ステップで前記接続された不揮発性記憶デバイスを再起動させた後に前記マウント処理を再実行することを特徴とする情報処理装置の制御方法。
【請求項９】
接続された不揮発性記憶デバイスとデータ通信を行う情報処理装置の制御方法をコンピュータに実行させるプログラムであって、
前記情報処理装置の制御方法は、
前記接続された不揮発性記憶デバイスを前記情報処理装置の一部として利用するためのマウント処理の実行を制御する実行制御ステップと、
前記マウント処理における中間処理の実行を失敗したか否かを判別する判別ステップと、
前記マウント処理における中間処理の実行を失敗した場合、前記接続された不揮発性記憶デバイスを再起動させる再起動制御ステップとを有し、
前記実行制御ステップは、前記再起動制御ステップで前記接続された不揮発性記憶デバイスを再起動させた後に前記マウント処理を再実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、並びにプログラムに関し、特に、ＵＳＢデバイスを接続可能な情報処理装置及びその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
ＵＳＢポートを備える情報処理装置としてのＰＣ（Personal Computer）が知られている。ＰＣは、ＵＳＢポートにＵＳＢデバイスが接続され、該ＵＳＢデバイスとデータ通信可能になると、接続されたＵＳＢデバイスから該ＵＳＢデバイスの種別等を示すデバイス情報を取得し、該デバイス情報に基づいて該ＵＳＢデバイスの認識処理を行う。認識処理の結果、接続されたＵＳＢデバイスがＰＣの機能を拡張するＵＳＢデバイス（以下、「機能拡張ＵＳＢデバイス」という。）であることを認識すると、ＰＣは機能拡張ＵＳＢデバイスをＰＣの一部として利用するための機能拡張設定処理を行う（例えば、特許文献１参照）。機能拡張設定処理の実行を完了すると、ＰＣは機能拡張ＵＳＢデバイスを該ＰＣの一部として利用可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−９７０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＰＣは、機能拡張ＵＳＢデバイスがＵＳＢポートに接続されても、機能拡張ＵＳＢデバイスのシステム不良等に起因して機能拡張設定処理の実行を完了することができない場合がある。この場合、ユーザは、機能拡張ＵＳＢデバイスのシステム不良を解消させ、ＰＣに機能拡張設定処理を再実行させる指示を行うといった複数の操作を行う必要がある。例えば、ユーザは、接続された機能拡張ＵＳＢデバイスをＵＳＢポートから外して該機能拡張ＵＳＢデバイスを再起動させ、機能拡張ＵＳＢデバイスのシステム不良を解消させる。その後、ユーザは機能拡張設定処理の再実行の指示として該機能拡張ＵＳＢデバイスをＵＳＢポートに再接続する。すなわち、従来のＰＣでは、機能拡張設定処理の再実行に手間が生じるという問題が生じる。
【０００５】
本発明の目的は、機能拡張設定処理の再実行を容易に行うことができる情報処理装置及びその制御方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の情報処理装置は、接続された不揮発性記憶デバイスとデータ通信を行う情報処理装置であって、前記接続された不揮発性記憶デバイスを前記情報処理装置の一部として利用するためのマウント処理の実行を制御する実行制御手段と、前記マウント処理における中間処理の実行を失敗したか否かを判別する判別手段と、前記マウント処理における中間処理の実行を失敗した場合、前記接続された不揮発性記憶デバイスを再起動させる再起動制御手段とを備え、前記実行制御手段は、前記再起動制御手段によって前記接続された不揮発性記憶デバイスを再起動させた後に前記マウント処理を再実行することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、機能拡張設定処理の再実行を容易に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態に係る情報処理装置としてのＰＣの構成を概略的に示すブロック図である。
【図２】図１のＰＣのソフトウェアモジュールの構成を概略的に示すブロック図である。
【図３】図１のＰＣに接続されるＵＳＢストレージデバイスの構成を概略的に示すブロック図である。
【図４】本実施の形態におけるＰＣ及びＵＳＢストレージデバイスの接続を説明するための図である。
【図５】従来ＰＣで実行されるＵＳＢデバイス接続処理の手順を示すフローチャートである。
【図６】図１のＰＣで実行されるＵＳＢデバイス接続処理の手順を示すフローチャートである。
【図７】図６のＵＳＢデバイス接続処理の変形例の手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態を図面を参照しながら詳述する。
【００１０】
本実施の形態では、情報処理装置としてのＰＣに本発明を適用した場合について説明するが、本発明の適用先はＰＣに限られず、ＵＳＢデバイスを接続可能なＭＦＰ等の情報処理装置であれば本発明を適用することができる。
【００１１】
図１は、本発明の実施の形態に係る情報処理装置としてのＰＣ１００の構成を概略的に示すブロック図である。
【００１２】
図１において、ＰＣ１００は、ＣＰＵ１０１、ＨＤＤ１０２、ＲＡＭ１０３、ネットワーク制御部１０４、ネットワークＩ／Ｆ１０５、ＵＳＢ制御部１０６、ＵＳＢＩ／Ｆ１０７、ディスプレイ制御部１０８、及びディスプレイ１０９を備える。また、ＰＣ１００は、入力制御部１１０、入力部１１１、ＲＴＣ（Real Time Clock）１１２、不揮発性メモリ１１３、及びＧＰＩＯ（General Purpose Input Output）１１４を備える。ＣＰＵ１０１、ＨＤＤ１０２、ＲＡＭ１０３、ネットワーク制御部１０４、ＵＳＢ制御部１０６、ディスプレイ制御部１０８、入力制御部１１０、ＲＴＣ１１２、不揮発性メモリ１１３、及びＧＰＩＯ１１４はシステムバス１１５を介して互いに接続されている。
【００１３】
ＣＰＵ１０１はＰＣ１００全体を統括的に制御し、ＨＤＤ１０２に格納されたプログラムを実行して後述する図２のソフトウェアモジュール２００の各処理を実行する。ＨＤＤ１０２はＣＰＵ１０１で実行されるプログラムや各データを格納する。ＲＡＭ１０３はＣＰＵ１０１の作業領域として用いられ、また、ＲＡＭ１０３は各データの一時格納領域として用いられる。ネットワーク制御部１０４はネットワークＩ／Ｆ１０５を介して接続された図示しない外部装置とのデータ通信を制御する。ＵＳＢ制御部１０６はＵＳＢＩ／Ｆ１０７を介して接続されたＵＳＢデバイスとのデータ通信を制御する。ＵＳＢ制御部１０６は、各データを格納可能なＵＳＢストレージクラスのＵＳＢデバイス（以下、「ＵＳＢストレージデバイス」という。）（不揮発性記憶デバイス）、例えば、後述する図３のＵＳＢストレージデバイス３００がＰＣ１００に接続されると、該ＵＳＢストレージデバイス３００とのデータ通信を制御する。
【００１４】
ディスプレイ制御部１０８はディスプレイ１０９における表示処理を制御し、ディスプレイ１０９は各画像を表示する。入力制御部１１０はユーザの入力部１１１の操作によって入力された入力情報をＣＰＵ１０１に送信する。入力部１１１はキーボード、マウス、操作キー、タッチパネル等を含む。ＲＴＣ１１２は時計機能、アラーム機能、及びタイマー機能等を有し、各処理において時間を計測する。不揮発性メモリ１１３はプログラムや各データを格納し、ＧＰＩＯ１１４はＵＳＢデバイスへの給電を制御する。
【００１５】
図２は、図１のＰＣ１００のソフトウェアモジュール２００の構成を概略的に示すブロック図である。
【００１６】
図２において、ソフトウェアモジュール２００は、ＵＳＢコアドライバモジュール２０１、ＵＳＢストレージドライバモジュール２０２、マウント制御モジュール２０３、及びファイルシステム制御モジュール２０４を備える。また、ソフトウェアモジュール２００は、表示制御モジュール２０５及びアプリケーションモジュール２０６を備える。
【００１７】
ＵＳＢコアドライバモジュール２０１は接続されたＵＳＢデバイスとの通信制御を行う。ＵＳＢストレージドライバモジュール２０２はＰＣ１００に後述するＵＳＢストレージデバイス３００が接続されると、該ＵＳＢストレージデバイス３００の接続が検知された旨をマウント制御モジュール２０３に通知する。また、ＵＳＢストレージドライバモジュール２０２はＵＳＢコアドライバモジュール２０１を介して後述するＵＳＢストレージデバイス３００にアクセスする。マウント制御モジュール２０３は、ＵＳＢストレージドライバモジュール２０２によって後述するＵＳＢストレージデバイス３００の接続が検知された旨が通知されると、該ＵＳＢストレージデバイス３００をＰＣ１００の記憶装置として利用するためのマウント処理（機能拡張設定処理）を実行する。
【００１８】
ファイルシステム制御モジュール２０４はアプリケーションモジュール２０６からの指示に応じて後述するＵＳＢストレージデバイス３００へのアクセス指示をＵＳＢストレージドライバモジュール２０２に行う。表示制御モジュール２０５はマウント処理の実行状況に関するメッセージ等をディスプレイ１０９に表示する制御を行う。アプリケーションモジュール２０６は後述するＵＳＢストレージデバイス３００を使用する指示をファイルシステム制御モジュール２０４に行う。
【００１９】
次に、ＰＣ１００に接続されるＵＳＢストレージデバイス３００について説明する。
【００２０】
図３は、図１のＰＣ１００に接続されるＵＳＢストレージデバイス３００の構成を概略的に示すブロック図である。
【００２１】
図３において、ＵＳＢストレージデバイス３００はデバイス制御部３０１及びストレージ制御部３０２を備え、デバイス制御部３０１及びストレージ制御部３０２は互いに接続されている。
【００２２】
ＵＳＢストレージデバイス３００は、ＰＣ１００に接続されると、ＰＣ１００から給電され、ＵＳＢストレージデバイス３００に設けられる図示しないＣＰＵが、ＰＣ１００をマスターとするスレーブの役割で各処理を制御する。デバイス制御部３０１は接続されたＰＣ１００とのデータ通信を制御する。例えば、デバイス制御部３０１は、ＰＣ１００に接続された際にＵＳＢストレージデバイス３００の種別を示すデバイス情報をＰＣ１００に送信する。また、デバイス制御部３０１は、ＰＣ１００からストレージ制御部３０２に設けられる図示しない記憶部へのアクセス要求、例えば、データの送信要求を受信すると、送信要求に対応するデータをストレージ制御部３０２の記憶部から取得し、該データをＰＣ１００に送信する。すなわち、デバイス制御部３０１はＰＣ１００及びストレージ制御部３０２の記憶部の間のデータ通信の中継を行う。ストレージ制御部３０２は図示しない記憶部を備え、該記憶部へデータを書き込む書き込み処理や該記憶部からデータを読み出す読み出し処理の実行を制御する。
【００２３】
図４は、本実施の形態におけるＰＣ１００及びＵＳＢストレージデバイス３００の接続を説明するための図である。
【００２４】
ＰＣ１００は、電源線４０１、信号線４０２，４０３、及び該ＰＣ１００におけるグランドレベルの電位のグランド線４０４のそれぞれでＵＳＢストレージデバイス３００と接続されている。ＰＣ１００は、電源線４０１によってＵＳＢストレージデバイス３００に、例えば、５Ｖ相当の電力を供給し、信号線４０２，４０３によってデータ信号の送受信を行う。ＰＣ１００は、ＵＳＢストレージデバイス３００への給電を該ＰＣ１００に設けられる給電制御回路４０５によって制御する。給電制御回路４０５はＧＰＩＯ１１４及びＵＳＢ制御部１０６から出力される制御信号に基づいてＵＳＢストレージデバイス３００へ給電するか否かを制御する。
【００２５】
次に、従来のＰＣ（以下、「従来ＰＣ」という。）で実行されるＵＳＢデバイス接続処理について説明する。
【００２６】
図５は、従来ＰＣで実行されるＵＳＢデバイス接続処理の手順を示すフローチャートである。
【００２７】
図５において、まず、従来ＰＣは、ＵＳＢデバイスが接続されたことを検知すると（ステップＳ５０１でＹＥＳ）、接続されたＵＳＢデバイスから該ＵＳＢデバイスの種別を示すデバイス情報を取得する（ステップＳ５０２）。デバイス情報は、ＵＳＢストレージクラスであるか否かを示す情報や、ＵＳＢデバイスを特定する機器特定情報等を含む。次いで、従来ＰＣは、接続されたＵＳＢデバイスがＵＳＢストレージデバイスであるか否かを取得されたデバイス情報に基づいて判別する（ステップＳ５０３）。
【００２８】
ステップＳ５０３の判別の結果、接続されたＵＳＢデバイスがＵＳＢストレージデバイスでないとき、従来ＰＣは本処理を終了する。一方、ステップＳ５０３の判別の結果、接続されたＵＳＢデバイスがＵＳＢストレージデバイス３００であるとき、従来ＰＣは、ＵＳＢストレージデバイス３００をＰＣ１００の記憶装置として利用するためのマウント処理を行う。具体的に、従来ＰＣは、マウント処理として後述するステップＳ５０４〜Ｓ５０６の処理を行う。従来ＰＣは、ＵＳＢストレージデバイス３００の記憶部にアクセスするデバイスファイルを割り当てる（ステップＳ５０４）。ステップＳ５０４では、例えば、従来ＰＣは、ＵＳＢストレージデバイス３００のデバイスファイルとして/dev/sdbを割り当てる。本実施の形態では、デバイス制御部３０１及びストレージ制御部３０２間の通信が正常である場合、従来ＰＣはデバイスファイルに基づいてＵＳＢストレージデバイス３００の記憶部にアクセス可能である。一方、ＰＣ１００及びＵＳＢストレージデバイス３００間に仕様差が生じる場合や、ＵＳＢストレージデバイス３００においてシステム不良が発生している場合等に、従来ＰＣはデバイスファイルに基づいてＵＳＢストレージデバイス３００の記憶部にアクセス不可能である。
【００２９】
次いで、従来ＰＣは、マウント処理における中間処理の実行を成功したか否かを判別する（ステップＳ５０５）。ステップＳ５０５では、デバイスファイルに基づいてＵＳＢストレージデバイス３００の記憶部にアクセスできた場合、従来ＰＣはマウント処理における中間処理の実行を成功したと判別する。一方、デバイスファイルに基づいてＵＳＢストレージデバイス３００の記憶部にアクセスできない場合、従来ＰＣはマウント処理における中間処理の実行を失敗したと判別する。
【００３０】
ステップＳ５０５の判別の結果、マウント処理における中間処理の実行を成功したとき、従来ＰＣはデバイスファイルを/mnt/sdbにマウントする（ステップＳ５０６）。これにより、マウント処理の実行が完了し、従来ＰＣは/mnt/sdbに基づいて該従来ＰＣの一部としてＵＳＢストレージデバイス３００の記憶部にアクセス可能となる。その後、従来ＰＣは本処理を終了する。一方、ステップＳ５０５の判別の結果、マウント処理における中間処理の実行を失敗したとき、従来ＰＣはデバイスファイルをマウントしない。すなわち、マウント処理の実行が完了しない。その後、従来ＰＣは本処理を終了する。
【００３１】
上述したように、従来では、ＵＳＢストレージデバイス３００が接続されても、ＵＳＢストレージデバイス３００のシステム不良等に起因してマウント処理の実行を完了することができない場合がある。この場合、ユーザは、例えば、接続されたＵＳＢストレージデバイス３００をＰＣ１００から外して該ＵＳＢストレージデバイス３００を再起動させ、ＵＳＢストレージデバイス３００のシステム不良を解消させる。その後、ユーザはＰＣ１００にマウント処理の再実行の指示として該ＵＳＢストレージデバイス３００をＰＣ１００に再接続する。すなわち、従来では、マウント処理の再実行に手間が生じるという問題が生じる。
【００３２】
これに対応して、本実施の形態では、マウント処理における中間処理の実行を失敗した場合、接続されたＵＳＢストレージデバイス３００をＰＣ１００が再起動させる。
【００３３】
図６は、図１のＰＣ１００で実行されるＵＳＢデバイス接続処理の手順を示すフローチャートである。
【００３４】
図６の処理は、ＣＰＵ１０１がＨＤＤ１０２に格納されたプログラムを実行することによって行われる。
【００３５】
図６において、まず、ＣＰＵ１０１は、図５のステップＳ５０１及びＳ５０２の処理を行う。次いで、ＣＰＵ１０１は接続されたＵＳＢデバイスがＵＳＢストレージデバイスであるか否かを取得されたデバイス情報に基づいて判別する（ステップＳ６０１）。
【００３６】
ステップＳ６０１の判別の結果、接続されたＵＳＢデバイスがＵＳＢストレージデバイスでないとき、ＣＰＵ１０１はステップＳ５０１の処理に戻る。一方、ステップＳ６０１の判別の結果、接続されたＵＳＢデバイスがＵＳＢストレージデバイス３００であるとき、ＣＰＵ１０１は図５のステップＳ５０４及びＳ５０５の処理を行う（実行制御手段）。
【００３７】
ステップＳ５０５の判別の結果、マウント処理における中間処理の実行を成功したとき、ＣＰＵ１０１は図５のステップＳ５０６以降の処理を行う。一方、ステップＳ５０５の判別の結果、マウント処理における中間処理の実行を失敗したとき、ＣＰＵ１０１は後述するステップＳ６０２〜Ｓ６０４の処理を実行してＵＳＢストレージデバイス３００を再起動させる（再起動制御手段）。具体的に、ＣＰＵ１０１はＵＳＢストレージデバイス３００への給電を停止する（ステップＳ６０２）。
【００３８】
次いで、ＣＰＵ１０１はＵＳＢストレージデバイス３００への給電を停止してから、予め設定された給電停止期間（所定の期間）を経過したか否かを判別する（ステップＳ６０３）。給電停止期間は、例えば、接続されたＵＳＢストレージデバイス３００が該ＵＳＢストレージデバイス３００のシステム不良を解消するための処理の実行を開始してから完了するまでに要する期間より若干長い期間である。ＵＳＢストレージデバイス３００への給電を停止してから給電停止期間を経過すると（ステップＳ６０３でＹＥＳ）、ＣＰＵ１０１はＵＳＢストレージデバイス３００への給電を再開する（ステップＳ６０４）。これにより、ＵＳＢストレージデバイス３００は、システム不良を解消するための処理を実行し、該処理の実行を完了した後に再起動する。次いで、ＣＰＵ１０１は、ＵＳＢストレージデバイス３００のマウント処理を再実行するために、ステップＳ５０１の処理に戻る。
【００３９】
上述した図６の処理によれば、マウント処理における中間処理の実行を失敗した場合、接続されたＵＳＢストレージデバイス３００を再起動させ、ＵＳＢストレージデバイス３００が再起動した後にマウント処理が再実行される。これにより、ユーザがＵＳＢストレージデバイス３００を再起動させるための該ＵＳＢストレージデバイス３００をＰＣ１００から外す操作や、マウント処理の再実行を指示するためにＵＳＢストレージデバイス３００をＰＣ１００に再接続する操作を行う必要をなくすことができる。その結果、マウント処理の再実行を容易に行うことができる。
【００４０】
また、上述した図６の処理では、接続されたＵＳＢストレージデバイス３００への給電が停止され、給電が停止されてから給電停止期間が経過すると、ＵＳＢストレージデバイス３００への給電が再開される。これにより、ＵＳＢストレージデバイス３００を確実に再起動させることができる。
【００４１】
さらに、上述した図６の処理では、給電停止期間は、接続されたＵＳＢストレージデバイス３００が該ＵＳＢストレージデバイス３００のシステム不良を解消するための処理の実行を開始してから完了するまでに要する期間より若干長い期間である。これにより、ＵＳＢストレージデバイス３００のシステム不良を解消するための処理の実行が完了する前に該ＵＳＢストレージデバイス３００を再起動させることに起因して、再実行されたマウント処理における中間処理が失敗するといった事態をなくすことができる。
【００４２】
以上、本発明について、上述した実施の形態を用いて説明したが、本発明は上述した実施の形態に限定されるものではない。
【００４３】
例えば、ステップＳ６０１の処理において、接続されたＵＳＢデバイスがＰＣ１００の一部として利用可能な機能を有する機能拡張ＵＳＢデバイスであるか否かをデバイス情報に基づいて判別してもよい。例えば、接続されたＵＳＢデバイスが機能拡張ＵＳＢデバイスでない場合、ステップＳ５０１の処理に戻る。一方、接続されたＵＳＢデバイスが機能拡張ＵＳＢデバイスである場合、ＣＰＵ１０１は、接続されたＵＳＢデバイスをＰＣ１００の一部として利用するための機能拡張設定処理を実行する。機能拡張設定処理における中間処理の実行を成功した場合、ＣＰＵ１０１は機能拡張設定処理における他の処理を実行して機能拡張設定処理を完了させる。一方、機能拡張設定処理における中間処理の実行を失敗した場合、ＣＰＵ１０１は図６のステップＳ６０２以降の処理を行う。
【００４４】
これにより、ＵＳＢストレージデバイス以外の機能拡張ＵＳＢデバイスがＰＣ１００に接続された場合に、上述した図６の処理と同様の効果を奏することができる。
【００４５】
また、上述した実施の形態では、ＵＳＢストレージデバイス３００を再起動中である旨や、マウント処理を再実行中である旨をディスプレイ１０９に表示してもよい。これにより、ＰＣ１００及びＵＳＢストレージデバイス３００間の処理の実行状況をユーザが容易に把握することができる。
【００４６】
さらに、上述した実施の形態では、マウント処理の再実行の回数に上限を設けてもよい。
【００４７】
図７は、図６のＵＳＢデバイス接続処理の変形例の手順を示すフローチャートである。
【００４８】
図７の処理は、ＣＰＵ１０１がＨＤＤ１０２に格納されたプログラムを実行することによって行われる。
【００４９】
図７において、まず、ＣＰＵ１０１は、図６のステップＳ５０１〜Ｓ５０５の処理を行う。
【００５０】
ステップＳ５０５の判別の結果、マウント処理における中間処理の実行を成功したとき、ＣＰＵ１０１は図５のステップＳ５０６の処理を行う。次いで、ＣＰＵ１０１はマウント処理の実行を完了したＵＳＢストレージデバイス３００を特定する機器特定情報をＨＤＤ１０２に格納する（ステップＳ７０１）。機器特定情報は、例えば、ＶＩＤ（USB Vendor ID）、ＵＩＤ（USB Product ID）、及びＳＩＤ（USB Serial ID）を含む。ＶＩＤはＵＳＢストレージデバイス３００の製造メーカーを示す。ＵＩＤは該製造メーカーで製造された機種毎に任意に割り当てられたコードである。ＳＩＤはＵＳＢストレージデバイス３００の個体を示す。その後、ＣＰＵ１０１は、マウント処理の実行を完了した旨を示す「ＵＳＢデバイスを認識し、ＵＳＢストレージとしてマウントできました」等のメッセージをディスプレイ１０９に表示し、本処理を終了する。
【００５１】
ステップＳ５０５の判別の結果、マウント処理における中間処理の実行を失敗したとき、ＣＰＵ１０１はＵＳＢストレージデバイス３００がマウント処理の実行を完了した実績があるか否かを判別する（ステップＳ７０２）（実績判別手段）。ステップＳ７０２では、例えば、ＨＤＤ１０２にＵＳＢストレージデバイス３００の機器特定情報が格納されていた場合、ＣＰＵ１０１はＵＳＢストレージデバイス３００がマウント処理の実行を完了した実績があると判別する。一方、ＨＤＤ１０２にＵＳＢストレージデバイス３００の機器特定情報が格納されていない場合、ＣＰＵ１０１はＵＳＢストレージデバイス３００がマウント処理の実行を完了した実績がないと判別する。
【００５２】
ステップＳ７０２の判別の結果、ＵＳＢストレージデバイス３００がマウント処理の実行を完了した実績があるとき、ＣＰＵ１０１はマウント処理の再実行上限回数として第１の上限回数を設定する（ステップＳ７０３）。その後、ＣＰＵ１０１は後述するステップＳ７０５の処理を行う。
【００５３】
ステップＳ７０２の判別の結果、ＵＳＢストレージデバイス３００がマウント処理の実行を完了した実績がないとき、ＣＰＵ１０１はマウント処理の再実行上限回数として第１の上限回数より少ない第２の上限回数を設定する（ステップＳ７０４）。次いで、ＣＰＵ１０１はＵＳＢストレージデバイス３００のマウント処理の実行回数が再実行上限回数に達したか否かを判別する（ステップＳ７０５）。本実施の形態では、ＵＳＢストレージデバイス３００が接続中に実行されたマウント処理の実行回数がカウントされ、カウントされたマウント処理の実行回数がＲＡＭ１０３等に保持される。
【００５４】
ステップＳ７０５の判別の結果、再実行上限回数に達したとき、ＣＰＵ１０１は、マウント処理の実行回数が再実行上限回数に達した旨を示すエラーメッセージをディスプレイ１０９に表示し、本処理を終了する。すなわち、本実施の形態では、マウント処理の実行回数が再実行上限回数に達した場合、ＣＰＵ１０１はＵＳＢストレージデバイス３００を再起動させない。一方、ステップＳ７０５の判別の結果、再実行上限回数に達しないとき、ＣＰＵ１０１は図６のステップＳ６０２〜Ｓ６０４の処理を行う。次いで、ＣＰＵ１０１はＵＳＢストレージデバイス３００のマウント処理の実行回数に１を加算し（ステップＳ７０６）、ステップＳ５０１の処理に戻る。
【００５５】
上述した図７の処理では、マウント処理の実行回数が再実行上限回数に達した場合、ＵＳＢストレージデバイス３００を再起動させない。これにより、ＵＳＢストレージデバイス３００の再起動及びマウント処理の再実行が際限なく行われる事態を無くすことができる。
【００５６】
また、上述した図７の処理では、マウント処理の実行を完了した実績がないＵＳＢデバイスより、マウント処理の実行を完了した実績があるＵＳＢデバイスに対して、再実行上限回数が多く設定される。
【００５７】
ここで、マウント処理における中間処理の実行を失敗する失敗要因として、例えば、該ＰＣ１００及び接続されたＵＳＢデバイス間の仕様差や、接続されたＵＳＢデバイスのシステム不良が考えられる。マウント処理の実行を完了した実績があるＵＳＢデバイスにおいてマウント処理における中間処理の実行を失敗した場合、ＵＳＢデバイスのシステム不良が失敗要因である可能性が極めて高い。ＵＳＢデバイスのシステム不良が失敗要因である場合、該ＵＳＢデバイスを再起動してマウント処理を再実行する処理を複数回実行することで、マウント処理の実行を完了することがある。そのため、マウント処理の実行を成功した実績があるＵＳＢデバイスにおいてマウント処理の再実行の機会を増やすことが好ましい。
【００５８】
一方、マウント処理の実行を完了した実績がないＵＳＢデバイスにおいてマウント処理における中間処理の実行を失敗した場合、ＰＣ１００及び該ＵＳＢデバイス間の仕様差が失敗要因である可能性がある。失敗要因がＰＣ１００及び該ＵＳＢデバイス間の仕様差である場合、該ＵＳＢデバイスを再起動してマウント処理を再実行する処理を複数回実行しても、マウント処理における中間処理の実行を成功することはなく、マウント処理の実行を完了することはない。そのため、マウント処理の実行を完了した実績がないＵＳＢデバイスにおいてマウント処理の再実行の機会を必要以上に増やす必要はない。
【００５９】
これに対し、本実施の形態では、マウント処理の実行を完了した実績がないＵＳＢデバイスより、マウント処理の実行を完了した実績があるＵＳＢデバイスに対して、再実行上限回数が多く設定される。これにより、マウント処理の実行を完了した実績があるＵＳＢデバイスにおいてマウント処理の再実行の機会を増やすことができる。
【００６０】
さらに、上述した図７の処理では、マウント処理の実行を完了したＵＳＢストレージデバイス３００を特定する機器特定情報が格納され、該機器特定情報に基づいてマウント処理の実行を完了した実績があるか否かが判別される。これにより、ＵＳＢストレージデバイス３００がマウント処理の実行を完了した実績があるか否かを容易に判別することができる。
【００６１】
本発明は、上述の実施の形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６２】
１００  ＰＣ
１０１  ＣＰＵ
１０２  ＨＤＤ
１０９  ディスプレイ
３００  ＵＳＢストレージデバイス
【図１】
2018010341.tif 000003
【図２】
2018010341.tif 000004
【図３】
2018010341.tif 000005
【図４】
2018010341.tif 000006
【図５】
2018010341.tif 000007
【図６】
2018010341.tif 000008
【図７】
2018010341.tif 000009