次の方法で共有


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

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

構文

LPD3DHAL_CONTEXTDESTROYCB Lpd3dhalContextdestroycb;

DWORD Lpd3dhalContextdestroycb(
  LPD3DHAL_CONTEXTDESTROYDATA unnamedParam1
)
{...}

パラメーター

unnamedParam1

pcdd [in]

ドライバー がコンテキスト を破棄するために必要な情報を含む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 の管理」 を参照してください。

要件

要件
対象プラットフォーム デスクトップ
Header d3dhal.h (D3dhal.h を含む)

こちらもご覧ください

D3DHAL_CONTEXTCREATEDATA

D3DHAL_CONTEXTDESTROYDATA

D3dContextCreate

D3dDestroyDDLocal

DD_DIRECTDRAW_LOCAL