説明

デバイスドライバプログラム、計算機、デバイス接続方法

【課題】コンピュータと周辺デバイスの間の接続を維持したまま、デバイスドライバを更新することのできる技術を提供する。
【解決手段】本発明に係るデバイスドライバプログラムは、周辺デバイスとコンピュータを接続するドライバモジュールを2以上備え、いずれのドライバモジュールを稼動させるかを切り替えることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータと周辺デバイスを接続するデバイスドライバに関するものである。
【背景技術】
【0002】
近年、オープンプラットフォームシステムが基幹業務に適用されるケースが増加している。そのため、システムに搭載された多種多様な周辺デバイスに接続することができるデバイスドライバの開発が求められている。また、オープンプラットフォームシステムがミッションクリティカルな業務に用いられ、デバイスドライバに対する高信頼性への要求も高まっている。この要求に対応するため、デバイスドライバを更新して機能を向上させることが継続的に行われている。
【0003】
コンピュータシステムに組み込まれたデバイスドライバを更新するよう要求があった場合、デバイスドライバが周辺デバイスにアクセスすることを中断する必要がある。そのため、一般にデバイスドライバを更新した後にはコンピュータを再起動する必要がある。しかし、ミッションクリティカルなシステムでは、システムを再起動したり周辺デバイスに対するアクセスを停止したりすることは許容されない場合がある。そのため、システムを稼動させたままの状態で、周辺デバイスに対するアクセスを停止させることなく、デバイスドライバを更新することができる仕組みが求められている。
【0004】
下記特許文献1には、アプリケーションプログラムを動的に置換する技術が記載されている。
【0005】
下記特許文献2には、不揮発性メモリに搭載されている制御用のソフトウェアの書き換え処理を短時間で行うことを目的とした技術が記載されている。
【0006】
下記特許文献3には、OSとドライバとの間にインタフェース部を設けて多種類のOSや装置に対する差分に対応する技術が記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2005−157536号公報
【特許文献2】特開2006−301960号公報
【特許文献3】特開2003−303161号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記特許文献1〜3に記載されている技術ではいずれも、コンピュータを再起動したり周辺デバイスに対するアクセスを停止したりすることなくデバイスドライバを更新することについては、特段の考慮はなされていない。
【0009】
本発明は、上記のような課題を解決するためになされたものであり、コンピュータと周辺デバイスの間の接続を維持したまま、デバイスドライバを更新することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係るデバイスドライバプログラムは、周辺デバイスとコンピュータを接続するドライバモジュールを2以上備え、いずれのドライバモジュールを稼動させるかを切り替えることができる。
【発明の効果】
【0011】
本発明に係るデバイスドライバプログラムによれば、いずれかのドライバモジュールが稼動していれば、周辺デバイスとコンピュータの間の接続を維持することができる。これにより、いずれかのドライバモジュールを稼動させて周辺デバイスとコンピュータの間の接続を維持しつつ、稼動していないドライバモジュールを更新することができる。
【図面の簡単な説明】
【0012】
【図1】実施の形態1に係るデバイスドライバプログラムを実行するコンピュータ100の機能ブロック図である。
【図2】HBAドライバ150の構成を示す機能ブロック図である。
【図3】ドライバ管理テーブル1511の構成とデータ例を示す図である。
【図4】HBAドライバ150を初期化する手順を示すシーケンス図である。
【図5】コンピュータ100の稼働中にドライバモジュールB153を更新する手順を示すシーケンス図である。
【図6】稼動させるドライバモジュールを切り替える手順を示すシーケンス図である。
【図7】HBAドライバ150がI/O要求を受け付けた場合の処理手順を示すシーケンス図である。
【図8】HBAドライバ150が割込処理要求を受け付けた場合の処理手順を示すシーケンス図である。
【発明を実施するための形態】
【0013】
<実施の形態1>
図1は、本発明の実施の形態1に係るデバイスドライバプログラムを実行するコンピュータ100の機能ブロック図である。コンピュータ100は、CPU(Central Processing Unit)110、メモリ120、ホストバスアダプタ(HBA)H/W160を備える。メモリ120には、オペレーティングシステム(OS)130、ディスクドライバ140、HBAドライバ150が読み込まれる。
【0014】
CPU110は、オペレーティングシステム130、ディスクドライバ140、HBAドライバ150を実行する演算装置である。ホストバスアダプタH/W160は、コンピュータ100とディスクアレイシステム200を接続するインタフェース装置である。
【0015】
オペレーティングシステム130は、コンピュータ100のOSである。ディスクドライバ140は、OS130にディスクアレイシステム200を認識させてコンピュータ100とディスクアレイシステム200を接続するためのソフトウェアモジュールである。HBAドライバ150は、OS130にホストバスアダプタH/W160を認識させてコンピュータ100とホストバスアダプタH/W160を接続するためのデバイスドライバである。
【0016】
本発明に係る「デバイスドライバプログラム」は、HBAドライバ150が相当する。以下の説明では、記載の便宜上、各ドライバ等のプログラムを動作主体として説明する場合があるが、実際にこれらのプログラムを実行するのはCPU110であることを付言しておく。
【0017】
ディスクアレイシステム200は、ホストバスアダプタH/W160を介してコンピュータ100に接続される。ディスクアレイシステム200は、ディスク装置210を備える。ディスク装置210には、コンピュータ100が使用するデータが格納されている。
【0018】
図2は、HBAドライバ150の構成を示す機能ブロック図である。ドライバ間の接続関係を示すため、ディスクドライバ140を併記した。HBAドライバ150は、OSインタフェースモジュール151、ドライバモジュールA152、ドライバモジュールB153、ハードウェア(H/W)インタフェースモジュール154を備える。
【0019】
OSインタフェースモジュール151は、ディスクドライバ140を介してOS130とHBAドライバ150を接続する機能を有する。OSインタフェースモジュール151は、ディスクドライバ140のエントリポイント141に接続関数を登録することによりディスクドライバ140と接続する。
【0020】
OSインタフェースモジュール151は、ドライバモジュールA152とドライバモジュールB153のうちいずれを稼動させるかを切り替える切替モジュールとしての役割も有する。OSインタフェースモジュール151は、ドライバモジュールA152とドライバモジュールB153がそれぞれ接続するエントリポイントA1513とエントリポイントB1514を備える。
【0021】
OSインタフェースモジュール151は、上記の他、後述の図3で説明するドライバ管理テーブル1511と、各ドライバモジュールに共通する設定情報を格納するドライバモジュール共通情報1512を備える。また、ドライバモジュールを更新する要求、稼動させるドライバモジュールを切り替える要求などをOS130から受け付けるインタフェースを備える(図示せず)。
【0022】
ドライバモジュールA152とドライバモジュールB153は、HBAドライバ150が備える機能のうち、ホストバスアダプタH/W160とコンピュータ100を接続するデバイスドライバ本体部分の機能を備える。OS130とHBAドライバ150の間のインタフェースはOSインタフェースモジュール151が受け持ち、ホストバスアダプタH/W160とHBAドライバ150の間のインタフェースはH/Wインタフェースモジュール154が受け持つ。ドライバモジュールA152とドライバモジュールB153は、これらインタフェースから独立して構成されている。そのため、HBAドライバ150とOS130の間の接続、およびHBAドライバ150とホストバスアダプタH/W160の間の接続を遮断することなく、ドライバモジュールの稼動/非稼動を切り替えることができる。
【0023】
ドライバモジュールA152は、ドライバモジュールB153と共有していない個別のパラメータやドライバの管理情報を保持するドライバモジュール設定情報A1521を備える。ドライバモジュールA152を更新した際に新規追加されたパラメータ等は、ドライバモジュール設定情報A1521に格納される。同様にドライバモジュールB153は、ドライバモジュールA1521と共有していない個別のパラメータやドライバの管理情報を保持するドライバモジュール設定情報B1531を備える。ドライバモジュールA152、ドライバモジュールB153が共通する情報は、前述のドライバモジュール共通情報1512が保持する。
【0024】
ハードウェア(H/W)インタフェースモジュール154は、HBAドライバ150ホストバスアダプタH/W160の間のインタフェース処理を担当するドライバモジュールである。H/Wインタフェースモジュール154は、F/Wインタフェーステーブル1541を備える。F/Wインタフェーステーブル1541は、ホストバスアダプタH/W160に対するI/O要求を登録するためのテーブルである。F/Wインタフェーステーブル1541は、HBAドライバ150がホストバスアダプタH/W160へアクセスする際に用いられる。
【0025】
図3は、ドライバ管理テーブル1511の構成とデータ例を示す図である。ドライバ管理テーブル1511は、各ドライバモジュールの稼動状態を管理するテーブルであり、HBA番号列15111、稼働中ドライバモジュール列15112、切替要求フラグ列15113を有する。
【0026】
HBA番号列15111は、コンピュータ100に接続されているホストバスアダプタH/W160の識別番号を保持する。コンピュータ100に複数のホストバスアダプタH/W160が接続されている場合、本列の値によって個々のホストバスアダプタH/W160を識別する。
【0027】
稼働中ドライバモジュール列15112は、HBA番号列15111の値で識別されるホストバスアダプタH/W160とHBAドライバ150の間のインタフェースをどのドライバモジュールが受け持っているかを示す値を保持する。
【0028】
切替要求フラグ列15113は、稼動させるドライバモジュールを切り替えるようOS130から要求されているか否かを示す値を保持する。
【0029】
図3(a)は、HBAドライバ150を初期化する処理が完了した時点のドライバ管理テーブル1511の状態を示す。ここでは、ドライバモジュールA152が稼働中、ドライバモジュールB153が非稼働中であるものとする。
【0030】
図3(b)は、OSインタフェースモジュール151が、稼動させるドライバモジュールを切り替えるようOS130から要求されたときにおける、ドライバ管理テーブル1511の状態を示す。OSインタフェースモジュール151は、切替要求を受けたドライバモジュールに対応する切替要求フラグ列15113の値を「1」にセットする。
【0031】
図3(c)は、稼動させるドライバモジュールを切り替える処理が完了した時点のドライバ管理テーブル1511の状態を示す。OSインタフェースモジュール151は、切替要求フラグ列15113が「1」にセットされているドライバモジュールを非稼動状態に切り替えるとともに、他のドライバモジュールを稼動状態に切り替える。OSインタフェースモジュール151は、ドライバモジュールの切替が完了すると、切替要求フラグ列15113の値を「0」に戻す。以上の処理を、全ての切替要求フラグ列15113の値が「0」になるまで繰り返す。
【0032】
図4は、HBAドライバ150を初期化する手順を示すシーケンス図である。以下、図4の各ステップについて説明する。
(図4:ステップS401)
OS130は、OSインタフェースモジュール151をロードする。OSインタフェースモジュール151は、ロードされると初期化処理を開始する。説明の便宜上、ここではOSインタフェースモジュール151とH/Wインタフェースモジュール154を一体的に構成したものと仮定し、OSインタフェースモジュール151がロードされると同時にH/Wインタフェースモジュール154もロードされるものとする。OSインタフェースモジュール151は、ディスクドライバ140のエントリポイント141にOSインタフェースモジュール151の呼び出し元の関数を登録する。続いて、OSインタフェースモジュール151は、ドライバ管理テーブル1511とドライバモジュール共通情報1512を保持するための記憶領域を確保する。
【0033】
(図4:ステップS402)
OSインタフェースモジュール151は、H/Wインタフェースモジュール154に対して、ホストバスアダプタH/W160を初期化するよう要求する。
(図4:ステップS403)
H/Wインタフェースモジュール154は、F/Wインタフェーステーブル1541を保持するための記憶領域を確保する。続いてH/Wインタフェースモジュール154は、ホストバスアダプタH/W160を初期化し、OSインタフェースモジュール151に応答を返す。OSインタフェースモジュール151がその応答を受け取ると、OSインタフェースモジュール151とH/Wインタフェースモジュール154の初期化処理が完了する。
【0034】
(図4:ステップS404)
OS130は、ドライバモジュールA152をロードする。ドライバモジュールA152は、ロードされると初期化処理を開始する。次にドライバモジュールA152は、ドライバモジュール設定情報A1511を設定し、OSインタフェースモジュール151のエントリポイントA1513に、ドライバモジュールA152の呼び出し元の関数を登録する。
(図4:ステップS405)
ドライバモジュールA152は、OSインタフェースモジュール151に対して、ドライバ管理テーブル1511を更新するよう要求する。
【0035】
(図4:ステップS406)
OSインタフェースモジュール151は、ドライバ管理テーブル1511の稼働中ドライバモジュール列15112に、稼働中のドライバモジュールが設定されていないことを確認した上で、ドライバモジュールA152を示す値「A」を同列に設定する。OSインタフェースモジュール151はドライバモジュールA152に処理完了を応答する。ドライバモジュールA152がその応答を受け取ると、ドライバモジュールA152の初期化処理が完了する。
【0036】
(図4:ステップS407〜S408)
これらのステップは、ステップS404〜S405と同様である。
(図4:ステップS409)
OSインタフェースモジュール151は、ドライバ管理テーブル1511の稼働中ドライバモジュール列15112の値が既に設定されていることを確認し、同列の値を更新せずにドライバモジュールB153に応答を返す。ドライバモジュールB153がその応答を受け取ると、ドライバモジュールB153の初期化処理が完了する。
【0037】
図5は、コンピュータ100の稼働中にドライバモジュールB153を更新する手順を示すシーケンス図である。以下、図5の各ステップについて説明する。
(図5:ステップS501)
OS130は、ドライバ更新ツールなどのユーティリティを介して、OSインタフェースモジュール151に対して、ドライバモジュールB153を更新するよう要求するシステムコールを発行する。
【0038】
(図5:ステップS502)
OSインタフェースモジュール151は、ドライバモジュールB153を更新する要求を受け付けると、ドライバ管理テーブル1511の稼働中ドライバモジュール列15112の値を確認する。稼働中ドライバモジュール列15112の値が「B」である場合はステップS503へ進み、それ以外であればステップS505へ進む。
(図5:ステップS503)
OSインタフェースモジュール151は、ドライバモジュールB153が稼働中であるためドライバモジュールB153を更新することができない旨を、OS130に対して報告する。
【0039】
(図5:ステップS504)
OS130は、ドライバモジュールB153の更新要求を終了する。
(図5:ステップS505)
OSインタフェースモジュール151は、ドライバモジュールB153の呼び出し元の関数が登録されているエントリポイントB1514をリセットし、OS130に応答を送信する。
【0040】
(図5:ステップS506)
OS130は、ドライバモジュールB153をアンロードする。
(図5:ステップS507)
ドライバモジュールB153は、ドライバモジュール設定情報B1531をリセットする。
【0041】
(図5:ステップS508)
OS130は、更新されたドライバモジュールB153をロードする。
(図5:ステップS509〜S511)
これらのステップは、図4のステップS407〜S409と同様である。
(図5:ステップS512)
ドライバモジュールB153は、初期化処理を完了する。OS130は、ドライバモジュールB153を更新する処理を正常終了する。
【0042】
図6は、稼動させるドライバモジュールを切り替える手順を示すシーケンス図である。以下、図6の各ステップについて説明する。
(図6:ステップS601)
OS130は、ドライバ更新ツールなどのユーティリティを介して、OSインタフェースモジュール151に対して、稼動させるドライバモジュール切り替えるよう要求するシステムコールを発行する。
【0043】
(図6:ステップS602)
OSインタフェースモジュール151は、稼動させるドライバモジュール切り替える要求を受け付けると、ドライバ管理テーブル1511の稼働中ドライバモジュール列15112の値を確認する。稼働中ドライバモジュール列15112の値が「B」である場合はステップS603へ進み、それ以外であればステップS605へ進む。
(図6:ステップS603)
OSインタフェースモジュール151は、ドライバモジュールB153が既に稼働中である旨を、OS130に対して報告する。
【0044】
(図6:ステップS604)
OS130は、ドライバモジュールの切替要求を終了する。
(図6:ステップS605)
OSインタフェースモジュール151は、ドライバ管理テーブル1511の切替要求フラグ列15113を、全てのHBAについて「1:切替要求有」に変更する。
【0045】
(図6:ステップS606)
OSインタフェースモジュール151は、ホストバスアダプタH/W160がI/O要求を発行中であるか否かをチェックするよう、H/Wインタフェースモジュール154に要求する。
(図6:ステップS607)
H/Wインタフェースモジュール154は、F/Wインタフェーステーブル1541の内容に基づき、ホストバスアダプタH/W160がI/O要求を発行中であるか否かをチェックし、結果をOSインタフェースモジュール151に応答する。
【0046】
(図6:ステップS608)
ホストバスアダプタH/W160がI/O要求を発行中である場合はステップS610へ進み、発行中でない場合はステップS609へ進む。
(図6:ステップS609)
OSインタフェースモジュール151は、稼動させるドライバモジュールをドライバモジュールB153に切り替える。また、ドライバ管理テーブル1511の稼働中ドライバモジュール列15112の値を「B」に変更し、切替要求フラグ列15113の値を「0:切替要求無」にセットする。
【0047】
(図6:ステップS610)
OSインタフェースモジュール151は、所定時間スリープし、I/O要求が完了するのを待機する。
(図6:ステップS611)
OSインタフェースモジュール151は、全てのホストバスアダプタH/W160について、切替要求フラグ列15113の値が「0:切替要求無」になっているどうかを確認し、ドライバモジュールの切り替えが全て完了したか否かをチェックする。全てのドライバモジュールについて切り替えが完了していない場合は、ステップS606に戻って同様の処理を繰り返す。全てのドライバモジュールについて切り替えが完了した場合は、ステップS612へ進む。
【0048】
(図6:ステップS612)
OSインタフェースモジュール151は、OS130にドライバモジュールの切り替えが完了した旨を報告する。報告を受け付けたOS130は、ドライバモジュール切り替え処理を正常終了する。
【0049】
図7は、HBAドライバ150がI/O要求を受け付けた場合の処理手順を示すシーケンス図である。以下、図7の各ステップについて説明する。
(図7:ステップS701)
ディスクドライバ140は、上位のアプリケーションから、ディスクアレイシステム200に対するI/O要求を受け取る。ディスクドライバ140は、エントリポイント141に登録されている、OSインタフェース151の関数を呼び出す。
【0050】
(図7:ステップS702)
OSインタフェースモジュール151は、ドライバ管理テーブル1511の稼働中ドライバモジュール列15112の値を確認する。OSインタフェースモジュール151は、稼働中ドライバモジュール列15112の値に応じて、エントリポイントA1513に登録されているドライバモジュールA152の関数、またはエントリポイントB1514に登録されているドライバモジュールB153の関数を呼び出す。
(図7:ステップS703)
ドライバモジュールA152またはドライバモジュールB153は、H/Wインタフェースモジュール154に対して、I/O要求を発行する。
【0051】
(図7:ステップS704)
H/Wインタフェースモジュール154は、ドライバモジュールが発行したI/O要求を受け取り、F/Wインタフェーステーブル1541にその内容を登録する。
(図7:ステップS705)
H/Wインタフェースモジュール154は、ステップS704で受け取ったI/O要求をホストバスアダプタH/W160に発行し、I/O要求発行元のドライバモジュールにその旨を報告する。
(図7:ステップS706〜S707)
ドライバモジュールは、OSインタフェースモジュール151にI/O要求発行処理完了を報告する(S706)。OSインタフェースモジュール151は、ディスクドライバ140にI/O要求発行処理完了を報告する(S707)。
【0052】
図8は、HBAドライバ150が割込処理要求を受け付けた場合の処理手順を示すシーケンス図である。以下、図8の各ステップについて説明する。
(図8:ステップS801)
ディスクドライバ140は、上位のアプリケーションから、割込処理要求を受け取る。ディスクドライバ140は、エントリポイント141に登録されている、OSインタフェースモジュール151の関数を呼び出す。
【0053】
(図8:ステップS802)
OSインタフェースモジュール151は、ドライバ管理テーブル1511の稼働中ドライバモジュール列15112の値を確認する。OSインタフェースモジュール151は、稼働中ドライバモジュール列15112の値に応じて、エントリポイントA1513に登録されているドライバモジュールA152の割込処理関数、またはエントリポイントB1514に登録されているドライバモジュールB153の割込処理関数を呼び出す。
(図8:ステップS803〜S805)
ドライバモジュールA152またはドライバモジュールB153は、割込処理関数を実行し(S803)、割込処理完了をOSインタフェースモジュール151に報告する(S804)。OSインタフェースモジュール151は、ディスクドライバ140に割込処理完了を報告する(S805)。
【0054】
以上、本実施の形態1に係るHBAドライバ150の動作を説明した。本実施の形態1において、HBAドライバ150はドライバモジュールを2つ備える例を説明したが、3以上のドライバモジュールを備えるようにしてもよい。
【0055】
以上のように、本実施の形態1に係るHBAドライバ150は、2以上のドライバモジュールを備え、OSインタフェースモジュール151は、いずれのドライバモジュールを稼動させるかを切り替える。これにより、いずれかのドライバモジュールが稼動している間は、コンピュータ100とディスクアレイシステム200の間の接続を維持しつつ、稼動していないドライバモジュールを更新することができる。したがって、コンピュータ100を再起動したり、ディスクアレイシステム200に対するアクセスを中断したりすることなく、ドライバモジュールを更新することができる。
【0056】
また、本実施の形態1に係るHBAドライバ150は、ホストバスアダプタH/W160とドライバモジュールを接続するH/Wインタフェースモジュール154、および、ドライバモジュールとOS130を接続するOSインタフェースモジュール151を備え、OSインタフェースモジュール151は、稼動させるドライバモジュールを切り替える。すなわち、ドライバモジュール本体は、OS130との間のインタフェース、およびホストバスアダプタH/W160との間のインタフェースから独立して構成されているので、HBAドライバ150とOS130の間の接続、およびHBAドライバ150とホストバスアダプタH/W160の間の接続を維持したまま、ドライバモジュールのみを切り替えることができる。したがって、ドライバモジュールを切り替える際に、OS130を再起動したりI/O要求を中断したりする必要はない。
【0057】
また、本実施の形態1に係るHBAドライバ150は、ホストバスアダプタH/W160がI/O要求を実行中である場合はドライバモジュールを切り替えず、I/O処理が完了してから切り替えを実行する。これにより、I/O処理を中断させることなくドライバモジュールを切り替えることができる。
【0058】
<実施の形態2>
実施の形態1において、HBAドライバ150は、ドライバモジュールを更新する前にドライバモジュールのバージョンを確認し、古いバージョンのドライバモジュールのみを更新するようにしてもよい。ドライバモジュールのバージョンは、例えば各ドライバモジュールのプロパティとして各ドライバモジュール設定情報などに保持しておくとよい。
【0059】
<実施の形態3>
実施の形態1〜2では、コンピュータ100に接続する周辺デバイスの例として、ホストバスアダプタ160およびディスクアレイシステム200を挙げたが、その他の周辺デバイスをコンピュータに接続するためのデバイスドライバについても、実施の形態1〜2と同様の手法を採用することができる。
【符号の説明】
【0060】
100:コンピュータ、110:CPU、120:メモリ、130:オペレーティングシステム、140:ディスクドライバ、141:エントリポイント、150:HBAドライバ、151:OSインタフェースモジュール、1511:ドライバ管理テーブル、15111:HBA番号列、15112:稼働中ドライバモジュール列、15113:切替要求フラグ列、1512:ドライバモジュール共通情報、1513:エントリポイントA、1514:エントリポイントB、152:ドライバモジュールA、1521:ドライバモジュール設定情報A、153:ドライバモジュールB、1531:ドライバモジュール設定情報B、154:ハードウェアインタフェースモジュール、1541:F/Wインタフェーステーブル、160:ホストバスアダプタH/W、200:ディスクアレイシステム、210:ディスク装置。

