JP5038321B2 - ディスプレイドライバをリブートすることなくアップグレードする方法 - Google Patents

ディスプレイドライバをリブートすることなくアップグレードする方法 Download PDF

Info

Publication number
JP5038321B2
JP5038321B2 JP2008538894A JP2008538894A JP5038321B2 JP 5038321 B2 JP5038321 B2 JP 5038321B2 JP 2008538894 A JP2008538894 A JP 2008538894A JP 2008538894 A JP2008538894 A JP 2008538894A JP 5038321 B2 JP5038321 B2 JP 5038321B2
Authority
JP
Japan
Prior art keywords
display driver
hardware
specific display
driver
currently executing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008538894A
Other languages
English (en)
Other versions
JP2009514122A5 (ja
JP2009514122A (ja
Inventor
アンドリューズ,マーカス・ジェイ
マックミューレン,マックス・エイ
ネネ,サミール・エイ
バラカット,ユーセフ・エム
チトレ,アミート・エイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37998133&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP5038321(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009514122A publication Critical patent/JP2009514122A/ja
Publication of JP2009514122A5 publication Critical patent/JP2009514122A5/ja
Application granted granted Critical
Publication of JP5038321B2 publication Critical patent/JP5038321B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

ハードウェア固有のディスプレイドライバ(すなわち、1つのハードウェアに関連付けられているビデオグラフィックスディスプレイを制御するのに使用することができるディスプレイドライバ)を更新するには、常にリブートが必要とされていた。このようなハードウェア固有のディスプレイドライバは、独立系ハードウェアベンダ(IHV)ディスプレイドライバと呼ばれる場合がある。
従来のオペレーティングシステムでは、リブートを必要とすることなくディスプレイドライバを更新することは可能ではなかった。これらのオペレーティングシステムのグラフィックスアーキテクチャは、ディスプレイドライバが実行を完全に「停止」され、次に、完全に新しいディスプレイドライバに動的に更新されることをサポートしていなかった。たとえば、ドライバ資源は、通常、新しいドライバに変更するためには解放される必要がある。従来利用可能なオペレーティングシステムでは、資源を解放する方法がなかった。その結果、ユーザは、シャットダウンして資源を解放しなければならなかった。オペレーティングシステムのカーネル側が新しいドライバの存在を認識するために、ユーザは、リブートしなければならないことになっていた。また、ドライバは、通常、多数のクライアントによって使用される。従来利用可能なオペレーティングシステムでは、クライアントがドライバの使用を停止する方法はなかった。したがって、クライアントのドライバの使用を停止することができない場合には、ドライバを変更することができなかった。システムをリブートすることによって、すべてのクライアントのドライバの使用を強制的に停止させる(すなわち、ドライバから接続解除する)ことになっていた。
しかしながら、たとえば2D等の一定の機能及びオペレーティングシステムの状態を維持しつつ、リブートを必要とすることなくディスプレイドライバを更新することができることが望ましい。
本明細書で開示されるように、ハードウェアが依然として実行されている間に、現在実行されているハードウェア固有のディスプレイドライバを新しいディスプレイドライバへ動的に切り替えることができる。このような方法は、3つのステップを含むことができる。第1に、現在実行されているドライバの更新が要求されると、オペレーティングシステムが、ドライバの実行を停止する。第2に、システムが、臨時の又は一時的なディスプレイドライバに切り替わる。この臨時ディスプレイドライバは、オペレーティングシステムと共に提供されるデフォルトドライバ(Microsoft WINDOWS(登録商標)オペレーティングシステムと共に提供されるVGAドライバ等)とすることができる。第3に、新しいハードウェア固有のドライバが起動される。3D状態は復元され、GPUは、通常通り全機能で動作し続ける。したがって、リブートすることなく、ハードウェア固有のディスプレイドライバを更新することができる。
図1は、リブートすることなくハードウェア固有のディスプレイドライバをアップグレードする方法のフローチャートである。10において、オペレーティングシステムは、ユーザがディスプレイドライバのアップグレードを要求したことを検出することができる。ユーザは、たとえば、アップグレードされたディスプレイドライバをウェブからホストコンピュータ上のメモリ内にダウンロードすることにより、又は、アップグレードされたドライバをCDからホストコンピュータ上のメモリ内にアップロードすることにより、このような要求を行うことができる。
アップグレードされたディスプレイドライバをホストコンピュータ上にインストールするために、ユーザは、いわゆる「セットアップエンジン」をホストコンピュータ上で実行することができる。20において、このセットアップエンジンが、アップグレードされたディスプレイドライバに関連付けられているファイルをホストコンピュータ上のメモリ内にコピーする。従来のシステムでは、このような新しいディスプレイドライバのファイルは、メモリ内のいずれかの場所に配置されて、次のスタートアップ時に、検出されて使用されていたことが理解されるべきである。本明細書に開示するようなシステムでは、これらの新しいファイルは、(以下で詳細に説明するように)従来のシステムと同様にコピーすることができ、新しいドライバが起動されるまでメモリに記憶することができる。
30において、現在実行されているハードウェア固有のドライバが停止される。現在実行されているハードウェア固有のディスプレイドライバを停止させる方法は、図2に関連して以下で詳細に説明する。
40において、制御が、臨時ディスプレイドライバに切り替えられる。この臨時ディスプレイドライバは、オペレーティングシステムと共に提供されるデフォルトドライバ(Microsoft WINDOWS(登録商標)オペレーティングシステムと共に提供されるVGAドライバ等)とすることができる。現在実行されているハードウェア固有のディスプレイドライバが停止されたとき、システム上で実行されているディスプレイドライバは存在しない。この結果、ブラックスクリーンになり、不愉快なユーザシナリオになる。これを回避するために、このとき、システムにすでにロードされているVGAドライバの使用が開始される。新しいハードウェア固有のドライバがインストールされるまで、デスクトップは、VGAドライバを使用して表示される。
ハードウェアがスクリーンに何かを描くには、そのスクリーンは、いくつかの資源をハードウェアに割り当ててもらわなければならない。これらの資源は、オペレーティングシステムによってグラフィックスハードウェアに割り当てられる。したがって、現在実行されているドライバが30において停止されたときに、臨時期間中、デフォルトドライバを実行することを可能にするのに十分な資源がこれまで通り割り当てられている。たとえば、一定のメモリ及びI/O資源を割り当てた状態にしておくことができる。これは、ほとんどのスタックで行われていることとは異なっていることが理解されるべきである。ほとんどのデバイスの場合、ドライバが停止された後、すべての資源は解放される。その理由は、ドライバが停止された後、ハードウェアの使用が禁止されるからである。
50において、アップグレードされたハードウェア固有のディスプレイドライバが起動される。新しいハードウェア固有のディスプレイドライバを起動する方法は、図3に関連して以下で詳細に説明する。このように、ハードウェア固有のディスプレイドライバを、リブートすることなく更新することができる。
図2は、現在実行されているハードウェア固有のディスプレイドライバを停止する方法のフローチャートである。ユーザが、現在実行されているディスプレイドライバの更新をトリガすると、この方法は、デバイスを停止して現在実行されているディスプレイドライバを更新するシーケンスを開始する。31において、プラグアンドプレイ(PnP)マネージャが、(たとえば、ウェブから新しいドライバをダウンロードすること等によるユーザ起動からの)ドライバ更新要求を見て、I/O要求パケット(IRP)等の通知メッセージをグラフィックスデバイススタックへ送信することによりこのプロセスを開始する。この通知メッセージは、ディスプレイドライバソフトウェアに依存するすべてのものを解放するためにデバイスが行わなければならないものは何でも行うようにデバイスに命令する。このIRPは、オペレーティングシステムカーネル(DxgKrnl.sys)のサブコンポーネント(DxgPort)がハンドリングすることができる。
一時停止する必要があるクライアントには2つのカテゴリーがある。第1に、WINDOWS(登録商標)(GDI)のグラフィックススタックの古い方(2D)の部分であるWin32Kが、32において停止される。オペレーティングシステムシェルには、デバイスの使用を停止するように通知が行われる。また、カーネルはすべてのクライアントを一時停止する。
33において、クライアントの第2のカテゴリーが一時停止される。この第2のカテゴリーは、Direct3Dクライアントを含む。これらのクライアントが一時停止されたとき、それらのクライアントのために割り当てられていたあらゆるものが削除されている。ステップ33が終了したとき、IHVドライバに関連付けられているものは、カーネルモードには何も残されていないことになる。この時点で、ビデオメモリマネージャ及びビデオスケジューラの活動は存在しない。
34において、DxgPortは、PnPマネージャ要求を見て、その登録されている「DmStopDevice」DDIを通じてIHVカーネルモードドライバをコールする。オペレーティングシステムは、たとえばあらゆるメモリ又はメモリ以外の、ディスプレイドライバがクリーンアップしなければならないあらゆるものをクリーンアップするようにディスプレイドライバに通知する。IHVドライバは、この機能において自身の状態のクリーンアップを担当する。IHVドライバは、保持されているすべての資源を解放し、ドライバがDmStartDevice機能において開始したすべての活動を取り消す。
ステップ34において、アプリケーションがグラフィックスを行うためにコールするたびに、アプリケーションには、ハードウェアが利用不能であること、及び、アプリケーションが自身の資源のいずれもクリーンアップすべきことが告げられる。35において、DirectXランタイムは、「Device Lost」(デバイス喪失)通知をDxgKrnlから受信する。この通知は、36において、DirectXアプリケーションへ転送される。新しいDirectX9Lアプリケーションは、自身のデバイスオブジェクトを破棄する。DirectX9及び前に書き込まれたアプリケーションは、デバイスを破棄する場合もあるし破棄しない場合もある。DirectXは、WINDOWS(登録商標) 3Dグラフィックス(dxg=directXグラフィックス)を指すことが理解されるべきである。
好ましくは、アプリケーションは、グラフィックスを行うためにコールするときにのみ、新しいドライバの通知を受ける。すなわち、アプリケーションは、古いドライバを使用したいとき、その古いドライバが利用不能であることを告げられる。次に、新しいDirectX9Lアプリケーションは、(更新されたIHVドライバである)新しいドライバに自身をルーティングし直す。DirectX9及び前に書き込まれたアプリケーションが、古いドライバがアンロードされていることに気付くと、D3Dランタイムは、そのアプリケーションに対してスプーフィングして、ドライバが依然としてそこに存在しているように装う。
図3は、新しいハードウェア固有のディスプレイドライバを起動する方法のフローチャートである。ドライバファイルのコピーが完全に成功した後、セットアップエンジンは、PnPマネージャに通知を行う。次に、PnPマネージャは、新しいデバイスドライバをメモリ内にロードする。51において、PnPマネージャは、新しいデバイスを追加する通知メッセージをグラフィックススタック(dxgport)へ送信する。PnPマネージャは、次に、DxgPortの「AddDevice」ルーチンをコールし、その後、IHVドライバをコールする。52において、PnPマネージャは、新しいデバイスを起動する通知メッセージ(IRP)をグラフィックススタックへ送信する。
53において、カーネル(グラフィックススタック)は、臨時ドライバを停止する。好ましくは、このとき、VGAドライバの実行が停止されるが、VGAドライバは依然としてロードされている。ブラックスクリーンが一瞬現れる場合がある。
54において、グラフィックススタックは、更新されたビデオディスプレイドライバを、デバイスドライバインターフェース(「DDI」)を通じてコールする。このDDIは、グラフィックスハードウェアを初期化し、必要なディスプレイドライバ資源を割り当てる。グラフィックススタックは、新しいIHVドライバに起動するように命じる。55において、グラフィックススタックは、アダプタの対応するオブジェクトを作成するようにカーネルに通知する。これらのオブジェクトは、デバイスが停止されたときに破棄されたものである。
56において、2Dグラフィックスオブジェクトが復元される。Win32Kは、対応するビュー及びそのグラフィックスデバイスオブジェクトを作成するように通知を受ける。モニタオブジェクトも、この時点で、カーネルグラフィックススタックを通じて作成される。57において、3Dグラフィックスオブジェクトが復元される。3Dグラフィックスソフトウェアは、アプリケーションが自身のデバイスオブジェクトを作成し直すことを要求する。その後、アプリケーションは、レンダリングを再開することができる。すなわち、新しい更新されたドライバを使用して、レンダリングを再開することができる。
一例のコンピューティング環境
図4及び以下の解説は、本発明の一例の実施形態を実施することができる、適切なコンピューティング環境の簡潔な概要を提供することを意図している。しかしながら、すべての種類のハンドヘルドコンピューティングデバイス、ポータブルコンピューティングデバイス、及び他のコンピューティングデバイスが、本発明に関連する使用に考慮されることが理解されるべきである。以下では、汎用コンピュータが説明されるが、これは一例にすぎない。本発明は、ネットワークサーバの相互運用性及び相互作用を有するシンクライアントにおいても動作可能とすることができる。したがって、本発明の一例の実施形態は、たとえば、クライアントデバイスが単にワールドワイドウェブに対するブラウザ又はインターフェースとしてしか機能しないネットワーク接続環境といった、ほんの少しの又は最小限のクライアント資源しか関与しないネットワーク接続ホスティングサービス(networked hosted service)の環境において実施することができる。
必須ではないが、本発明は、開発者又は試験者が使用するためのアプリケーションプログラミングインターフェース(API)を介して実施することができ、且つ/又は、プログラムモジュール等のコンピュータ実行可能命令が1つ又は複数のコンピュータ(たとえば、クライアントワークステーション、サーバ、又は他のデバイス)によって実行される一般的な状況において説明されるネットワークブラウジングソフトウェア内に含めることができる。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。通常、プログラムモジュールの機能は、さまざまな実施形態において、所望に応じて組み合わせることもできるし、分散させることもできる。その上、当業者は、本発明を他のコンピュータシステム構成と共に実施することができることを十分理解するであろう。本発明と共に使用するのに適し得る他の既知のコンピューティングシステム、コンピューティング環境、及び/又はコンピューティング構成には、パーソナルコンピュータ(PC)、現金自動預払機、サーバコンピュータ、ハンドヘルドデバイス又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、プログラマブルな家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ等が含まれるが、これらに限定されるものではない。また、本発明の一実施形態は、タスクが、通信ネットワーク又は他のデータ伝送媒体を通じてリンクされているリモート処理デバイスにより実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリストレージデバイスを含むローカル及びリモートの双方のコンピュータストレージ媒体内に配置することができる。
このように、図4は、本発明を実施することができる、適切なコンピューティングシステム環境100の一例を示している。ただし、上記で明らかにされたように、このコンピューティングシステム環境100は、適切なコンピューティング環境の一例にすぎず、本発明の使用又は機能の範囲について何ら限定を示唆することを意図するものではない。また、コンピューティング環境100は、この例示の動作環境100に示すコンポーネントのいずれの1つ又は組み合わせに関しても何らの依存関係も要件も有するものとして解釈されるべきではない。
図4を参照して、本発明を実施するための一例のシステムは、コンピュータ110の形態の汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントには、処理ユニット120、システムメモリ130、及びシステムバス121が含まれ得るが、これらに限定されるものではない。システムバス121は、システムメモリを含むさまざまなシステムコンポーネントを処理ユニット120に結合する。システムバス121は、いくつかのタイプのバス構造のいずれかとすることができる。これらのバス構造には、メモリバス又はメモリコントローラ、周辺バス、及びさまざまなバスアーキテクチャのいずれかを使用するローカルバスが含まれる。限定ではなく例として、このようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオエレクトロニクス規格協会(VESA)ローカルバス、及び周辺コンポーネント相互接続(PCI)バス(メザニンバスとしても知られている)が含まれる。
コンピュータ110は、通常、さまざまなコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110がアクセスすることができる任意の入手可能な媒体とすることができ、揮発性及び不揮発性の双方の、着脱可能媒体及び着脱不能媒体の双方を含む。限定ではなく例として、コンピュータ可読媒体には、コンピュータストレージ媒体及び通信媒体が含まれ得る。コンピュータストレージ媒体には、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報を記憶する任意の方法又は技術で実施される揮発性及び不揮発性の双方の、着脱可能媒体及び着脱不能媒体が含まれる。コンピュータストレージ媒体には、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュメモリ、若しくは他のメモリ技術、コンパクトディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、若しくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは他の磁気ストレージデバイス、又は、所望の情報を記憶するのに使用することができ、且つ、コンピュータ110がアクセスすることができる他の任意の媒体が含まれるが、これらに限定されるものではない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、搬送波又は他の搬送メカニズム等の変調されたデータ信号で具体化し、通信媒体には、任意の情報配信媒体が含まれる。「変調されたデータ信号」という用語は、その特性の1つ又は複数が、信号内の情報を符号化するように設定又は変更されている信号を意味する。限定ではなく例として、通信媒体には、有線ネットワーク又は直接有線接続等の有線媒体、及び、音響、無線周波数(RF)、赤外線及び他の無線媒体等の無線媒体が含まれる。上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含まれるものとする。
システムメモリ130は、ROM131及びRAM132等の揮発性メモリ及び/又は不揮発性メモリの形態のコンピュータストレージ媒体を含む。スタートアップ中等にコンピュータ110内の要素間での情報の転送を助ける基本ルーチンを含む基本入出力システム(BIOS)133は、通常、ROM131に記憶されている。RAM132は、通常、処理ユニット120に即座にアクセス可能であり且つ/又は処理ユニット120によって現在処理されているデータ及び/又はプログラムモジュールを含む。限定ではなく例として、図4は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、及びプログラムデータ137を示している。RAM132は、他のデータ及び/又はプログラムモジュールを含むことができる。
また、コンピュータ110は、他の着脱可能/着脱不能な揮発性/不揮発性コンピュータストレージ媒体も含むことができる。単なる例として、図4は、着脱不能な不揮発性磁気媒体からの読み出し又はこの媒体への書き込みを行うハードディスクドライブ141、着脱可能な不揮発性磁気ディスク152からの読み出し又はこのディスク152への書き込みを行う磁気ディスクドライブ151、及び、CD ROM又は他の光媒体等の着脱可能な不揮発性光ディスク156からの読み出し又はこの光ディスク156への書き込みを行う光ディスクドライブ155を示している。この一例の動作環境で使用することができる他の着脱可能/着脱不能な揮発性/不揮発性コンピュータストレージ媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM等が含まれるが、これらに限定されるものではない。ハードディスクドライブ141は、通常、インターフェース140等の着脱不能メモリインターフェースを通じてシステムバス121に接続され、磁気ディスクドライブ151及び光ディスクドライブ155は、通常、インターフェース150等の着脱可能メモリインターフェースによってシステムバス121に接続される。
上述し且つ図4に示したドライブ及びそれらに関連付けられているコンピュータストレージ媒体は、コンピュータ110のコンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータのストレージを提供する。図4では、たとえば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、及びプログラムデータ147を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、及びプログラムデータ137と同じものとすることもできるし、異なるものとすることもできることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、及びプログラムデータ147は、最低でも、これらが、異なるコピーであることを示すために、ここでは、異なる参照符号が与えられている。ユーザは、キーボード162及びポインティングデバイス161等の入力デバイスを通じてコンピュータ110内にコマンド及び情報を入力することができる。ポインティングデバイス161は、一般に、マウス、トラックボール、又はタッチパッドと呼ばれる。他の入力デバイス(図示せず)には、マイク、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナ等が含まれ得る。これらの入力デバイス及び他の入力デバイスは、多くの場合、システムバス121に結合されているユーザ入力インターフェース160を通じて処理ユニット120a〜fに接続されているが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス(USB)等の他のインターフェース及びバス構造によって接続することもできる。
モニタ191又は他のタイプの表示デバイスも、ビデオインターフェース190等のインターフェースを介してシステムバス121に接続されている。モニタ191に加えて、コンピュータは、スピーカ197及びプリンタ196等の他の周辺出力デバイスも含むことができる。これらの他の周辺出力デバイスは、出力周辺インターフェース195を通じて接続することができる。
コンピュータ110は、リモートコンピュータ180等の1つ又は複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、又は他の一般的なネットワークノードとすることができ、図4には、メモリストレージデバイス181しか示されていないが、通常は、コンピュータ110に関して上述した要素の多数又はすべてを含む。図4に示す論理接続には、ローカルエリアネットワーク(LAN)171及びワイドエリアネットワーク(WAN)173が含まれるが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、及びインターネットでは一般的である。
コンピュータ110は、LANネットワーキング環境で使用されるとき、ネットワークインターフェース又はアダプタ170を通じてLAN171に接続される。コンピュータ110は、WANネットワーキング環境で使用されるとき、通常、インターネット等のWAN173上で通信を確立するモデム172又は他の手段を含む。モデム172は、内蔵又は外付けとすることができ、ユーザ入力インターフェース160又は他の適切なメカニズムを介してシステムバス121に接続することができる。ネットワーク接続環境では、コンピュータ110に関して示したプログラムモジュール又はその一部は、リモートメモリストレージデバイスに記憶することができる。限定ではなく例として、図4は、リモートアプリケーションプログラム185を、メモリデバイス181上に存在するものとして示している。図示したネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段も使用することができることが十分理解されよう。
当業者は、コンピュータ110又は他のクライアントデバイスを、コンピュータネットワークの一部としてデプロイすることができることを十分理解することができる。この点に関して、本発明は、任意の個数のメモリユニット又はストレージユニット、並びに、任意の個数のストレージユニット又はストレージボリュームにわたって行われる任意の個数のアプリケーション及びプロセスを有する任意のコンピュータシステムに関係する。本発明の一実施形態は、リモートストレージ又はローカルストレージを有するネットワーク環境にデプロイされるサーバコンピュータ及びクライアントコンピュータを有する環境に適用することができる。また、本発明は、プログラミング言語機能、解釈能力、及び実行能力を有するスタンドアロンコンピューティングデバイスにも適用することができる。
このように、ビデオディスプレイドライバをリブートすることなく更新するシステム及び方法を説明してきた。さまざまな図に示された一定の好ましい実施形態に関連して本発明を説明してきたが、他の類似の実施形態を使用することができること、及び、本発明を実施するための説明した実施形態に対して、本発明から逸脱することなく変更又は追加を行うことができることが理解されるべきである。したがって、本発明は、いずれの単一の実施形態にも限定されるべきではなく、添付の特許請求の範囲による広さ及び範囲内で解釈されるべきである。
リブートすることなくディスプレイドライバをアップグレードする方法のフローチャートである。 現在実行されているハードウェア固有のディスプレイドライバを停止する方法のフローチャートである。 新しいハードウェア固有のディスプレイドライバを起動する方法のフローチャートである。 本発明の態様を実施することができる一例のコンピューティング環境を示すブロック図である。

Claims (11)

  1. ハードウェア固有のディスプレイドライバをホストコンピュティングシステム上でリブートすることなくアップグレードする方法であって、
    現在実行されているハードウェア固有のディスプレイドライバであって、前記ホストコンピュティングシステム上で現在実行され、現存するハードウエアデバイスとの通信を可能にするディスプレイドライバを停止するステップ、
    オペレーティングシステムと共に提供されホストコンピュティングシステムにロードされているデフォルトドライバである臨時ディスプレイドライバを前記ホストコンピュティングシステム上で起動するステップ、及び
    前記ホストコンピュティングシステム上で実行され前記現存するハードウエアデバイスとの通信を可能にするアップグレードされたハードウェア固有のディスプレイドライバを起動するステップ
    を含み、前記現在実行されているハードウェア固有のディスプレイドライバが停止された後、前記アップグレードされたハードウェア固有のディスプレイドライバを起動する前に、前記臨時ディスプレイドライバを実行することを可能にするのに十分な資源が引き続き割り当てられている、方法。
  2. 請求項1に記載の方法であって、
    ディスプレイドライバアップグレード要求を検出するステップ、及び
    前記アップグレード要求に応答して、前記現在実行されているハードウェア固有のディスプレイドライバを停止するステップ
    をさらに含む、方法。
  3. 請求項1に記載の方法であって、セットアップエンジンが、前記アップグレードされたディスプレイドライバに関連付けられているファイルを、前記ホストコンピュティングシステム上のメモリ内にコピーするステップをさらに含む、方法。
  4. 請求項1に記載の方法において、前記現在実行されているハードウェア固有のディスプレイドライバを停止するステップは、プラグアンドプレイ(PnP)マネージャが、グラフィックスデバイススタックへ、前記ビデオディスプレイドライバソフトウェアへの依存状態を解放するための通知を送るステップを含む、方法。
  5. 請求項1に記載の方法において、前記現在実行されているハードウェア固有のディスプレイドライバを停止するステップは、ビデオディスプレイクライアントを一時停止するステップを含む、方法。
  6. 請求項1に記載の方法において、前記現在実行されているハードウェア固有のディスプレイドライバを停止するステップは、前記ディスプレイドライバにその状態をクリーンアップするように通知するステップを含む、方法。
  7. 請求項1に記載の方法において、前記アップグレードされたハードウェア固有のディスプレイドライバを起動するステップは、プラグアンドプレイ(PnP)マネージャが、グラフィックスデバイススタックへ、新しいデバイスを追加して起動するためのルーチンを開始するための通知を送り、前記アップグレードされたハードウェア固有のディスプレイドライバの使用を開始するステップを含む、方法。
  8. 請求項1に記載の方法において、前記アップグレードされたハードウェア固有のディスプレイドライバを起動するステップは、前記臨時ディスプレイドライバを停止するステップを含む、方法。
  9. 請求項1に記載の方法であって、
    前記現在実行されているハードウエア固有のディスプレイドライバに関連付けられているグラフィックスオペレーションを実行するアプリケーションからのコールを受け取るステップ、及び
    ハードウェアが利用不能であることを前記アプリケーションに通知するステップ
    をさらに含み、
    前記ハードウェアが利用不能であることを通知することに応答して、前記アプリケーションは、自身を前記アップグレードされたハードウエア固有のディスプレイドライバへルーティングし直す、方法。
  10. 請求項に記載の方法において、前記アプリケーションからの前記コールは、前記現在実行されているハードウエア固有のディスプレイドライバが停止された後に受け取られる、方法。
  11. 請求項に記載の方法であって、前記アプリケーションが、自身を前記アップグレードされたハードウエア固有のディスプレイドライバへルーティングし直すまで、前記アプリケーションに対して前記現在実行されているハードウエア固有のディスプレイドライバをスプーフィングするステップをさらに含む、方法。
JP2008538894A 2005-10-31 2006-10-03 ディスプレイドライバをリブートすることなくアップグレードする方法 Active JP5038321B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/263,765 US8056072B2 (en) 2005-10-31 2005-10-31 Rebootless display driver upgrades
US11/263,765 2005-10-31
PCT/US2006/039128 WO2007053260A1 (en) 2005-10-31 2006-10-03 Rebootless display driver upgrades

Publications (3)

Publication Number Publication Date
JP2009514122A JP2009514122A (ja) 2009-04-02
JP2009514122A5 JP2009514122A5 (ja) 2009-11-26
JP5038321B2 true JP5038321B2 (ja) 2012-10-03

Family

ID=37998133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008538894A Active JP5038321B2 (ja) 2005-10-31 2006-10-03 ディスプレイドライバをリブートすることなくアップグレードする方法

Country Status (8)

Country Link
US (2) US8056072B2 (ja)
EP (1) EP1946221A4 (ja)
JP (1) JP5038321B2 (ja)
KR (1) KR101343176B1 (ja)
CN (1) CN101297284B (ja)
BR (1) BRPI0617793A2 (ja)
RU (1) RU2397539C2 (ja)
WO (1) WO2007053260A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8056072B2 (en) * 2005-10-31 2011-11-08 Microsoft Corporation Rebootless display driver upgrades
US8561050B2 (en) * 2005-11-10 2013-10-15 Hewlett-Packard Development Company, L.P. Method and system for updating an application
US8127310B1 (en) * 2007-03-26 2012-02-28 Celio Corporation Method and apparatus for dynamically switching display drivers in mobile device operating system
JP5007154B2 (ja) * 2007-05-25 2012-08-22 クラリオン株式会社 情報処理装置
US9292069B1 (en) * 2007-11-12 2016-03-22 Nvidia Corporation System and method for controlling mode switches in hardware
CN101520757A (zh) * 2009-04-07 2009-09-02 深圳华为通信技术有限公司 设备驱动方法、装置及通信系统
CN101655801B (zh) * 2009-09-11 2013-12-18 华为技术有限公司 驱动软件升级的方法及装置
US8505003B2 (en) * 2010-04-28 2013-08-06 Novell, Inc. System and method for upgrading kernels in cloud computing environments
CN102004655B (zh) * 2010-11-25 2013-06-19 飞天诚信科技股份有限公司 自动安装驱动程序的装置及方法
US8830228B2 (en) * 2010-12-20 2014-09-09 Microsoft Corporation Techniques for enabling remote management of servers configured with graphics processors
US8959142B2 (en) 2012-02-29 2015-02-17 Microsoft Corporation Combining server-side and client-side user interface elements
US8972964B2 (en) * 2012-07-26 2015-03-03 Unisys Corporation Dynamic firmware updating system for use in translated computing environments
CN103761126B (zh) * 2014-01-07 2017-03-15 中国神华能源股份有限公司 应用程序的升级方法和装置
KR20150102376A (ko) * 2014-02-28 2015-09-07 한국전자통신연구원 운영 환경의 변화에 적응하는 시스템 업그레이드와 진화 기법 및 그 시스템
CN105760242B (zh) * 2015-06-19 2018-12-11 深圳怡化电脑股份有限公司 自助设备的驱动程序自适应方法及装置
US10831394B2 (en) 2018-08-27 2020-11-10 International Business Machines Corporation Live upgrade of storage device driver using shim application

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5654738A (en) 1993-05-17 1997-08-05 Compaq Computer Corporation File-based video display mode setup
GB2282245B (en) 1993-09-23 1998-04-15 Advanced Risc Mach Ltd Execution of data processing instructions
US5682529A (en) 1994-03-14 1997-10-28 Apple Computer, Inc. System for dynamically accommodating changes in display configuration by notifying changes to currently running application programs to generate information by application programs to conform to changed configuration
JP3451499B2 (ja) 1994-08-29 2003-09-29 日本電信電話株式会社 入出力装置制御システム構成の変更処理方法
US5831639A (en) 1995-07-05 1998-11-03 Symantec Corporation Scanning display driver
US6009274A (en) * 1996-12-13 1999-12-28 3Com Corporation Method and apparatus for automatically updating software components on end systems over a network
US6009480A (en) * 1997-09-12 1999-12-28 Telxon Corporation Integrated device driver wherein the peripheral downloads the device driver via an I/O device after it is determined that the I/O device has the resources to support the peripheral device
US5889965A (en) * 1997-10-01 1999-03-30 Micron Electronics, Inc. Method for the hot swap of a network adapter on a system including a dynamically loaded adapter driver
JP3287295B2 (ja) 1998-01-16 2002-06-04 日本電気株式会社 オペレーティングシステム
US6035355A (en) * 1998-04-27 2000-03-07 International Business Machines Corporation PCI system and adapter requirements following reset
US6282646B1 (en) 1998-05-08 2001-08-28 Apple Computer, Inc. System for real-time adaptation to changes in display configuration
TW385408B (en) 1998-08-26 2000-03-21 Inventec Corp Configuration method for installing plug-and-play device
RU2237275C2 (ru) 1999-02-18 2004-09-27 Ситрикс Системз, Инк. Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер
US6832312B1 (en) 1999-12-22 2004-12-14 Evga.Com Process for automatically installing video display software upon detecting new video display controller
US6658489B1 (en) 2000-03-29 2003-12-02 International Business Machines Corporation Method for replacing a device driver during system operation
US6880086B2 (en) * 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
CZ302990B6 (cs) 2000-07-06 2012-02-08 Daiichi Sankyo Company, Limited Adicní soli derivátu hydropyridinu s kyselinou chlorovodíkovou a maleinovou, príprava a použití
KR100520058B1 (ko) 2000-12-13 2005-10-11 삼성전자주식회사 디바이스드라이버 업그레이드 시스템 및 디바이스드라이버업그레이드 방법
US7080247B2 (en) 2000-12-22 2006-07-18 Evga Corporation System and method for automated display driver management
JP3984895B2 (ja) 2001-10-03 2007-10-03 キヤノン株式会社 情報処理装置およびサーバ装置およびドライバ更新方法およびコンピュータが読み取り可能な記憶媒体およびプログラム
US7506147B2 (en) * 2002-02-04 2009-03-17 Sonus Networks, Inc. Policy distribution point for setting up network-based services
US20040019896A1 (en) 2002-07-23 2004-01-29 Wen-Chu Yu Method of automatic program installation for computer device
US7007049B2 (en) 2002-11-18 2006-02-28 Innopath Software, Inc. Device memory management during electronic file updating
US7197751B2 (en) 2003-03-12 2007-03-27 Oracle International Corp. Real-time collaboration client
US7457831B2 (en) 2003-03-31 2008-11-25 Microsoft Corporation Peripheral device driver maintenance scheme for networked peripheral device clients
US7810089B2 (en) * 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8056072B2 (en) * 2005-10-31 2011-11-08 Microsoft Corporation Rebootless display driver upgrades

Also Published As

Publication number Publication date
KR20080067633A (ko) 2008-07-21
BRPI0617793A2 (pt) 2011-08-09
US8056072B2 (en) 2011-11-08
CN101297284B (zh) 2012-07-18
EP1946221A1 (en) 2008-07-23
JP2009514122A (ja) 2009-04-02
US8302089B2 (en) 2012-10-30
EP1946221A4 (en) 2009-01-14
WO2007053260A1 (en) 2007-05-10
KR101343176B1 (ko) 2013-12-19
CN101297284A (zh) 2008-10-29
RU2397539C2 (ru) 2010-08-20
US20110321027A1 (en) 2011-12-29
RU2008117123A (ru) 2009-11-10
US20070101343A1 (en) 2007-05-03

Similar Documents

Publication Publication Date Title
JP5038321B2 (ja) ディスプレイドライバをリブートすることなくアップグレードする方法
CN106293880B (zh) 在Windows系统上运行Android应用程序的方法及装置
JP4459290B2 (ja) オペレーティングシステムの停止状態からの高速起動
KR100961349B1 (ko) Vex - 가상 확장물을 고립시키는 방법
US7631173B2 (en) Method and system for performing pre-boot operations from an external memory including memory address and geometry
CN105765534B (zh) 虚拟计算系统和方法
US7409536B2 (en) Computer systems with several operating systems coexisting thereon and swapping between these operating systems
US6698016B1 (en) Method for injecting code into another process
JP5026494B2 (ja) 高速で起動するコンピュータ
JP2003099268A (ja) 選択された機能を有するオペレーティングシステムを作成し使用する方法及びシステム
US20070198820A1 (en) Approval process for booting devices in Pre-Boot Execution Environment (PXE)
WO2022135429A1 (zh) 快速启动方法
US6829725B2 (en) Fault resistant operating system
JP2002132741A (ja) プロセッサ追加方法、計算機及び記録媒体
JP2006164266A (ja) オペレーティングシステムのパフォーマンスの改善
US9852028B2 (en) Managing a computing system crash
US10379872B1 (en) Method for creation of a device driver for a peripheral device
US8868979B1 (en) Host disaster recovery system
JP5275456B2 (ja) ハイパーバイザーを使用したディスクレスクライアント
US6915418B2 (en) Interrupt 21h ROM client loader and payload delivery method
US11340883B2 (en) Installing, updating or reconfiguring an application without disabling a write filter
US20210240552A1 (en) Supporting universal windows platform and win32 applications in kiosk mode
JP2008165823A (ja) データをネットワーク上のコンピューターにストリームするためのシステム及び方法
JP2008198210A (ja) ハイバネーションを使用したクライアントコンピューターのオペレーティングシステムのネットワークブーティングのためのシステム及び方法
JP2007293730A (ja) 中間コードプログラムの実行方法および情報端末

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091002

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120419

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120606

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120705

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5038321

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250