次の方法で共有


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

Unlock 関数は、以前に Lock 関数によってロックされていたリソースまたはリソース内のサーフェスのロックを解除します。

構文

PFND3DDDI_UNLOCK Pfnd3dddiUnlock;

HRESULT Pfnd3dddiUnlock(
  HANDLE hDevice,
  const D3DDDIARG_UNLOCK *unnamedParam2
)
{...}

パラメーター

hDevice

ディスプレイ デバイス (グラフィックス コンテキスト) へのハンドル。

unnamedParam2

pData [in]

ロックを解除するリソース内のリソースまたはサーフェスを記述する D3DDDIARG_UNLOCK 構造体へのポインター。

戻り値

Unlock は 、次のいずれかの値を返します。

リターン コード 説明
S_OK リソースのロックが正常に解除されました。
E_OUTOFMEMORY ロック解除を完了するために必要なメモリを割り当てませんでした。
E_INVALIDARG D3DDDIARG_UNLOCK記述されているリソースは、ドライバーの Lock 関数の以前の呼び出しによってロックされませんでした。

注釈

これらのコメントは、[ ロック ] リファレンス ページの [解説] セクションの説明に似ています。

ユーザー モードディスプレイ ドライバーは、Unlock が呼び出された後に、Microsoft Direct3D ランタイムの pfnUnlockCb 関数を呼び出す必要があります。 この pfnUnlockCb 呼び出しでは、ユーザー モードディスプレイ ドライバーは割り当てハンドルを渡します。 pfnUnlockCb を呼び出す前に、ユーザー モードディスプレイドライバーはまずサーフェスを適切な割り当てにマップする必要があります。

ランタイムは、ユーザー モード ディスプレイ ドライバーの Unlock 関数を呼び出して、事前に割り当てられたシステム メモリ サーフェスのロックを解除します。 ランタイムは、事前割り当て済みシステム メモリのロックを解除する Unlock 呼び出しと他の Unlock 呼び出しを区別するために、pData が指すD3DDDIARG_UNLOCK構造体の Flags メンバーに NotifyOnly ビット フィールド フラグ設定します。 ユーザー モード ディスプレイ ドライバーの Lock 関数が pfnLockCb と呼ばれ、サーフェスに対応するシステム メモリ割り当てをロックする場合は、 pfnUnlockCb も呼び出す必要があります。 pfnUnlockCb を呼び出さないと、ランタイム、ユーザー モードディスプレイ ドライバー、およびディスプレイ ミニポート ドライバー間の調整が停止します。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDIARG_UNLOCK

D3DDDI_DEVICEFUNCS

[Lock] (ロック)

pfnLockCb

pfnUnlockCb