次の方法で共有


NewDisp: ディスプレイ ドライバーの動的再読み込み

ドライバー開発キット (DDK) は、ディスプレイ ドライバーを再起動せずに動的に再読み込みできるツールを提供します。 このツールは、newdisp.exe と呼ばれ、ディスプレイ ドライバー コードを更新するときに再起動の必要性を軽減することで、開発中のディスプレイ ドライバーのテストを高速化します。

注: このツールは、Windows ドライバー キット (WDK) の Windows Vista 以降のリリースでは使用できません。

newdisp.exe を実行するには

  1. すべての Direct3D アプリケーションと OpenGL アプリケーションを閉じます。

  2. 更新したディスプレイ ドライバーの DLL を \system32 ディレクトリにコピーします。

  3. newdisp (引数なしで) を実行します。

newdisp が呼び出されるたびに、ディスプレイ ドライバーが再読み込みされます。 呼び出し時にドライバー参照が存在しない場合、 newdisp は次の方法で動的再読み込みを実行します。

  • ChangeDisplaySettings を 640 x 480 x 16 色で呼び出すと、システムは 16 色の VGA ディスプレイ ドライバー DLL を読み込んで実行し、同じように古いディスプレイ ドライバー DLL がメモリからアンロードされます。

  • 元のモードに別の ChangeDisplaySettings コールバックをすぐに実行すると、新しいディスプレイ ドライバー DLL が \system32 ディレクトリからロードされ、16 色の VGA ディスプレイ ドライバー DLL がアンロードされます。

ドライバー インスタンスへのリファレンスは、ドライバーにアクティブな Direct3D、WNDOBJ、または DRIVEROBJ オブジェクトがある場合に存在します。 ドライバー インスタンスへのリファレンスが存在する間に、newdisp を実行すると、古いディスプレイ ドライバー DLL はアンロードされません。それに対応して、新しいディスプレイ ドライバー DLL は読み込まれません。

Newdisp は、Windows 2000 以降に追加された動的ドライバー読み込み機能に依存して、再起動せずにドライバーを再読み込みします。そのため、Windows NT 4.0 以前のオペレーティング システム バージョンでは機能しません。 また、VGA ドライバーをグラフィックス デバイスに読み込むことができない場合や、ネイティブ ディスプレイ ドライバーが VGA ドライバーで処理するのではなく、640 x 480x16 色のモードをサポートしている場合にも機能しません。

現在、newdisp ではビデオ ミニポート ドライバーが再読み込みされないことに注意してください。 ミニポート ドライバーが変更された場合、システムをインストールしてテストするには、システムを再起動する必要があります。