(57)【特許請求の範囲】
【請求項１】
ＵＳＢポートと、
前記ＵＳＢポートを制御するＵＳＢポートドライバを有し、ＵＳＢ規格とは異なるインタフェース規格であるＳＣＳＩまたはＳＡＳ規格のインタフェースに対応し、デバイス制御を行うソフトウェアと、
前記ＵＳＢポートにおけるＵＳＢデバイスの着脱を監視し、該着脱がなされると、前記ＳＣＳＩまたはＳＡＳ規格のインタフェースに対応する仮想ポートにおける前記ＵＳＢデバイスの着脱を前記ソフトウェアに認識させ、前記ＵＳＢデバイスに対して発行されたコマンドを、前記ＵＳＢポートドライバに転送するパススルー機能を有する仮想ミニポートドライバとを備える情報処理装置であって、
前記仮想ミニポートドライバは、前記ＵＳＢデバイスに対して発行されるＳＩＬＩ（Ｓｕｐｐｒｅｓｓ  Ｉｎｃｏｒｒｅｃｔ  Ｌｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）の設定内容が有効か否かを判断し、当該設定内容が有効と判断した場合は、無効に変更するとともに、前記ＳＩＬＩの設定内容を変更したか否かの情報がセットされるＳＩＬＩ変更フラグに前記設定内容が有効から無効に変更した旨の変更済み情報をセットし、前記リードコマンドで要求されたブロックサイズと前記ＵＳＢデバイスから読み込んだ実際のブロックサイズとが不一致の場合に、前記ＵＳＢデバイスから出力されたセンス情報を受け取ったことに基づいて、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされているか否かを判断し、前記変更済み情報がセットされていると判断した場合は、前記センス情報から前記要求されたブロックサイズと前記実際のブロックサイズとの差に関するデータを抽出し、この抽出したデータに基づいて、前記実際のブロックサイズを前記ＵＳＢデバイスからの転送サイズとする転送サイズ設定処理を実行した後にデータ情報を出力し、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされていないと判断した場合は、前記転送サイズ設定処理を実行せず前記データ情報を出力することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置と、
前記情報処理装置のＵＳＢポートに接続されたＵＳＢデバイスと、を備える情報処理システム。
【請求項３】
ＵＳＢポートと、該ＵＳＢポートを制御するＵＳＢポートドライバとを備え、ＵＳＢ規格とは異なるインタフェース規格であるＳＣＳＩまたはＳＡＳ規格のインタフェースに対応するソフトウェアを実行するための情報処理装置における情報処理方法であって、
前記ＵＳＢポートにおいてＵＳＢデバイスの着脱がなされると、前記ＳＣＳＩまたはＳＡＳ規格のインタフェースに対応する仮想ポートにおいて前記ＵＳＢデバイスの着脱がなされたとする工程と、
前記ＵＳＢデバイスに対してコマンドが発行されると、該コマンドを前記ＵＳＢポートドライバに転送する工程とを含む情報処理方法であって、
前記ＵＳＢデバイスに対して発行されるＳＩＬＩ（Ｓｕｐｐｒｅｓｓ  Ｉｎｃｏｒｒｅｃｔ  Ｌｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）の設定内容が有効か否かを判断する工程と、当該設定内容が有効と判断した場合は、無効に変更する工程と、前記ＳＩＬＩの設定内容を変更したか否かの情報がセットされるＳＩＬＩ変更フラグに前記設定内容が有効から無効に変更した旨の変更済み情報をセットする工程と、前記リードコマンドで要求されたブロックサイズと前記ＵＳＢデバイスから読み込んだ実際のブロックサイズとが不一致の場合に、前記ＵＳＢデバイスから出力されたセンス情報を受け取ったことに基づいて、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされているか否かを判断する工程と、前記変更済み情報がセットされていると判断した場合は、前記センス情報から前記要求されたブロックサイズと前記実際のブロックサイズとの差に関するデータを抽出するデータ抽出する工程と、前記データ抽出工程において抽出したデータに基づいて、前記実際のブロックサイズを前記ＵＳＢデバイスからの転送サイズとする転送サイズ設定処理工程と、前記転送サイズ設定処理工程後にデータ情報を出力する工程と、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされていないと判断した場合は、前記データ抽出工程及び前記転送サイズ設定処理工程を行わず、前記データ情報を出力する工程と、を更に含むことを特徴とする情報処理方法。
【請求項４】
ＵＳＢポートと、該ＵＳＢポートを制御するＵＳＢポートドライバとを備え、ＵＳＢ規格とは異なるインタフェース規格であるＳＣＳＩまたはＳＡＳ規格のインタフェースに対応するソフトウェアを実行するための情報処理装置に用いられるプログラムであって、
前記ＵＳＢポートにおいてＵＳＢデバイスの着脱がなされると、前記ＳＣＳＩまたはＳＡＳ規格のインタフェースに対応する仮想ポートにおいて前記ＵＳＢデバイスの着脱がなされたとする手順と、
前記ＵＳＢデバイスに対して発行されたコマンドを前記ＵＳＢポートドライバにパススルーする手順とを前記情報処理装置の制御用コンピュータに実行させるプログラムであって、
前記ＵＳＢデバイスに対して発行されるＳＩＬＩ（Ｓｕｐｐｒｅｓｓ  Ｉｎｃｏｒｒｅｃｔ  Ｌｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）の設定内容が有効か否かを判断する手順と、当該設定内容が有効と判断した場合は、無効に変更する手順と、前記ＳＩＬＩの設定内容を変更したか否かの情報がセットされるＳＩＬＩ変更フラグに前記設定内容が有効から無効に変更した旨の変更済み情報をセットする手順と、前記リードコマンドで要求されたブロックサイズと前記ＵＳＢデバイスから読み込んだ実際のブロックサイズとが不一致の場合に、前記ＵＳＢデバイスから出力されたセンス情報を受け取ったことに基づいて、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされているか否かを判断する手順と、前記変更済み情報がセットされていると判断した場合は、前記センス情報から前記要求されたブロックサイズと前記実際のブロックサイズとの差に関するデータを抽出する手順と、この抽出したデータに基づいて、前記実際のブロックサイズを前記ＵＳＢデバイスからの転送サイズとする転送サイズ設定処理を実行する手順と、前記転送サイズ設定処理を実行した後にデータ情報を出力する手順と、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされていないと判断した場合は、前記転送サイズ設定処理を実行せず前記データ情報を出力する手順とを、前記制御コンピュータに更に実行させることを特徴とするプログラム。
【請求項５】
請求項４に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体に係り、更に詳しくは、ＵＳＢポートを有する情報処理装置、該情報処理装置を含む情報処理システム、ＵＳＢポートを有する情報処理装置における情報処理方法、ＵＳＢポートを有する情報処理装置に用いられるプログラム、及び該プログラムが記録された記録媒体に関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置は、外部機器を付加することによって、機能を拡張することが可能であり、様々なシステムの中核となる装置として用いられている。
【０００３】
そこで、情報処理装置と外部機器とを接続するためのインタフェースとして種々のものが考案された。
【０００４】
例えば、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）が、ＡＮＳＩ（米国規格協会）によって１９８６年に規格化された。
【０００５】
また、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格が、１９９６年に発表された。
【０００６】
これらの規格は、その後、転送性能の向上等を目的として拡張が行われた。例えば、ＳＣＳＩについては、シリアル化されたＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）が２００３年に標準化された。
【０００７】
特許文献１には、ＵＳＢ接続インタフェース、及び仮想シリアルポートドライバを備える信号変換装置が開示されている。
【０００８】
また、特許文献２には、仮想通信ポート作成削除手段を有する情報処理装置が開示されている。
【０００９】
また、特許文献３には、読み出しエラーが起こった場合に、迅速かつ適切にデータ読み出しを続けることを目的とする読出装置が開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１１−１４１２４号公報
【特許文献２】特開２００４−１８５３８８号公報
【特許文献３】国際公開第２００７／１０２４３４号
【発明の概要】
【発明が解決しようとする課題】
【００１１】
パーソナルコンピュータでは、オペレーティングシステム（以下では、「ＯＳ」ともいう）として、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）が広く用いられている。
【００１２】
この場合、一例として図１８に示されるように、アプリケーションソフトウェアとＳＣＳＩポートとの間には、ストレージクラスドライバ、ストレージポートドライバ、及びＳＣＳＩミニポートドライバが介在している。また、アプリケーションソフトウェアとＳＡＳポートとの間には、ストレージクラスドライバ、ストレージポートドライバ、及びＳＡＳミニポートドライバが介在している。そして、アプリケーションソフトウェアとＵＳＢポートとの間には、ストレージクラスドライバ、ＵＳＢマスストレージクラスドライバ、及びＵＳＢポートドライバが介在している。なお、アプリケーションソフトウェアとは、ソフトウェアそのものではなく、例えばソフトウェアがインストールされ、そのソフトウェアを実行する処理部である場合もある。
【００１３】
アプリケーションソフトウェアがＳＣＳＩデバイスを制御するアプリケーションソフトウェアである場合、該アプリケーションソフトウェアは、例えば、ストレージクラスドライバを介してストレージポートドライバに問い合わせ、ＳＣＳＩポートに接続されているデバイスを制御対象とする。
【００１４】
また、アプリケーションソフトウェアがＵＳＢデバイスを制御するアプリケーションソフトウェアである場合、該アプリケーションソフトウェアは、例えば、ストレージクラスドライバを介してＵＳＢマスストレージクラスドライバに問い合わせ、ＵＳＢポートに接続されているデバイスを制御対象とする。
【００１５】
つまり、上記ＳＣＳＩデバイスを制御するアプリケーションソフトウェアは、ＵＳＢポートに接続されたＵＳＢデバイスを認識することができない（図１９参照）。
【００１６】
ところで、近年、パーソナルコンピュータなどの情報処理装置は、ＵＳＢポートを標準装備するようになってきた。これに伴い、これまでＳＣＳＩ規格に対応していた外部機器も、ＵＳＢ規格に対応するようになってきた。
【００１７】
しかしながら、ＳＣＳＩデバイスを制御するアプリケーションソフトウェアは、前述したようにＵＳＢデバイスを認識することができないため、該アプリケーションソフトウェアを修正する必要がある。この場合、該アプリケーションソフトウェアが古いと、修正できないという不都合があった。また、修正可能であっても、高額な修正費用が発生するとともに、修正に長い時間を要するという不都合があった。
【００１８】
なお、ＳＣＳＩデバイスを制御するアプリケーションソフトウェアを修正しないで、ＵＳＢデバイスを認識する方法として、ＳＣＳＩデバイスとして認識される特殊なＵＳＢデバイスを用いることが考えられる。しかし、この場合は、ＵＳＢマスストレージクラスドライバ及びＵＳＢポートドライバの修正も必要となり、他社製品の場合には、修正不可であったり、アプリケーションソフトウェアの修正よりも更にコストが高くなるという不都合があった。
【００１９】
本発明は、かかる事情の下になされたもので、その第１の目的は、コストアップを招くことなく、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御することができる情報処理装置を提供することにある。
【００２０】
また、本発明の第２の目的は、コストアップを招くことなく、目的に応じたシステム構築ができる情報処理システムを提供することにある。
【００２１】
また、本発明の第３の目的は、コストアップを招くことなく、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御することができる情報処理方法を提供することにある。
【００２２】
また、本発明の第４の目的は、情報処理装置に対して、コストアップを招くことなく、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御することを可能にするプログラム及びそのプログラムが記録された記録媒体を提供することにある。
【課題を解決するための手段】
【００２３】
本発明は、第１の観点からすると、ＵＳＢポートと、前記ＵＳＢポートを制御するＵＳＢポートドライバを有し、ＵＳＢ規格とは異なるインタフェース規格であるＳＣＳＩまたはＳＡＳ規格のインタフェースに対応し、デバイス制御を行うソフトウェアと、前記ＵＳＢポートにおけるＵＳＢデバイスの着脱を監視し、該着脱がなされると、前記ＳＣＳＩまたはＳＡＳ規格のインタフェースに対応する仮想ポートにおける前記ＵＳＢデバイスの着脱を前記ソフトウェアに認識させ、前記ＵＳＢデバイスに対して発行されたコマンドを、前記ＵＳＢポートドライバに転送するパススルー機能を有する仮想ミニポートドライバとを備える情報処理装置であって、前記仮想ミニポートドライバは、前記ＵＳＢデバイスに対して発行されるＳＩＬＩ（Ｓｕｐｐｒｅｓｓ  Ｉｎｃｏｒｒｅｃｔ  Ｌｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）の設定内容が有効か否かを判断し、当該設定内容が有効と判断した場合は、無効に変更するとともに、前記ＳＩＬＩの設定内容を変更したか否かの情報がセットされるＳＩＬＩ変更フラグに前記設定内容が有効から無効に変更した旨の変更済み情報をセットし、前記リードコマンドで要求されたブロックサイズと前記ＵＳＢデバイスから読み込んだ実際のブロックサイズとが不一致の場合に、前記ＵＳＢデバイスから出力されたセンス情報を受け取ったことに基づいて、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされているか否かを判断し、前記変更済み情報がセットされていると判断した場合は、前記センス情報から前記要求されたブロックサイズと前記実際のブロックサイズとの差に関するデータを抽出し、この抽出したデータに基づいて、前記実際のブロックサイズを前記ＵＳＢデバイスからの転送サイズとする転送サイズ設定処理を実行した後にデータ情報を出力し、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされていないと判断した場合は、前記転送サイズ設定処理を実行せず前記データ情報を出力する情報処理装置である。
【００２４】
これによれば、コストアップを招くことなく、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御することができる。
【００２５】
本発明は、第２の観点からすると、本発明の情報処理装置と、前記情報処理装置のＵＳＢポートに着脱されたＵＳＢデバイスと、を備える情報処理システムである。
【００２６】
これによれば、コストアップを招くことなく、目的に応じたシステム構築ができる。
【００２７】
本発明は、第３の観点からすると、ＵＳＢポートと、該ＵＳＢポートを制御するＵＳＢポートドライバとを備え、ＵＳＢ規格とは異なるインタフェース規格であるＳＣＳＩまたはＳＡＳ規格のインタフェースに対応するソフトウェアを実行するための情報処理装置における情報処理方法であって、前記ＵＳＢポートにおいてＵＳＢデバイスの着脱がなされると、前記ＳＣＳＩまたはＳＡＳ規格のインタフェースに対応する仮想ポートにおいて前記ＵＳＢデバイスの着脱がなされたとする工程と、前記ＵＳＢデバイスに対してコマンドが発行されると、該コマンドを前記ＵＳＢポートドライバに転送する工程とを含む情報処理方法であって、前記ＵＳＢデバイスに対して発行されるＳＩＬＩ（Ｓｕｐｐｒｅｓｓ  Ｉｎｃｏｒｒｅｃｔ  Ｌｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）の設定内容が有効か否かを判断する工程と、当該設定内容が有効と判断した場合は、無効に変更する工程と、前記ＳＩＬＩの設定内容を変更したか否かの情報がセットされるＳＩＬＩ変更フラグに前記設定内容が有効から無効に変更した旨の変更済み情報をセットする工程と、前記リードコマンドで要求されたブロックサイズと前記ＵＳＢデバイスから読み込んだ実際のブロックサイズとが不一致の場合に、前記ＵＳＢデバイスから出力されたセンス情報を受け取ったことに基づいて、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされているか否かを判断する工程と、前記変更済み情報がセットされていると判断した場合は、前記センス情報から前記要求されたブロックサイズと前記実際のブロックサイズとの差に関するデータを抽出するデータ抽出工程と、前記データ抽出工程において抽出したデータに基づいて、前記実際のブロックサイズを前記ＵＳＢデバイスからの転送サイズとする転送サイズ設定処理工程と、前記転送サイズ設定処理工程後にデータ情報を出力する工程と、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされていないと判断した場合は、前記データ抽出工程及び前記転送サイズ設定処理工程を行わず、前記データ情報を出力する工程とを更に含む情報処理方法である。
【００２８】
これによれば、コストアップを招くことなく、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御することができる。
【００２９】
本発明は、第４の観点からすると、ＵＳＢポートと、該ＵＳＢポートを制御するＵＳＢポートドライバとを備え、ＵＳＢ規格とは異なるインタフェース規格であるＳＣＳＩまたはＳＡＳ規格のインタフェースに対応するソフトウェアを実行するための情報処理装置に用いられるプログラムであって、前記ＵＳＢポートにおいてＵＳＢデバイスの着脱がなされると、前記ＳＣＳＩまたはＳＡＳ規格のインタフェースに対応する仮想ポートにおいて前記ＵＳＢデバイスの着脱がなされたとする手順と、前記ＵＳＢデバイスに対して発行されたコマンドを前記ＵＳＢポートドライバにパススルーする手順とを前記情報処理装置の制御用コンピュータに実行させるプログラムであって、前記ＵＳＢデバイスに対して発行されるＳＩＬＩ（Ｓｕｐｐｒｅｓｓ  Ｉｎｃｏｒｒｅｃｔ  Ｌｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）の設定内容が有効か否かを判断する手順と、当該設定内容が有効と判断した場合は、無効に変更する手順と、前記ＳＩＬＩの設定内容を変更したか否かの情報がセットされるＳＩＬＩ変更フラグに前記設定内容が有効から無効に変更した旨の変更済み情報をセットする手順と、前記リードコマンドで要求されたブロックサイズと前記ＵＳＢデバイスから読み込んだ実際のブロックサイズとが不一致の場合に、前記ＵＳＢデバイスから出力されたセンス情報を受け取ったことに基づいて、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされているか否かを判断する手順と、前記変更済み情報がセットされていると判断した場合は、前記センス情報から前記要求されたブロックサイズと前記実際のブロックサイズとの差に関するデータを抽出する手順と、この抽出したデータに基づいて、前記実際のブロックサイズを前記ＵＳＢデバイスからの転送サイズとする転送サイズ設定処理を実行する手順と、前記転送サイズ設定処理を実行した後にデータ情報を出力する手順と、前記ＳＩＬＩ変更フラグに前記変更済み情報がセットされていないと判断した場合は、前記転送サイズ設定処理を実行せず前記データ情報を出力する手順とを、前記制御コンピュータに更に実行させるプログラムである。
【００３０】
これによれば、情報処理装置に対して、コストアップを招くことなく、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御させることが可能となる。
【００３１】
本発明は、第５の観点からすると、本発明のプログラムが記録されたコンピュータ読み取り可能な記録媒体である。
【００３２】
これによれば、本発明のプログラムが記録されているために、コンピュータに実行させることにより、コストアップを招くことなく、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御させることが可能となる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態に係る情報処理システムの構成を説明するためのブロック図である。
【図２】図１における情報処理装置の構成を説明するためのブロック図である。
【図３】ＯＳに含まれる各種ドライバを説明するためのブロック図である。
【図４】仮想ＳＣＳＩミニポートドライバを説明するためのブロック図（その１）である。
【図５】仮想ＳＣＳＩミニポートドライバを説明するためのブロック図（その２）である。
【図６】テープＲＷソフトウェアとドライバとの関係を説明するためのブロック図である。
【図７】リード（ＲＥＡＤ）コマンドのフォーマットを説明するための図である。
【図８】テープＲＷソフトウェア５００から発行されたコマンドの流れを説明するための図である。
【図９】ＳＲＢの構造を説明するための図である。
【図１０】テープＲＷソフトウェアで発行されたコマンドを受け取ったときの、仮想ＳＣＳＩミニポートドライバの動作を説明するためのフローチャートである。
【図１１】ステータス情報のフォーマットを説明するための図である。
【図１２】センス情報の要求（ＲＥＱＵＥＳＴ  ＳＥＮＳＥ）コマンドのフォーマットを説明するための図である。
【図１３】センス情報のフォーマットを説明するための図である。
【図１４】センス情報を受け取ったときの、仮想ＳＣＳＩミニポートドライバの動作を説明するためのフローチャートである。
【図１５】指定されたブロックサイズと実際に記録されているブロックサイズとが不一致の場合の、テープＲＷソフトウェアとテープ装置との間の主なやりとりを説明するための図である。
【図１６】指定されたブロックサイズと実際に記録されているブロックサイズとが一致している場合の、テープＲＷソフトウェアとテープ装置との間の主なやりとりを説明するための図である。
【図１７】仮想ＳＡＳミニポートドライバを説明するためのブロック図である。
【図１８】各種デバイスとＯＳとの従来の関係を説明するためのブロック図である。
【図１９】従来の不都合を説明するためのブロック図である。
【発明を実施するための形態】
【００３４】
以下、本発明の一実施形態を図１〜図１６に基づいて説明する。図１には、一実施形態に係る情報処理システム１０の概略構成が示されている。
【００３５】
この情報処理システム１０は、情報処理装置１００と、テープ装置２０５などを備えている。
【００３６】
テープ装置２０５は、記録媒体である磁気テープと、該磁気テープに対してデータの読み書きを行うためのＲＷ装置と、情報処理装置１００からの指示に応じて該ＲＷ装置を制御する制御装置などから構成されている。なお、磁気テープはカートリッジ化されており、取り替えることが可能である。
【００３７】
磁気テープには、ブロックサイズの異なる複数のブロックにそれぞれデータが記録されている。
【００３８】
ここでは、テープ装置２０５は、ＵＳＢ規格に対応している。
【００３９】
情報処理装置１００は、一例として図２に示されるように、ＣＰＵ１１０、ＲＡＭ１２０、ＲＯＭ１３０、表示装置１４０、入力装置１５０、ＨＤＤ装置１６０、光ディスク装置１７０、及びＵＳＢポートＰｕなどを有している。
【００４０】
表示装置１４０は、表示器として液晶ディスプレイを含み、ＣＰＵ１１０から指示された各種情報を表示する。
【００４１】
入力装置１５０は、入力媒体としてキーボードを含み、操作者から入力された各種情報をＣＰＵ１１０に通知する。
【００４２】
ＨＤＤ装置１６０は、記録媒体であるハードディスクと、該ハードディスクに対してデータの読み書きを行うためのＲＷ装置と、ＣＰＵ１１０の指示に応じて前記ＲＷ装置を制御する制御装置などから構成されている。そして、ハードディスクには、ＯＳを含む複数のプログラム、該複数のプログラムで用いられる各種データなどが記録されている。
【００４３】
光ディスク装置１７０は、記録媒体である光ディスクに対してデータの読み書きを行うためのＲＷ装置と、ＣＰＵ１１０の指示に応じて該ＲＷ装置を制御する制御装置などから構成されている。
【００４４】
ＣＰＵ１１０は、ＲＯＭ１３０及びＲＡＭ１２０に格納されているプログラムを実行することができる。
【００４５】
ＲＯＭ１３０には、電源投入時にＣＰＵ１１０によって実行されるプログラム、いわゆるブートプログラムが格納されている。このブートプログラムが実行されると、ハードディスクに記録されているＯＳがＲＡＭ１２０に転送される。
【００４６】
ＣＰＵ１１０は、ブートプログラムの実行が完了すると、ＲＡＭ１２０に転送されたＯＳを起動する。
【００４７】
ＵＳＢポートＰｕには、テープ装置２０５が接続される。
【００４８】
ここでは、情報処理装置１００として、パーソナルコンピュータが用いられている。そして、ＯＳ（オペレーティングシステム）として、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）が用いられている。
【００４９】
ＯＳは、一例として図３に示されるように、ストレージクラスドライバ３０１、ストレージポートドライバ３０３、ＵＳＢマスストレージクラスドライバ３０５、ＳＣＳＩミニポートドライバ３０７、ＳＡＳミニポートドライバ３０９、ＵＳＢポートドライバ３１１を含んでいる。なお、ストレージクラスドライバ３０１を特定する必要がある場合は、便宜上、ＳＣＳＩデバイスに対応するストレージクラスドライバ３０１を「ストレージクラスドライバ３０１ａ」、ＳＡＳデバイスに対応するストレージクラスドライバ３０１を「ストレージクラスドライバ３０１ｂ」、ＵＳＢデバイスに対応するストレージクラスドライバ３０１を「ストレージクラスドライバ３０１ｃ」ともいう。
【００５０】
ストレージクラスドライバ３０１は、各ストレージに共通する機能が実装されたドライバであり、ストレージの種類に応じた機能を提供する。例えば、ストレージがテープの場合は、テープドライバとも呼ばれ、テープ巻戻しやテープ排出などのテープ装置を制御する特有の機能を有している。また、ストレージがディスクの場合は、ディスクドライバとも呼ばれ、ディスク容量を取得する特有の機能を有している。
【００５１】
ストレージポートドライバ３０３は、ＳＣＳＩプロトコルに共通する機能が実装されたドライバであり、各ポートドライバにインタフェースを提供する。
【００５２】
ＵＳＢマスストレージクラスドライバ３０５は、ＵＳＢ接続機器をストレージ装置として制御するためのドライバであり、該ＵＳＢマスストレージクラスドライバ３０５上でストレージクラスドライバ３０１が動作するのを可能にする。なお、ＵＳＢマスストレージクラスドライバ３０５がない場合は、各ＵＳＢ接続機器に対応した専用のドライバが必要となる。
【００５３】
ＳＣＳＩミニポートドライバ３０７は、ＳＣＳＩポートを制御する。ＳＡＳミニポートドライバ３０９は、ＳＡＳポートを制御する。ＵＳＢポートドライバ３１１は、ＵＳＢポートを制御する。
【００５４】
本実施形態では一例として図４に示されるように、情報処理装置１００は、ＯＳ上で動作する仮想ＳＣＳＩミニポートドライバ４０１を有している。この仮想ＳＣＳＩミニポートドライバ４０１は、ＯＳ上に仮想のＳＣＳＩポートＰｓを作成する。なお、ストレージクラスドライバ３０１を特定する必要がある場合は、便宜上、仮想のＳＣＳＩポートＰｓに仮想的に接続されたデバイスに対応するストレージクラスドライバ３０１を「ストレージクラスドライバ３０１ｄ」ともいう。
【００５５】
なお、仮想ＳＣＳＩミニポートドライバ４０１は、ハードディスクに記録されており、ＯＳとともにＲＡＭ１２０に転送される。そして、仮想ＳＣＳＩミニポートドライバ４０１は、ＯＳに続いて起動される。
【００５６】
ここでは、この仮想ＳＣＳＩミニポートドライバ４０１は、図５に示されるように、ストレージポートドライバ３０３とストレージクラスドライバ３０１ｃとの間に位置している。
【００５７】
そして、仮想ＳＣＳＩミニポートドライバ４０１は、ＵＳＢポートＰｕにおけるＵＳＢデバイスの着脱を監視し、該着脱がなされると、仮想のＳＣＳＩポートＰｓにおける該ＵＳＢデバイスの着脱情報をストレージポートドライバ３０３に通知する。
【００５８】
このときの仮想ＳＣＳＩミニポートドライバ４０１及びストレージポートドライバ３０３の動作について簡単に説明する。
（１）仮想ＳＣＳＩミニポートドライバ４０１は、起動すると、ＵＳＢポートＰｕにおけるＵＳＢデバイスの着脱を監視するワーカースレッドを作成する。
（２）このワーカースレッドが、ストレージクラスドライバ３０１ｃからの情報に基づいて、ＵＳＢポートＰｕにおけるデバイスの着脱状態の変化を監視する。
（３）ワーカースレッドが上記着脱状態の変化を検知すると、仮想ＳＣＳＩミニポートドライバ４０１は、デバイスの着脱状態に変更があったことをストレージポートドライバ３０３に通知する。
（４）すると、ストレージポートドライバは、仮想ＳＣＳＩミニポートドライバ４０１に対して、デバイスの着脱状態のチェックを指示する。
（５）仮想ＳＣＳＩミニポートドライバ４０１は、ストレージクラスドライバ３０１ｃからの情報に基づいて、ＵＳＢポートＰｕにおけるデバイスの着脱状態をチェックし、その結果をストレージポートドライバ３０３に通知する。
【００５９】
これにより、ストレージポートドライバ３０３は、仮想のＳＣＳＩポートＰｓ（実際は、ＵＳＢポートＰｕ）におけるデバイスの着脱状態を認識することができる。
【００６０】
そして、ストレージポートドライバ３０３は、仮想のＳＣＳＩポートＰｓにデバイス（ここでは、ＵＳＢデバイス）が接続されると、該デバイスを、ＳＣＳＩデバイスとしてレジストリに登録する。このとき、ＵＳＢマスストレージクラスドライバ３０５は、該デバイスを、ＵＳＢデバイスとしてレジストリに登録する。すなわち、該デバイスは、ＳＣＳＩデバイス及びＵＳＢデバイスとしてレジストリに登録される。
【００６１】
また、仮想ＳＣＳＩミニポートドライバ４０１は、仮想ＳＣＳＩミニポートドライバ４０１を経由する全てのコマンドを、ストレージクラスドライバ３０１ｃ及びＵＳＢマスストレージクラスドライバ３０５を介してＵＳＢポートドライバ３１１に、そのフォーマットを変更することなく転送するパススルー機能を有している。
【００６２】
ＳＣＳＩインタフェースでは、それぞれのデバイスに対してＩＤが必要となる。前記ワーカースレッドが接続状態の変化を監視することにより、０〜１５のＩＤをチェックし、仮想ＳＣＳＩポートに空いてるＩＤを割り当てる。
【００６３】
次に、テープ装置２０５にセットされている磁気テープに記録されているデータをハードディスクにコピーする場合について説明する。ここでは、すでにＵＳＢポートＰｕにテープ装置２０５が接続されているものとする。
【００６４】
操作者は、入力装置１５０を介して、ＳＣＳＩ規格に対応したテープ装置用に作成され、該テープ装置に対してデータの読み書きを行うためのアプリケーションソフトウェアであるテープＲＷソフトウェア（以下では、「テープＲＷソフトウェア５００」という）を起動させる。なお、該テープＲＷソフトウェア５００は、ハードディスクに記録されており、操作者の起動要求があると、ＯＳによってＲＡＭ１２０に転送され、起動される。
【００６５】
テープＲＷソフトウェアは、磁気テープに記憶されているデータのレコード形式が固定長、及び可変長に対応している。操作者は、磁気テープのレコード形式に応じて、固定長、又は可変長を選択することができる。なお、ここでは、磁気テープに記憶されているデータのレコード形式が、可変長形式の場合について説明する。
【００６６】
図６には、テープＲＷソフトウェア５００と各ドライバとの関係が示されている。
【００６７】
テープＲＷソフトウェア５００は、起動されると、レジストリを検索し、ＳＣＳＩデバイスとして登録されているデバイスを、制御対象のデバイスとする。ここでは、テープ装置２０５が制御対象のデバイスとされる。すなわち、テープＲＷソフトウェア５００は、仮想ＳＣＳＩポートＰｓにテープ装置２０５が接続されていることを認識する。
【００６８】
なお、テープＲＷソフトウェア５００は、制御対象のデバイスを、ストレージクラスドライバ３０１ｄを介してストレージポートドライバ３０３に問い合わせても良い。
【００６９】
そして、テープＲＷソフトウェア５００は、初期メニュー画面を表示装置１４０に表示させる。
【００７０】
操作者は、入力装置１５０を介して、コピーするブロックのサイズを指定してハードディスクへのコピー（以下では、便宜上、単に「コピー処理」ともいう）をテープＲＷソフトウェア５００に指示する。これにより、テープＲＷソフトウェア５００から、テープ装置２０５に対するリード（ＲＥＡＤ）コマンドが発行される。なお、ここでは、磁気テープに記録されている実際のブロックサイズが不明であるため、操作者は、大きめのブロックサイズを指定する。
【００７１】
テープＲＷソフトウェア５００から発行されるリードコマンドのフォーマットが図７に示されている。操作者が指定したブロックサイズは、「Ｔｒａｎｓｆｅｒ  Ｌｅｎｇｔｈ」にバイト単位でセットされる。
【００７２】
ここで、テープＲＷソフトウェア５００から発行されたコマンドの流れについて図８を用いて説明する。
【００７３】
テープＲＷソフトウェア５００からコマンドが発行されると、該コマンドは、ストレージクラスドライバ３０１ａ、ストレージクラスドライバ３０１ｂ及びストレージクラスドライバ３０１ｄに送られる。該コマンドを受け取った各ストレージクラスドライバは、ＳＣＳＩデバイスでの該コマンドの実行に必要なパラメータ情報を該コマンドに付加し、いわゆるＳＲＢ（ＳＣＳＩ  ＲＥＱＵＥＳＴ  ＢＬＯＣＫ）形式（図９参照）にして、ストレージポートドライバ３０３に送出する。
【００７４】
ここで、ＳＲＢ形式について簡単に説明する。図９において、項目名「Ｆｕｎｃｔｉｏｎ」は、要求するオペレーションに関する情報がセットされ、例えば、要求するコマンドがＳＣＳＩコマンドであれば、「ＳＲＢ＿ＦＵＮＣＴＩＯＮ＿ＥＸＥＣＵＴＥ＿ＳＣＳＩ（０ｘ００）」がセットされる。
【００７５】
項目名「ＳｒｂＳｔａｔｕｓ」は、要求完了時のステータスに関する情報がセットされ、例えば、デバイスへのコマンドの発行が成功であれば、「ＳＲＢ＿ＳＴＡＴＵＳ＿ＳＵＣＳＳＥＳ（０ｘ０１）」がセットされる。なお、装置がいわゆる「ＣＨＥＣＫ  ＣＯＮＤＩＴＩＯＮ」を返したときも、成功として扱われる。
【００７６】
項目名「ＳｃｓｉＳｔａｔｕｓ」は、ＳＣＳＩコマンドの結果に関する情報がセットされ、例えば、正常終了であれば、「ＳＣＳＩＳＴＡＴ＿ＧＯＯＤ（０ｘ００）」がセットされ、いわゆる「ＣＨＥＣＫ  ＣＯＮＤＩＴＩＯＮ」であれば、「ＳＣＳＩＳＴＡＴ＿ＣＨＥＣＫ＿ＣＯＮＤＩＴＩＯＮ（０ｘ０２）」がセットされる。
【００７７】
項目名「ＤａｔａＴｒａｎｓｆｅｒＬｅｎｇｔｈ」は、データ入出力バッファのサイズに関する情報がセットされ、実際に転送されたデータサイズがバッファサイズ未満であれば、実際に転送されたデータサイズで上書きされる。
【００７８】
項目名「Ｃｄｂ」は、「Ｃｏｍｍａｎｄ  Ｄｅｓｃｒｉｐｔｅｒ  Ｂｌｏｃｋ」であり、デバイスに発行するコマンド関する情報がセットされる。
【００７９】
ストレージポートドライバ３０３は、該ＳＲＢを各ポートドライバに送出する。そして、仮想ＳＣＳＩミニポートドライバ４０１が受け取ったＳＲＢは、ストレージクラスドライバ３０１ｃを介してＵＳＢマスストレージクラスドライバ３０５に転送される。
【００８０】
ＵＳＢマスストレージクラスドライバ３０５は、受け取ったＳＲＢに含まれるコマンドに、ＵＳＢデバイスでの該コマンドの実行に必要なパラメータ情報を付加し、いわゆるＵＲＢ（ＵＳＢ  ＲＥＱＵＥＳＴ  ＢＬＯＣＫ）形式にして、ＵＳＢポートドライバ３１１に送出する。
【００８１】
テープＲＷソフトウェア５００で発行されたコマンドを受け取ったときの、仮想ＳＣＳＩミニポートドライバ４０１の動作について、図１０のフローチャートを用いて説明する。図１０のフローチャートは、このときに仮想ＳＣＳＩミニポートドライバ４０１で実行される一連の処理アルゴリズムに対応している。この処理アルゴリズムは、ＣＰＵ１１０で実行される。
【００８２】
最初のステップＳ４０１では、受け取ったコマンドがリードコマンドであるか否かを判断する。ここでは、該コマンドはリードコマンドであるため、ここでの判断は肯定され、ステップＳ４０３に移行する。
【００８３】
このステップＳ４０３では、リードコマンドに含まれるＳＩＬＩ（Ｓｕｐｐｒｅｓｓ  Ｉｎｃｏｒｒｅｃｔ  Ｌｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）（図７参照）の設定内容を変更したか否かの情報がセットされるＳＩＬＩ変更フラグに「０」をセットし、初期化する。
【００８４】
次のステップＳ４０５では、リードコマンドに含まれるＳＩＬＩの設定内容が「１」すなわち「有効」であるか否かを判断する。ＳＩＬＩの設定内容が「有効」であれば、ここでの判断は肯定され、ステップＳ４０７に移行する。
【００８５】
このステップＳ４０７では、ＳＩＬＩの設定内容を「０」すなわち「無効」に変更する。
【００８６】
次のステップＳ４０９では、ＳＩＬＩ変更フラグに、ＳＩＬＩの設定内容が変更されたことを意味する「１」をセットする。
【００８７】
次のステップＳ４１１では、該コマンドが含まれるＳＲＢを、ストレージクラスドライバ３０１ｃに転送し、テープＲＷソフトウェア５００で発行されたコマンドを受け取ったときの処理を終了する。
【００８８】
なお、上記ステップＳ４０５において、ＳＩＬＩの設定内容が「有効」でなければ、ステップＳ４０５での判断は否定され、上記ステップＳ４１１に移行する。
【００８９】
また、上記ステップＳ４０１において、受け取ったコマンドがリードコマンドでなければ、ステップＳ４０１での判断は否定され、上記ステップＳ４１１に移行する。
【００９０】
仮想ＳＣＳＩミニポートドライバ４０１から送出されたＳＲＢは、ストレージクラスドライバ３０１ｃを介してＵＳＢマスストレージクラスドライバ３０５に転送され、ＵＳＢマスストレージクラスドライバ３０５でＵＲＢに変換され、ＵＳＢポートドライバ３１１、ＵＳＢポートＰｕを介してテープ装置２０５に送られる。
【００９１】
テープ装置２０５は、該ＵＲＢを受け取ると、該ＵＲＢに含まれるコマンド（ここでは、リードコマンド）を実行する。
【００９２】
ここでは、ＳＩＬＩの設定内容が「無効」とされているため、テープ装置２０５は、指定されたブロックサイズと磁気テープに実際に記録されているブロックサイズとが不一致の場合には、「Ｓｔａｔｕｓ  Ｃｏｄｅ」に「ＣＨＥＣＫ  ＣＯＮＤＩＴＩＯＮ」を意味する「０ｘ０２」をセットしたステータス情報（図１１参照）を情報処理装置１００に出力する。一方、テープ装置２０５は、指定されたブロックサイズと磁気テープに実際に記録されているブロックサイズとが一致している場合には、「Ｓｔａｔｕｓ  Ｃｏｄｅ」に「ＧＯＯＤ」を意味する「０ｘ００」をセットしたステータス情報を情報処理装置１００に出力する。
【００９３】
また、テープ装置２０５は、ブロックデータ及び転送サイズが含まれるデータ情報を情報処理装置１００に出力する。
【００９４】
ＵＳＢポートドライバ３１１は、ステータス情報を受け取ると、「Ｓｔａｔｕｓ  Ｃｏｄｅ」をチェックし、「０ｘ０２」すなわち「ＣＨＥＣＫ  ＣＯＮＤＩＴＩＯＮ」であれば、センス情報の要求コマンド（ＲＥＱＵＥＳＴ  ＳＥＮＳＥ）（図１２参照）をテープ装置２０５に送出する。
【００９５】
一方、「Ｓｔａｔｕｓ  Ｃｏｄｅ」が「０ｘ００」すなわち「ＧＯＯＤ」であれば、ＵＳＢポートドライバ３１１は、データ情報をＵＳＢマスストレージクラスドライバ３０５に転送する。このデータ情報は、ストレージクラスドライバ３０１ｃ、仮想ＳＣＳＩミニポートドライバ４０１、ストレージポートドライバ３０３、及びストレージクラスドライバ３０１ｄを介して、テープＲＷソフトウェア５００に送られる。
【００９６】
テープ装置２０５は、センス情報の要求コマンド（ＲＥＱＵＥＳＴ  ＳＥＮＳＥ）を受け取ると、指定されたブロックサイズと実際に記録されているブロックサイズとの差に関するデータが含まれるセンス情報（図１３参照）を情報処理装置１００に出力する。
【００９７】
なお、ＳＩＬＩの設定内容が「無効」で、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致の場合、「Ｖａｌｉｄ」に「１」、「ＩＬＩ（Ｉｌｌｅｇａｌ  Ｌｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）」に「１」、「ＳＥＮＳＥ  ＫＥＹ」に「０」、「Ｉｎｆｏｒｍａｔｉｏｎ」に指定されたブロックサイズと実際に記録されているブロックサイズとの差、「Ａｄｄｉｔｉｏｎａｌ  Ｓｅｎｓｅ  Ｃｏｄｅ」に「０」、「Ａｄｄｉｔｉｏｎａｌ  Ｓｅｎｓｅ  Ｃｏｄｅ  Ｑｕａｌｉｆｉｅｒｓ」に「０」が、それぞれセットされる。
【００９８】
ここで、「Ｖａｌｉｄ」にセットされた「１」は、「Ｉｎｆｏｒｍａｔｉｏｎ」が有効であることを意味している。また、「ＩＬＩ（Ｉｌｌｅｇａｌ  Ｌｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）」にセットされた「１」は、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致であることを意味している。
【００９９】
このセンス情報は、ＵＳＢポートドライバ３１１、ＵＳＢマスストレージクラスドライバ３０５、及びストレージクラスドライバ３０１ｃを介して、仮想ＳＣＳＩミニポートドライバ４０１に送られる。
【０１００】
センス情報を受け取ったときの仮想ＳＣＳＩミニポートドライバ４０１の動作について、図１４のフローチャートを用いて説明する。図１４のフローチャートは、このときに実行される一連の処理アルゴリズムに対応している。この処理アルゴリズムは、ＣＰＵ１１０で実行される。
【０１０１】
最初のステップＳ５０１では、ＳＩＬＩ変更フラグが「１」であるか否かを判断する。ＳＩＬＩ変更フラグが「１」であれば、ここでの判断は肯定され、ステップＳ５０３に移行する。
【０１０２】
このステップＳ５０３では、センス情報から、指定されたブロックサイズと実際に記録されているブロックサイズとの差に関するデータを抽出する。
【０１０３】
次のステップＳ５０５では、上記指定されたブロックサイズと実際に記録されているブロックサイズとの差に関するデータから、実際に記録されているブロックサイズを算出する。例えば、指定されたブロックサイズと実際に記録されているブロックサイズとの差が６００バイトであり、指定されたブロックサイズが１０００バイトであれば、４００バイトを実際に記録されているブロックサイズとする。
【０１０４】
次のステップＳ５０７では、上記算出された実際に記録されているブロックサイズを、データ情報における転送サイズにセットする。上記の例では、４００バイトが転送サイズにセットされる。具体的には、前述したＳＲＢの構造における「ＤａｔａＴｒａｎｓｆｅｒＬｅｎｇｔｈ」にセットされる。なお、ステップＳ５０３〜Ｓ５０７までの一連の処理を「転送サイズ設定処理」という。
【０１０５】
次のステップＳ５０９では、データ情報をストレージポートドライバ３０３に送出する。そして、センス情報を受け取ったときの処理を終了する。
【０１０６】
なお、上記ステップＳ５０１において、ＳＩＬＩ変更フラグが１でなければ、ステップＳ５０１での判断は否定され、上記ステップＳ５０９に移行する。
【０１０７】
ストレージポートドライバ３０３に送出されたデータ情報は、ストレージクラスドライバ３０１ｄを介して、テープＲＷソフトウェア５００に送られる。
【０１０８】
そして、テープＲＷソフトウェア５００は、テープ装置２０５から読み出されたブロックデータをハードディスクにコピーする。これにより、コピー処理は終了する。
【０１０９】
ところで、仮にＳＩＬＩの設定内容が「有効」とされていると、テープ装置２０５は、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致であっても、指定されたブロックサイズを転送サイズとして、データ情報を送出する。
【０１１０】
なお、従来のＳＣＳＩ規格に対応したテープ装置では、ＳＩＬＩの設定内容が「有効」とされている場合に、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致であっても、実際に記録されているブロックサイズを転送サイズとして、データ情報を送出していた。
【０１１１】
そこで、本実施形態において、仮にＳＩＬＩの設定内容が「有効」とされていると、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致の場合に、テープＲＷソフトウェア５００は、実際に記録されているブロックサイズを誤ることとなり、異常動作をするおそれがある。
【０１１２】
しかしながら、本実施形態では、前述した如く、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致であっても、実際に記録されているブロックサイズが転送サイズとされているため、テープＲＷソフトウェア５００は、正常に動作することができる。
【０１１３】
図１５及び図１６は、前述したテープＲＷソフトウェア５００とテープ装置２０５との間の主なやりとりをわかりやすく図示したものである。なお、図１５は、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致の場合であり、図１６は、指定されたブロックサイズと実際に記録されているブロックサイズとが一致している場合である。
【０１１４】
以上の説明から明らかなように、ＣＰＵ１１０によって、本発明の情報処理方法が実施されている。なお、ＣＰＵ１１０によるプログラムに従う処理の少なくとも一部をハードウェアによって構成することとしても良いし、あるいは全てをハードウェアによって構成することとしても良い。
【０１１５】
また、情報処理装置１００のＣＰＵ１１０によって、本発明の制御用コンピュータが構成され、ＨＤＤ装置１６０のハードディスクによって、本発明の記録媒体が構成されている。
【０１１６】
以上説明したように、本実施形態に係る情報処理装置１００によると、ＣＰＵ１１０、ＲＡＭ１２０、ＲＯＭ１３０、表示装置１４０、入力装置１５０、ＨＤＤ装置１６０、光ディスク装置１７０、及びＵＳＢポートＰｕなどを有している。
【０１１７】
ハードディスクには、ＯＳ及び仮想ＳＣＳＩミニポートドライバ４０１などが記録されている。
【０１１８】
ＣＰＵ１１０は、電源が投入されると、ＲＯＭ１３０に格納されているブートプログラムを実行した後、ＯＳ及び仮想ＳＣＳＩミニポートドライバ４０１をＲＡＭ１２０に転送し、ＯＳ及び仮想ＳＣＳＩミニポートドライバ４０１を起動する。
【０１１９】
仮想ＳＣＳＩミニポートドライバ４０１は、ＵＳＢポートＰｕに対するデバイスの着脱を監視し、着脱があると、仮想ＳＣＳＩポートに対してデバイスの着脱があったことをテープＲＷソフトウェア５００に認識させる。
【０１２０】
また、仮想ＳＣＳＩミニポートドライバ４０１は、テープ装置２０５に対して発行されたコマンドを、そのフォーマットを変えることなく、ストレージクラスドライバ３０１ｃ及びＵＳＢマスストレージクラスドライバ３０５を介してＵＳＢポートドライバ３１１に転送するパススルー機能を有している。
【０１２１】
また、仮想ＳＣＳＩミニポートドライバ４０１は、テープＲＷソフトウェア５００でリードコマンドが発行され、該リードコマンドに含まれるＳＩＬＩの設定内容が「有効」であれば、「無効」に変更して送出する。
【０１２２】
この場合、仮想ＳＣＳＩミニポートドライバ４０１は、テープ装置２０５からのセンス情報を受け取ると、実際に読み出されたブロックサイズを算出し、その算出結果をデータ情報における転送サイズにセットする。このデータ情報は、ストレージポートドライバ３０３及びストレージクラスドライバ３０１ｄを介して、テープＲＷソフトウェア５００に送られる。
【０１２３】
このように、仮想ＳＣＳＩミニポートドライバ４０１を用いることにより、ＳＣＳＩ規格に対応したテープ装置用に作成されたアプリケーションソフトウェアを、そのままＵＳＢ規格に対応したテープ装置の制御に使用することができる。
【０１２４】
そこで、コストアップを招くことなく、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御することができる。
【０１２５】
そして、情報処理システム１０は、情報処理装置１００を備えているため、結果として、コストアップを招くことなく、目的に応じたシステムを構築することができる。
【０１２６】
ところで、特許文献１は、ＵＳＢ接続インタフェースをシリアルポートインタフェースと見なし、ＵＳＢインタフェースから入力される信号をシリアルポートプロトコルに基づいて処理可能な仮想シリアルポートドライバを備えている。しかしながら、磁気テープ装置に関する記載はない。
【０１２７】
特許文献２には、仮想通信ポートの作成・削除について記載されている。しかしながら、アプリケーションソフトウェアが対応していないインタフェースに対する具体的記載はない。
【０１２８】
特許文献３には、ＳＩＬＩが１に設定、又は１に設定されていない場合の処理が記載されている。しかしながら、磁気テープの記憶形式に対応する具体的記載はない。
【０１２９】
なお、上記実施形態では、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアとして、ＳＣＳＩ規格に対応するテープＲＷソフトウェア５００が用いられる場合について説明したが、これに限定されるものではない。例えば、図１７に示されるように、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアとして、ＳＡＳ規格に対応するテープＲＷソフトウェア５０３が用いられても良い。この場合は、前記仮想ＳＣＳＩミニポートドライバ４０１に代えて、仮想ＳＡＳミニポートドライバ４０３が用いられる。なお、便宜上、仮想のＳＡＳポートに仮想的に接続されたデバイスに対応するストレージクラスドライバ３０１を「ストレージクラスドライバ３０１ｅ」ともいう。
【０１３０】
この仮想ＳＡＳミニポートドライバ４０３は、ＵＳＢポートＰｕに対するデバイスの着脱を監視し、着脱があると、仮想ＳＡＳポートに対してデバイスの着脱があったことをテープＲＷソフトウェア５０３に認識させる。
【０１３１】
また、仮想ＳＡＳミニポートドライバ４０３は、テープ装置２０５に対して発行されたコマンドを、そのフォーマットを変えることなく、ストレージクラスドライバ３０１ｃ及びＵＳＢマスストレージクラスドライバ３０５を介してＵＳＢポートドライバ３１１に転送するパススルー機能を有している。
【０１３２】
また、仮想ＳＡＳミニポートドライバ４０３は、テープＲＷソフトウェア５０３でリードコマンドが発行され、該リードコマンドに含まれるＳＩＬＩの設定内容が「有効」であれば、「無効」に変更して送出する。
【０１３３】
この場合、仮想ＳＡＳミニポートドライバ４０３は、テープ装置２０５からのセンス情報を受け取ると、実際に記録されているブロックサイズを算出し、その算出結果をデータ情報における転送サイズにセットする。該データ情報は、ストレージポートドライバ３０３及びストレージクラスドライバ３０１ｅを介して、テープＲＷソフトウェア５０３に送られる。
【０１３４】
また、上記実施形態では、仮想ＳＣＳＩポートドライバ４０１によって作成されたワーカースレッドが、ＵＳＢポートＰｕにおけるＵＳＢデバイスの着脱を監視する場合について説明したが、これに限定されるものではなく、仮想ＳＣＳＩポートドライバ４０１自身が、ＵＳＢポートＰｕにおけるＵＳＢデバイスの着脱を監視しても良い。
【０１３５】
また、上記実施形態において、磁気テープに記録されているデータを光ディスクにコピーする場合であっても、上記実施形態と同様な効果を得ることができる。
【０１３６】
また、上記実施形態において、操作者は、テープＲＷソフトウェア５００に指示して、前記ハードディスク及び光ディスクに記録されているデータをテープ装置２０５にセットされている磁気テープにコピーすることができる。
【０１３７】
また、上記実施形態では、表示装置１４０の表示器が液晶ディスプレイの場合について説明したが、これに限定されるものではない。例えば、液晶ディスプレイに代えて、ＣＲＴディスプレイ、プラズマディスプレイ、有機ＥＬディスプレイなどを用いても良い。
【０１３８】
また、上記実施形態では、仮想ＳＣＳＩミニポートドライバ４０１が、ＨＤＤ装置１６０のハードディスクに記録されている場合について説明したが、これに限定されるものではない。例えば、仮想ＳＣＳＩミニポートドライバ４０１が、光ディスクに記録されていても良い。この場合は、該光ディスクは、光ディスク装置１７０にセットされ、ＯＳとともにＲＡＭ１２０に転送される。
【０１３９】
また、上記実施形態では、情報処理装置１００として、パーソナルコンピュータが用いられる場合について説明したが、これに限定されるものではない。
【０１４０】
また、上記実施形態では、ＯＳ（オペレーティングシステム）として、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）が用いられる場合について説明したが、これに限定されるものではない。
【産業上の利用可能性】
【０１４１】
以上説明したように、本発明の情報処理装置は、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御するのに適している。また、本発明の情報処理システムは、目的に応じたシステムを構築するのに適している。また、本発明の情報処理方法は、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御するのに適している。また、本発明のプログラム及び記録媒体は、ＵＳＢ規格とは異なるインタフェース規格に対応するソフトウェアで、ＵＳＢデバイスを制御させるのに適している。
【符号の説明】
【０１４２】
１０…情報処理システム、１００…情報処理装置、１１０…ＣＰＵ（制御用コンピュータ）、１２０…ＲＡＭ、１３０…ＲＯＭ、１４０…表示装置、１５０…入力装置、１６０…ＨＤＤ装置、１７０…光ディスク装置、２０５…テープ装置（デバイス）、３０１…ストレージクラスドライバ、３０３…ストレージポートドライバ、３０５…ＵＳＢマスストレージクラスドライバ、３０７…ＳＣＳＩミニポートドライバ、３０９…ＳＡＳミニポートドライバ、３１１…ＵＳＢポートドライバ、４０１…仮想ＳＣＳＩミニポートドライバ（仮想ミニポートドライバ）、４０３…仮想ＳＡＳミニポートドライバ（仮想ミニポートドライバ）、５００…テープＲＷソフトウェア（ソフトウェア）、５０３…テープＲＷソフトウェア（ソフトウェア）、Ｐｓ…仮想ＳＣＳＩポート（仮想ポート）、Ｐｕ…ＵＳＢポート。
【図１】
0005491548.tif 000002
【図２】
0005491548.tif 000003
【図３】
0005491548.tif 000004
【図４】
0005491548.tif 000005
【図５】
0005491548.tif 000006
【図６】
0005491548.tif 000007
【図７】
0005491548.tif 000008
【図８】
0005491548.tif 000009
【図９】
0005491548.tif 000010
【図１０】
0005491548.tif 000011
【図１１】
0005491548.tif 000012
【図１２】
0005491548.tif 000013
【図１３】
0005491548.tif 000014
【図１４】
0005491548.tif 000015
【図１５】
0005491548.tif 000016
【図１６】
0005491548.tif 000017
【図１７】
0005491548.tif 000018
【図１８】
0005491548.tif 000019
【図１９】
0005491548.tif 000020