次の方法で共有


LPD3DHAL_CONTEXTDESTROYCB コールバック関数 (d3dhal.h)

D3dContextDestroy 関数は、指定したコンテキストを削除します。

構文

LPD3DHAL_CONTEXTDESTROYCB Lpd3dhalContextdestroycb;

DWORD Lpd3dhalContextdestroycb(
  LPD3DHAL_CONTEXTDESTROYDATA unnamedParam1
)
{...}

パラメーター

unnamedParam1

pcdd [入力]

ドライバーがコンテキストを破棄するために必要な情報を含む D3DHAL_CONTEXTDESTROYDATA 構造体を指します。

戻り値

D3dContextDestroy は、次のいずれかのコールバック コードを返します。

備考

すべての Microsoft Direct3D ドライバーは、D3dContextDestroyをサポートする必要があります。

ドライバーは、削除されるコンテキストに割り当てられているすべてのリソースを解放する必要があります。 たとえば、ドライバーは、コンテキストに関連付けられている次のリソースを解放する必要があります。

ドライバーは、アプリケーションまたは Direct3D ランタイム要求に応答して DirectDraw によって解放されるため、コンテキストに関連付けられている Microsoft DirectDraw サーフェスを解放しないでください。

D3dContextCreate が呼び出されたときに、ドライバーが D3DHAL_CONTEXTCREATEDATA 構造体の lpDDLcl メンバーとして渡された DD_DIRECTDRAW_LOCAL 構造体へのポインターをキャッシュした場合、D3dContextDestroy が呼び出される前にポインターが無効になる可能性があります。 したがって、D3dContextDestroy アクセス違反が発生したり、ランダム なデータが返されたりする可能性があるため、このDD_DIRECTDRAW_LOCAL ポインターを逆参照することはできません。 たとえば、ドライバーの D3dDestroyDDLocal 関数が D3dContextDestroy 前に呼び出された場合、オペレーティング システムは、D3dContextDestroy 呼び出しの前にこのDD_DIRECTDRAW_LOCAL ポインターを解放します。

D3dContextDestroy は、PDEV 無効にして呼び出すことができます。 PDEV は、ディスプレイ ドライバーの DrvAssertMode 関数を呼び出すことによって無効または有効になります。 詳細については、「PDEV の管理」を参照してください。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー d3dhal.h (D3dhal.h を含む)

関連項目

D3DHAL_CONTEXTCREATEDATA

D3DHAL_CONTEXTDESTROYDATA

D3dContextCreate

D3dDestroyDDLocal

DD_DIRECTDRAW_LOCAL