(57)【要約】ＩＨＶディスプレイドライバをリブートすることなく更新するシステム及び方法が開示される。このような方法によれば、第１に、オペレーティングシステムが、ドライバの実行を停止する。第２に、システムが、臨時の又は一時的なディスプレイドライバに切り替わる。この臨時ディスプレイドライバは、オペレーティングシステムと共に提供されるデフォルトドライバである。第３に、新しいハードウェア固有のドライバが起動される。このように、リブートすることなく、ハードウェア固有のディスプレイドライバを更新することができる。【選択図】図１
2009514122.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア固有のディスプレイドライバをホストコンピュータ上でリブートすることなくアップグレードする方法であって、
現在実行されているハードウェア固有のディスプレイドライバを停止するステップ、及び
前記現在実行されているハードウェア固有のディスプレイドライバの停止と、アップグレードされたハードウェア固有のディスプレイドライバの起動との間でリブートすることなく、前記アップグレードされたハードウェア固有のディスプレイドライバを起動するステップ
を含む、方法。
【請求項２】
請求項１に記載の方法であって、
ディスプレイドライバアップグレード要求を検出するステップ、及び
前記アップグレード要求に応答して、前記現在実行されているハードウェア固有のディスプレイドライバを停止するステップ
をさらに含む、方法。
【請求項３】
請求項１に記載の方法において、セットアップエンジンが、前記アップグレードされたディスプレイドライバに関連付けられているファイルを、前記ホストコンピュータ上のメモリ内にコピーする、方法。
【請求項４】
請求項１に記載の方法であって、前記ホストコンピュータ上で臨時ディスプレイドライバを起動するステップをさらに含む、方法。
【請求項５】
請求項４に記載の方法において、前記臨時ビデオディスプレイドライバは、前記オペレーティングシステムと共に提供されるデフォルトドライバである、方法。
【請求項６】
請求項５に記載の方法において、前記現在実行されているドライバが停止された後、臨時期間中、前記デフォルトドライバを実行することを可能にするのに十分な資源が引き続き割り当てられている、方法。
【請求項７】
請求項１に記載の方法において、前記現在実行されているハードウェア固有のディスプレイドライバを停止するステップは、プラグアンドプレイ（ＰｎＰ）マネージャが、グラフィックスデバイススタックへ、前記ビデオディスプレイドライバソフトウェアへの依存状態を解放するための通知を送るステップを含む、方法。
【請求項８】
請求項１に記載の方法において、前記現在実行されているハードウェア固有のディスプレイドライバを停止するステップは、ビデオディスプレイクライアントを一時停止するステップを含む、方法。
【請求項９】
請求項１に記載の方法において、前記現在実行されているハードウェア固有のディスプレイドライバを停止するステップは、前記ディスプレイドライバにその状態をクリーンアップするように通知するステップを含む、方法。
【請求項１０】
請求項１に記載の方法において、前記アップグレードされたハードウェア固有のディスプレイドライバを起動するステップは、プラグアンドプレイ（ＰｎＰ）マネージャが、グラフィックスデバイススタックへ、新しいデバイスを追加して起動するための通知を送るステップを含む、方法。
【請求項１１】
請求項４に記載の方法において、前記アップグレードされたハードウェア固有のディスプレイドライバを起動するステップは、前記臨時ドライバを停止するステップを含む、方法。
【請求項１２】
ホストコンピュータ上で、更新されたハードウェア固有のディスプレイドライバへリブートすることなく移行する方法であって、
第１のハードウェア固有のディスプレイドライバを前記ホストコンピュータ上で実行することを停止するステップ、
前記ハードウェアに関連付けられている第２のディスプレイドライバを起動するステップ、
前記第１のディスプレイドライバに関連付けられているグラフィックスオペレーションを実行するアプリケーションからのコールを受け取るステップ、及び
ハードウェアが利用不能であることを前記アプリケーションに通知するステップ
を含み、
前記ハードウェアが利用不能であるという前記通知に応答して、前記アプリケーションは、自身を前記第２のディスプレイドライバへルーティングし直す、方法。
【請求項１３】
請求項１２に記載の方法において、前記アプリケーションからの前記コールは、前記第１のディスプレイドライバが停止された後に受け取られる、方法。
【請求項１４】
請求項１２に記載の方法であって、
前記第２のディスプレイドライバを起動する前に、前記ハードウェアに関連付けられている臨時ディスプレイドライバを起動するステップ、
をさらに含む、方法。
【請求項１５】
請求項１２に記載の方法であって、
前記第２のビデオディスプレイドライバを起動した後に、前記ハードウェアに関連付けられている第３のビデオディスプレイドライバを起動するステップ、
をさらに含む、方法。
【請求項１６】
請求項１５に記載の方法において、前記アプリケーションからの前記コールが受け取られた後に、前記第３のビデオディスプレイドライバが起動される、方法。
【請求項１７】
請求項１２に記載の方法であって、
前記アプリケーションが、自身を前記第２のディスプレイドライバへルーティングし直すまで、前記アプリケーションに対して前記第１のディスプレイドライバをスプーフィングするステップ、
をさらに含む、方法。
【請求項１８】
ハードウェア固有のディスプレイドライバをホストコンピュータ上でリブートすることなくアップグレードする方法であって、
現在実行されているハードウェア固有のディスプレイドライバを停止するステップ、
臨時ビデオディスプレイドライバを起動するステップ、及び
次に、アップグレードされたハードウェア固有のディスプレイドライバを起動するステップ
を含む、方法。
【請求項１９】
請求項１８に記載の方法において、前記臨時ディスプレイドライバは、前記ホストコンピュータ上で実行されているオペレーティングシステムと共に提供されるデフォルトドライバである、方法。
【請求項２０】
請求項１８に記載の方法において、前記現在実行されているドライバが停止された後、前記臨時ドライバを実行することを可能にするのに十分な資源が割り当てられる、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
ハードウェア固有のディスプレイドライバ（すなわち、１つのハードウェアに関連付けられているビデオグラフィックスディスプレイを制御するのに使用することができるディスプレイドライバ）を更新するには、常にリブートが必要とされていた。このようなハードウェア固有のディスプレイドライバは、独立系ハードウェアベンダ（ＩＨＶ）ディスプレイドライバと呼ばれる場合がある。
【０００２】
従来のオペレーティングシステムでは、リブートを必要とすることなくディスプレイドライバを更新することは可能ではなかった。これらのオペレーティングシステムのグラフィックスアーキテクチャは、ディスプレイドライバが実行を完全に「停止」され、次に、完全に新しいディスプレイドライバに動的に更新されることをサポートしていなかった。たとえば、ドライバ資源は、通常、新しいドライバに変更するためには解放される必要がある。従来利用可能なオペレーティングシステムでは、資源を解放する方法がなかった。その結果、ユーザは、シャットダウンして資源を解放しなければならなかった。オペレーティングシステムのカーネル側が新しいドライバの存在を認識するために、ユーザは、リブートしなければならないことになっていた。また、ドライバは、通常、多数のクライアントによって使用される。従来利用可能なオペレーティングシステムでは、クライアントがドライバの使用を停止する方法はなかった。したがって、クライアントのドライバの使用を停止することができない場合には、ドライバを変更することができなかった。システムをリブートすることによって、すべてのクライアントのドライバの使用を強制的に停止させる（すなわち、ドライバから接続解除する）ことになっていた。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、たとえば２Ｄ等の一定の機能及びオペレーティングシステムの状態を維持しつつ、リブートを必要とすることなくディスプレイドライバを更新することができることが望ましい。
【課題を解決するための手段】
【０００４】
本明細書で開示されるように、ハードウェアが依然として実行されている間に、現在実行されているハードウェア固有のディスプレイドライバを新しいディスプレイドライバへ動的に切り替えることができる。このような方法は、３つのステップを含むことができる。第１に、現在実行されているドライバの更新が要求されると、オペレーティングシステムが、ドライバの実行を停止する。第２に、システムが、臨時の又は一時的なディスプレイドライバに切り替わる。この臨時ディスプレイドライバは、オペレーティングシステムと共に提供されるデフォルトドライバ（Ｍｉｃｒｏｓｏｆｔ  ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムと共に提供されるＶＧＡドライバ等）とすることができる。第３に、新しいハードウェア固有のドライバが起動される。３Ｄ状態は復元され、ＧＰＵは、通常通り全機能で動作し続ける。したがって、リブートすることなく、ハードウェア固有のディスプレイドライバを更新することができる。
【発明を実施するための最良の形態】
【０００５】
図１は、リブートすることなくハードウェア固有のディスプレイドライバをアップグレードする方法のフローチャートである。１０において、オペレーティングシステムは、ユーザがディスプレイドライバのアップグレードを要求したことを検出することができる。ユーザは、たとえば、アップグレードされたディスプレイドライバをウェブからホストコンピュータ上のメモリ内にダウンロードすることにより、又は、アップグレードされたドライバをＣＤからホストコンピュータ上のメモリ内にアップロードすることにより、このような要求を行うことができる。
【０００６】
アップグレードされたディスプレイドライバをホストコンピュータ上にインストールするために、ユーザは、いわゆる「セットアップエンジン」をホストコンピュータ上で実行することができる。２０において、このセットアップエンジンが、アップグレードされたディスプレイドライバに関連付けられているファイルをホストコンピュータ上のメモリ内にコピーする。従来のシステムでは、このような新しいディスプレイドライバのファイルは、メモリ内のいずれかの場所に配置されて、次のスタートアップ時に、検出されて使用されていたことが理解されるべきである。本明細書に開示するようなシステムでは、これらの新しいファイルは、（以下で詳細に説明するように）従来のシステムと同様にコピーすることができ、新しいドライバが起動されるまでメモリに記憶することができる。
【０００７】
３０において、現在実行されているハードウェア固有のドライバが停止される。現在実行されているハードウェア固有のディスプレイドライバを停止させる方法は、図２に関連して以下で詳細に説明する。
【０００８】
４０において、制御が、臨時ディスプレイドライバに切り替えられる。この臨時ディスプレイドライバは、オペレーティングシステムと共に提供されるデフォルトドライバ（Ｍｉｃｒｏｓｏｆｔ  ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムと共に提供されるＶＧＡドライバ等）とすることができる。現在実行されているハードウェア固有のディスプレイドライバが停止されたとき、システム上で実行されているディスプレイドライバは存在しない。この結果、ブラックスクリーンになり、不愉快なユーザシナリオになる。これを回避するために、このとき、システムにすでにロードされているＶＧＡドライバの使用が開始される。新しいハードウェア固有のドライバがインストールされるまで、デスクトップは、ＶＧＡドライバを使用して表示される。
【０００９】
ハードウェアがスクリーンに何かを描くには、そのスクリーンは、いくつかの資源をハードウェアに割り当ててもらわなければならない。これらの資源は、オペレーティングシステムによってグラフィックスハードウェアに割り当てられる。したがって、現在実行されているドライバが３０において停止されたときに、臨時期間中、デフォルトドライバを実行することを可能にするのに十分な資源がこれまで通り割り当てられている。たとえば、一定のメモリ及びＩ／Ｏ資源を割り当てた状態にしておくことができる。これは、ほとんどのスタックで行われていることとは異なっていることが理解されるべきである。ほとんどのデバイスの場合、ドライバが停止された後、すべての資源は解放される。その理由は、ドライバが停止された後、ハードウェアの使用が禁止されるからである。
【００１０】
５０において、アップグレードされたハードウェア固有のディスプレイドライバが起動される。新しいハードウェア固有のディスプレイドライバを起動する方法は、図３に関連して以下で詳細に説明する。このように、ハードウェア固有のディスプレイドライバを、リブートすることなく更新することができる。
【００１１】
図２は、現在実行されているハードウェア固有のディスプレイドライバを停止する方法のフローチャートである。ユーザが、現在実行されているディスプレイドライバの更新をトリガすると、この方法は、デバイスを停止して現在実行されているディスプレイドライバを更新するシーケンスを開始する。３１において、プラグアンドプレイ（ＰｎＰ）マネージャが、（たとえば、ウェブから新しいドライバをダウンロードすること等によるユーザ起動からの）ドライバ更新要求を見て、Ｉ／Ｏ要求パケット（ＩＲＰ）等の通知メッセージをグラフィックスデバイススタックへ送信することによりこのプロセスを開始する。この通知メッセージは、ディスプレイドライバソフトウェアに依存するすべてのものを解放するためにデバイスが行わなければならないものは何でも行うようにデバイスに命令する。このＩＲＰは、オペレーティングシステムカーネル（ＤｘｇＫｒｎｌ．ｓｙｓ）のサブコンポーネント（ＤｘｇＰｏｒｔ）がハンドリングすることができる。
【００１２】
一時停止する必要があるクライアントには２つのカテゴリーがある。第１に、ＷＩＮＤＯＷＳ（登録商標）（ＧＤＩ）のグラフィックススタックの古い方（２Ｄ）の部分であるＷｉｎ３２Ｋが、３２において停止される。オペレーティングシステムシェルには、デバイスの使用を停止するように通知が行われる。また、カーネルはすべてのクライアントを一時停止する。
【００１３】
３３において、クライアントの第２のカテゴリーが一時停止される。この第２のカテゴリーは、Ｄｉｒｅｃｔ３Ｄクライアントを含む。これらのクライアントが一時停止されたとき、それらのクライアントのために割り当てられていたあらゆるものが削除されている。ステップ３３が終了したとき、ＩＨＶドライバに関連付けられているものは、カーネルモードには何も残されていないことになる。この時点で、ビデオメモリマネージャ及びビデオスケジューラの活動は存在しない。
【００１４】
３４において、ＤｘｇＰｏｒｔは、ＰｎＰマネージャ要求を見て、その登録されている「ＤｍＳｔｏｐＤｅｖｉｃｅ」ＤＤＩを通じてＩＨＶカーネルモードドライバをコールする。オペレーティングシステムは、たとえばあらゆるメモリ又はメモリ以外の、ディスプレイドライバがクリーンアップしなければならないあらゆるものをクリーンアップするようにディスプレイドライバに通知する。ＩＨＶドライバは、この機能において自身の状態のクリーンアップを担当する。ＩＨＶドライバは、保持されているすべての資源を解放し、ドライバがＤｍＳｔａｒｔＤｅｖｉｃｅ機能において開始したすべての活動を取り消す。
【００１５】
ステップ３４において、アプリケーションがグラフィックスを行うためにコールするたびに、アプリケーションには、ハードウェアが利用不能であること、及び、アプリケーションが自身の資源のいずれもクリーンアップすべきことが告げられる。３５において、ＤｉｒｅｃｔＸランタイムは、「Device Lost」（デバイス喪失）通知をＤｘｇＫｒｎｌから受信する。この通知は、３６において、ＤｉｒｅｃｔＸアプリケーションへ転送される。新しいＤｉｒｅｃｔＸ９Ｌアプリケーションは、自身のデバイスオブジェクトを破棄する。ＤｉｒｅｃｔＸ９及び前に書き込まれたアプリケーションは、デバイスを破棄する場合もあるし破棄しない場合もある。ＤｉｒｅｃｔＸは、ＷＩＮＤＯＷＳ（登録商標）  ３Ｄグラフィックス（ｄｘｇ＝ｄｉｒｅｃｔＸグラフィックス）を指すことが理解されるべきである。
【００１６】
好ましくは、アプリケーションは、グラフィックスを行うためにコールするときにのみ、新しいドライバの通知を受ける。すなわち、アプリケーションは、古いドライバを使用したいとき、その古いドライバが利用不能であることを告げられる。次に、新しいＤｉｒｅｃｔＸ９Ｌアプリケーションは、（更新されたＩＨＶドライバである）新しいドライバに自身をルーティングし直す。ＤｉｒｅｃｔＸ９及び前に書き込まれたアプリケーションが、古いドライバがアンロードされていることに気付くと、Ｄ３Ｄランタイムは、そのアプリケーションに対してスプーフィングして、ドライバが依然としてそこに存在しているように装う。
【００１７】
図３は、新しいハードウェア固有のディスプレイドライバを起動する方法のフローチャートである。ドライバファイルのコピーが完全に成功した後、セットアップエンジンは、ＰｎＰマネージャに通知を行う。次に、ＰｎＰマネージャは、新しいデバイスドライバをメモリ内にロードする。５１において、ＰｎＰマネージャは、新しいデバイスを追加する通知メッセージをグラフィックススタック（ｄｘｇｐｏｒｔ）へ送信する。ＰｎＰマネージャは、次に、ＤｘｇＰｏｒｔの「ＡｄｄＤｅｖｉｃｅ」ルーチンをコールし、その後、ＩＨＶドライバをコールする。５２において、ＰｎＰマネージャは、新しいデバイスを起動する通知メッセージ（ＩＲＰ）をグラフィックススタックへ送信する。
【００１８】
５３において、カーネル（グラフィックススタック）は、臨時ドライバを停止する。好ましくは、このとき、ＶＧＡドライバの実行が停止されるが、ＶＧＡドライバは依然としてロードされている。ブラックスクリーンが一瞬現れる場合がある。
【００１９】
５４において、グラフィックススタックは、更新されたビデオディスプレイドライバを、デバイスドライバインターフェース（「ＤＤＩ」）を通じてコールする。このＤＤＩは、グラフィックスハードウェアを初期化し、必要なディスプレイドライバ資源を割り当てる。グラフィックススタックは、新しいＩＨＶドライバに起動するように命じる。５５において、グラフィックススタックは、アダプタの対応するオブジェクトを作成するようにカーネルに通知する。これらのオブジェクトは、デバイスが停止されたときに破棄されたものである。
【００２０】
５６において、２Ｄグラフィックスオブジェクトが復元される。Ｗｉｎ３２Ｋは、対応するビュー及びそのグラフィックスデバイスオブジェクトを作成するように通知を受ける。モニタオブジェクトも、この時点で、カーネルグラフィックススタックを通じて作成される。５７において、３Ｄグラフィックスオブジェクトが復元される。３Ｄグラフィックスソフトウェアは、アプリケーションが自身のデバイスオブジェクトを作成し直すことを要求する。その後、アプリケーションは、レンダリングを再開することができる。すなわち、新しい更新されたドライバを使用して、レンダリングを再開することができる。
一例のコンピューティング環境
図４及び以下の解説は、本発明の一例の実施形態を実施することができる、適切なコンピューティング環境の簡潔な概要を提供することを意図している。しかしながら、すべての種類のハンドヘルドコンピューティングデバイス、ポータブルコンピューティングデバイス、及び他のコンピューティングデバイスが、本発明に関連する使用に考慮されることが理解されるべきである。以下では、汎用コンピュータが説明されるが、これは一例にすぎない。本発明は、ネットワークサーバの相互運用性及び相互作用を有するシンクライアントにおいても動作可能とすることができる。したがって、本発明の一例の実施形態は、たとえば、クライアントデバイスが単にワールドワイドウェブに対するブラウザ又はインターフェースとしてしか機能しないネットワーク接続環境といった、ほんの少しの又は最小限のクライアント資源しか関与しないネットワーク接続ホスティングサービス（networked hosted service）の環境において実施することができる。
【００２１】
必須ではないが、本発明は、開発者又は試験者が使用するためのアプリケーションプログラミングインターフェース（ＡＰＩ）を介して実施することができ、且つ／又は、プログラムモジュール等のコンピュータ実行可能命令が１つ又は複数のコンピュータ（たとえば、クライアントワークステーション、サーバ、又は他のデバイス）によって実行される一般的な状況において説明されるネットワークブラウジングソフトウェア内に含めることができる。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。通常、プログラムモジュールの機能は、さまざまな実施形態において、所望に応じて組み合わせることもできるし、分散させることもできる。その上、当業者は、本発明を他のコンピュータシステム構成と共に実施することができることを十分理解するであろう。本発明と共に使用するのに適し得る他の既知のコンピューティングシステム、コンピューティング環境、及び／又はコンピューティング構成には、パーソナルコンピュータ（ＰＣ）、現金自動預払機、サーバコンピュータ、ハンドヘルドデバイス又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、プログラマブルな家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ等が含まれるが、これらに限定されるものではない。また、本発明の一実施形態は、タスクが、通信ネットワーク又は他のデータ伝送媒体を通じてリンクされているリモート処理デバイスにより実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリストレージデバイスを含むローカル及びリモートの双方のコンピュータストレージ媒体内に配置することができる。
【００２２】
このように、図４は、本発明を実施することができる、適切なコンピューティングシステム環境１００の一例を示している。ただし、上記で明らかにされたように、このコンピューティングシステム環境１００は、適切なコンピューティング環境の一例にすぎず、本発明の使用又は機能の範囲について何ら限定を示唆することを意図するものではない。また、コンピューティング環境１００は、この例示の動作環境１００に示すコンポーネントのいずれの１つ又は組み合わせに関しても何らの依存関係も要件も有するものとして解釈されるべきではない。
【００２３】
図４を参照して、本発明を実施するための一例のシステムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントには、処理ユニット１２０、システムメモリ１３０、及びシステムバス１２１が含まれ得るが、これらに限定されるものではない。システムバス１２１は、システムメモリを含むさまざまなシステムコンポーネントを処理ユニット１２０に結合する。システムバス１２１は、いくつかのタイプのバス構造のいずれかとすることができる。これらのバス構造には、メモリバス又はメモリコントローラ、周辺バス、及びさまざまなバスアーキテクチャのいずれかを使用するローカルバスが含まれる。限定ではなく例として、このようなアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、エンハンストＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクス規格協会（ＶＥＳＡ）ローカルバス、及び周辺コンポーネント相互接続（ＰＣＩ）バス（メザニンバスとしても知られている）が含まれる。
【００２４】
コンピュータ１１０は、通常、さまざまなコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセスすることができる任意の入手可能な媒体とすることができ、揮発性及び不揮発性の双方の、着脱可能媒体及び着脱不能媒体の双方を含む。限定ではなく例として、コンピュータ可読媒体には、コンピュータストレージ媒体及び通信媒体が含まれ得る。コンピュータストレージ媒体には、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報を記憶する任意の方法又は技術で実施される揮発性及び不揮発性の双方の、着脱可能媒体及び着脱不能媒体が含まれる。コンピュータストレージ媒体には、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、若しくは他のメモリ技術、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは他の磁気ストレージデバイス、又は、所望の情報を記憶するのに使用することができ、且つ、コンピュータ１１０がアクセスすることができる他の任意の媒体が含まれるが、これらに限定されるものではない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、搬送波又は他の搬送メカニズム等の変調されたデータ信号で具体化し、通信媒体には、任意の情報配信媒体が含まれる。「変調されたデータ信号」という用語は、その特性の１つ又は複数が、信号内の情報を符号化するように設定又は変更されている信号を意味する。限定ではなく例として、通信媒体には、有線ネットワーク又は直接有線接続等の有線媒体、及び、音響、無線周波数（ＲＦ）、赤外線及び他の無線媒体等の無線媒体が含まれる。上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含まれるものとする。
【００２５】
システムメモリ１３０は、ＲＯＭ１３１及びＲＡＭ１３２等の揮発性メモリ及び／又は不揮発性メモリの形態のコンピュータストレージ媒体を含む。スタートアップ中等にコンピュータ１１０内の要素間での情報の転送を助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１３３は、通常、ＲＯＭ１３１に記憶されている。ＲＡＭ１３２は、通常、処理ユニット１２０に即座にアクセス可能であり且つ／又は処理ユニット１２０によって現在処理されているデータ及び／又はプログラムモジュールを含む。限定ではなく例として、図４は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７を示している。ＲＡＭ１３２は、他のデータ及び／又はプログラムモジュールを含むことができる。
【００２６】
また、コンピュータ１１０は、他の着脱可能／着脱不能な揮発性／不揮発性コンピュータストレージ媒体も含むことができる。単なる例として、図４は、着脱不能な不揮発性磁気媒体からの読み出し又はこの媒体への書き込みを行うハードディスクドライブ１４１、着脱可能な不揮発性磁気ディスク１５２からの読み出し又はこのディスク１５２への書き込みを行う磁気ディスクドライブ１５１、及び、ＣＤ  ＲＯＭ又は他の光媒体等の着脱可能な不揮発性光ディスク１５６からの読み出し又はこの光ディスク１５６への書き込みを行う光ディスクドライブ１５５を示している。この一例の動作環境で使用することができる他の着脱可能／着脱不能な揮発性／不揮発性コンピュータストレージ媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等が含まれるが、これらに限定されるものではない。ハードディスクドライブ１４１は、通常、インターフェース１４０等の着脱不能メモリインターフェースを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１及び光ディスクドライブ１５５は、通常、インターフェース１５０等の着脱可能メモリインターフェースによってシステムバス１２１に接続される。
【００２７】
上述し且つ図４に示したドライブ及びそれらに関連付けられているコンピュータストレージ媒体は、コンピュータ１１０のコンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータのストレージを提供する。図４では、たとえば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７と同じものとすることもできるし、異なるものとすることもできることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７は、最低でも、これらが、異なるコピーであることを示すために、ここでは、異なる参照符号が与えられている。ユーザは、キーボード１６２及びポインティングデバイス１６１等の入力デバイスを通じてコンピュータ１１０内にコマンド及び情報を入力することができる。ポインティングデバイス１６１は、一般に、マウス、トラックボール、又はタッチパッドと呼ばれる。他の入力デバイス（図示せず）には、マイク、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナ等が含まれ得る。これらの入力デバイス及び他の入力デバイスは、多くの場合、システムバス１２１に結合されているユーザ入力インターフェース１６０を通じて処理ユニット１２０ａ〜ｆに接続されているが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス（ＵＳＢ）等の他のインターフェース及びバス構造によって接続することもできる。
【００２８】
モニタ１９１又は他のタイプの表示デバイスも、ビデオインターフェース１９０等のインターフェースを介してシステムバス１２１に接続されている。モニタ１９１に加えて、コンピュータは、スピーカ１９７及びプリンタ１９６等の他の周辺出力デバイスも含むことができる。これらの他の周辺出力デバイスは、出力周辺インターフェース１９５を通じて接続することができる。
【００２９】
コンピュータ１１０は、リモートコンピュータ１８０等の１つ又は複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、又は他の一般的なネットワークノードとすることができ、図４には、メモリストレージデバイス１８１しか示されていないが、通常は、コンピュータ１１０に関して上述した要素の多数又はすべてを含む。図４に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）１７１及びワイドエリアネットワーク（ＷＡＮ）１７３が含まれるが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、及びインターネットでは一般的である。
【００３０】
コンピュータ１１０は、ＬＡＮネットワーキング環境で使用されるとき、ネットワークインターフェース又はアダプタ１７０を通じてＬＡＮ１７１に接続される。コンピュータ１１０は、ＷＡＮネットワーキング環境で使用されるとき、通常、インターネット等のＷＡＮ１７３上で通信を確立するモデム１７２又は他の手段を含む。モデム１７２は、内蔵又は外付けとすることができ、ユーザ入力インターフェース１６０又は他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク接続環境では、コンピュータ１１０に関して示したプログラムモジュール又はその一部は、リモートメモリストレージデバイスに記憶することができる。限定ではなく例として、図４は、リモートアプリケーションプログラム１８５を、メモリデバイス１８１上に存在するものとして示している。図示したネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段も使用することができることが十分理解されよう。
【００３１】
当業者は、コンピュータ１１０又は他のクライアントデバイスを、コンピュータネットワークの一部としてデプロイすることができることを十分理解することができる。この点に関して、本発明は、任意の個数のメモリユニット又はストレージユニット、並びに、任意の個数のストレージユニット又はストレージボリュームにわたって行われる任意の個数のアプリケーション及びプロセスを有する任意のコンピュータシステムに関係する。本発明の一実施形態は、リモートストレージ又はローカルストレージを有するネットワーク環境にデプロイされるサーバコンピュータ及びクライアントコンピュータを有する環境に適用することができる。また、本発明は、プログラミング言語機能、解釈能力、及び実行能力を有するスタンドアロンコンピューティングデバイスにも適用することができる。
【００３２】
このように、ビデオディスプレイドライバをリブートすることなく更新するシステム及び方法を説明してきた。さまざまな図に示された一定の好ましい実施形態に関連して本発明を説明してきたが、他の類似の実施形態を使用することができること、及び、本発明を実施するための説明した実施形態に対して、本発明から逸脱することなく変更又は追加を行うことができることが理解されるべきである。したがって、本発明は、いずれの単一の実施形態にも限定されるべきではなく、添付の特許請求の範囲による広さ及び範囲内で解釈されるべきである。
【図面の簡単な説明】
【００３３】
【図１】リブートすることなくディスプレイドライバをアップグレードする方法のフローチャートである。
【図２】現在実行されているハードウェア固有のディスプレイドライバを停止する方法のフローチャートである。
【図３】新しいハードウェア固有のディスプレイドライバを起動する方法のフローチャートである。
【図４】本発明の態様を実施することができる一例のコンピューティング環境を示すブロック図である。
【図１】
2009514122.tif 000003
【図２】
2009514122.tif 000004
【図３】
2009514122.tif 000005
【図４】
2009514122.tif 000006
【国際調査報告】
2009514122.tif 000007
2009514122.tif 000008