【特許請求の範囲】
【請求項1】
コンピュータと周辺デバイスを接続する処理を当該コンピュータに実行させるデバイスドライバプログラムであって、
前記周辺デバイスと前記コンピュータを接続する処理を前記コンピュータに実行させるドライバモジュールを2以上備えるとともに、
前記2以上のドライバモジュールのうちいずれを稼動させるかを切り替える処理を前記コンピュータに実行させる切替モジュールを備える
ことを特徴とするデバイスドライバプログラム。
【請求項2】
前記周辺デバイスと前記ドライバモジュールを接続する処理を前記コンピュータに実行させるハードウェアインタフェースモジュールと、
前記ドライバモジュールと前記コンピュータのOSを接続する処理を前記コンピュータに実行させるOSインタフェースモジュールと、
を備え、
前記OSインタフェースモジュールは前記切替モジュールを備える
ことを特徴とする請求項1記載のデバイスドライバプログラム。
【請求項3】
前記OSインタフェースモジュールは、前記コンピュータに、
前記コンピュータのOSと前記OSモジュールの間の接続を維持したまま、接続先の前記ドライバモジュールを切り替えさせる
ことを特徴とする請求項2記載のデバイスドライバプログラム。
【請求項4】
前記OSインタフェースモジュールは、前記コンピュータに、
前記周辺デバイスにアクセスする処理を前記ドライバモジュールが前記コンピュータに実行させているか否かを判断するステップと、
前記周辺デバイスにアクセスする処理を前記コンピュータに実行させていない前記ドライバモジュールを非稼動状態に切り替えるステップと、
前記周辺デバイスにアクセスする処理を前記コンピュータに実行させている前記ドライバモジュールについてはその処理が完了するまで待機するステップと、
を実行させることを特徴とする請求項3記載のデバイスドライバプログラム。
【請求項5】
前記OSインタフェースモジュールは、前記コンピュータに、
稼動していない前記デバイスドライバを更新する処理を実行させる
ことを特徴とする請求項2から請求項4のいずれか1項に記載のデバイスドライバプログラム。
【請求項6】
周辺デバイスと接続する計算機であって、
前記周辺デバイスと前記計算機を接続する処理を前記計算機に実行させるドライバモジュールを2以上備えるとともに、
前記2以上のドライバモジュールのうちいずれを稼動させるかを切り替える処理を前記計算機に実行させる切替モジュールを備える
ことを特徴とする計算機。
【請求項7】
前記周辺デバイスと前記ドライバモジュールを接続する処理を前記計算機に実行させるハードウェアインタフェースモジュールと、
前記ドライバモジュールと前記計算機のOSを接続する処理を前記計算機に実行させるOSインタフェースモジュールと、
を備え、
前記OSインタフェースモジュールは前記切替モジュールを備える
ことを特徴とする請求項6記載の計算機。
【請求項8】
前記OSインタフェースモジュールは、前記計算機に、
前記計算機のOSと前記OSモジュールの間の接続を維持したまま、接続先の前記ドライバモジュールを切り替えさせる
ことを特徴とする請求項7記載の計算機。
【請求項9】
前記OSインタフェースモジュールは、前記計算機に、
前記周辺デバイスにアクセスする処理を前記ドライバモジュールが前記計算機に実行させているか否かを判断するステップと、
前記周辺デバイスにアクセスする処理を前記計算機に実行させていない前記ドライバモジュールを非稼動状態に切り替えるステップと、
前記周辺デバイスにアクセスする処理を前記コンピュータに実行させている前記ドライバモジュールについてはその処理が完了するまで待機するステップと、
を実行させることを特徴とする請求項8記載の計算機。
【請求項10】
前記OSインタフェースモジュールは、前記計算機に、
稼動していない前記デバイスドライバを更新する処理を実行させる
ことを特徴とする請求項7から請求項9のいずれか1項に記載の計算機。
【請求項11】
コンピュータと周辺デバイスを接続する方法であって、
前記周辺デバイスと前記コンピュータを接続する2以上のドライバモジュールのうちいずれを稼動させるかを切り替える切替ステップを有する
ことを特徴とするデバイス接続方法。
【請求項12】
前記周辺デバイスと前記ドライバモジュールを接続するハードウェア接続ステップと、
前記ドライバモジュールと前記コンピュータのOSを接続するOS接続ステップと、
を有し、
前記OS接続ステップは前記切替ステップを有する
ことを特徴とする請求項11記載のデバイス接続方法。
【請求項13】
前記OS接続ステップでは、
前記コンピュータのOSと前記OSモジュールの間の接続を維持したまま、接続先の前記ドライバモジュールを切り替える
ことを特徴とする請求項12記載のデバイス接続方法。
【請求項14】
前記OS接続ステップは、
前記周辺デバイスにアクセスする処理を前記ドライバモジュールが前記コンピュータに実行させているか否かを判断するステップと、
前記周辺デバイスにアクセスする処理を前記コンピュータに実行させていない前記ドライバモジュールを非稼動状態に切り替えるステップと、
前記周辺デバイスにアクセスする処理を前記コンピュータに実行させている前記ドライバモジュールについてはその処理が完了するまで待機するステップと、
を有することを特徴とする請求項13記載のデバイス接続方法。
【請求項15】
前記OS接続ステップでは、稼動していない前記デバイスドライバを更新する
ことを特徴とする請求項12から請求項14のいずれか1項に記載のデバイス接続方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−197868(P2011−197868A)
【公開日】平成23年10月6日(2011.10.6)
【国際特許分類】
【出願番号】特願2010−62213(P2010−62213)
【出願日】平成22年3月18日(2010.3.18)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】