次の方法で共有


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

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

構文

PFND3DDDI_UNLOCK Pfnd3dddiUnlock;

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

パラメーター

hDevice

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

unnamedParam2

pData [in]

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

戻り値

ロック解除 は、次のいずれかの値を返します。

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

備考

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

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
ターゲット プラットフォーム 万国
ヘッダー d3dumddi.h (D3dumddi.h を含む)

関連項目

D3DDDIARG_UNLOCK

D3DDDI_DEVICEFUNCS

ロック

pfnLockCb する

pfnUnlockCb する