ドライバの内部エラー
ドライバの内部エラー
Microsoft® DirectX® 8.0 では、アプリケーションが Createxxx 呼び出しから D3DERR_DRIVERINTERNALERROR を受け取ることがあるが、3D レンダリングの呼び出しは、このエラーを返さない。その代わりに、3D レンダリング処理で D3DERR_DRIVERINTERNALERROR が発生した場合には、ランタイムは内部データ構造体を部分的にリセットし、何かが失敗したことを示すデバッグ情報を記録して、実行を継続しようとする。その結果、通常、アプリケーション障害やオペレーティング システム障害が発生する。
DirectX 9.0 での処理は、次のとおりである。
Createxxx 呼び出しから D3DERR_DRIVERINTERNALERROR が返された場合、それは致命的エラーとは見なされない。ドライバは、このエラーを D3DERR_UNSUPPORTED または D3DERR_OUTOFMEMORY エラーと同様に扱う。
3D レンダリング中に D3DERR_DRIVERINTERNALERROR が発生した場合、ランタイムは IDirect3DDevice9::Present 呼び出しのときに、そのエラーを返す。アプリケーションは次のいずれかを実行できる。
-
- 終了する。このとき、ポップアップ ウィンドウを表示して、ディスプレイ アダプタに問題があるためアプリケーションを続行できないことを示し、アダプタ メーカーに問い合わせるようユーザーに求める。
- IDirect3DDevice9::Reset を呼び出して再起動を試みる。これは基本的にはデバイスの消失から回復するパスと同じである。IDirect3DDevice9::Reset が D3DERR_DRIVERINTERNALERROR で失敗した場合、アプリケーションは直ちに終了し、アダプタ メーカーに問い合わせるよう求めるメッセージを表示する必要がある。