次の方法で共有


PFND3DDDI_DESTROYCONTEXTCBコールバック関数 (d3dumddi.h)

D3D ランタイムの pfnDestroyContextCb 関数は、pfnCreateContextCb 関数の呼び出しによって作成されたコンテキストを破棄します。

構文

PFND3DDDI_DESTROYCONTEXTCB Pfnd3dddiDestroycontextcb;

HRESULT Pfnd3dddiDestroycontextcb(
  HANDLE hDevice,
  const D3DDDICB_DESTROYCONTEXT *unnamedParam2
)
{...}

パラメーター

hDevice

[in]ディスプレイ デバイス (つまり、グラフィックス コンテキスト) へのハンドル。

unnamedParam2

[in]破棄するコンテキストを識別する D3DDDICB_DESTROYCONTEXT 構造体へのポインター。

戻り値

pfnDestroyContextCb は、コンテキスト削除要求の成功または失敗を示す HRESULT を返します。 一般的な戻り値は次のとおりです。

リターン コード 形容
S_OK コンテキストが正常に破棄されました。
E_INVALIDARG パラメーターが検証され、正しくないと判断されました。

備考

指定したコンテキストが現在キューに登録されている作業を完了していない場合、pfnDestroyContextCb 関数は、コンテキストが処理を終了してから戻るまでブロックします。

pfnDestroyContextCb 、破棄するコンテキストが現在同期オブジェクトを所有している場合にエラーを返します。

ドライバーが Direct3D バージョン 11 以降 pfnDestroyContextCb を呼び出す方法については、「Direct3D 10からの変更」を参照してください。

次のコード例は、ディスプレイ デバイスの既定のコンテキストを破棄する方法を示しています。

    if (m_d3dCallbacks.pfnDestroyContextCb) {
        D3DDDICB_DESTROYCONTEXT DestroyContext;
        DestroyContext.hContext = m_sContexts[MULTI_ENGINE_NODE_3D].hContext;
        m_d3dCallbacks.pfnDestroyContextCb(m_hD3D, &DestroyContext);
        m_sContexts[MULTI_ENGINE_NODE_3D].hContext = NULL;
    }

必要条件

要件 価値
サポートされる最小クライアント Windows Vista (WDDM 1.0)
ターゲット プラットフォーム の デスクトップ
ヘッダー d3dumddi.h (D3dumddi.h を含む)

関連項目

D3DDDICB_DESTROYCONTEXT

pfnCreateContextCb の