次の方法で共有


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

UnlockAsync 関数は、LockAsync 関数が以前にロックしたリソースまたはリソース内のサーフェスのロックを解除します。

構文

PFND3DDDI_UNLOCKASYNC Pfnd3dddiUnlockasync;

HRESULT Pfnd3dddiUnlockasync(
  HANDLE hDevice,
  const D3DDDIARG_UNLOCKASYNC *unnamedParam2
)
{...}

パラメーター

hDevice

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

unnamedParam2

pData [in]

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

戻り値

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

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

注釈

ユーザー モードのディスプレイ ドライバーは、UnlockAsync 関数が呼び出された後、適切な割り当てハンドルを使用して pfnUnlockCb 関数を呼び出す必要があります。

ユーザー モードのディスプレイ ドライバーは、必要に応じて UnlockAsync を実装します。Microsoft Direct3D ランタイムは、ドライバーが LockAsync、UnlockAsync、および Rename 関数を実装している場合にのみ UnlockAsync を呼び出します。

LockAsync と同様に、UnlockAsync は メイン アプリケーション スレッドで呼び出されますが、ユーザー モード ディスプレイ ドライバー関数に対する他のほとんどの呼び出しはワーカー スレッド (複数プロセッサ コンピューター) で行われます。

ユーザー モードのディスプレイ ドライバーが DDI バージョンの 0x0000000B 以上を公開している場合 (ドライバーは、ドライバーの OpenAdapter 関数の呼び出しで、D3D10DDIARG_OPENADAPTER構造体の DriverVersion メンバーでこの値を返します)、Direct3D ランタイムは再入可能な方法で UnlockAsync を呼び出します。 ランタイムが再入可能な方法で UnlockAsync を呼び出すと、あるスレッドが UnlockAsync 内で実行され、同じディスプレイ デバイスを参照する別のスレッドが別のユーザー モード ディスプレイ ドライバー関数内で実行されます。

要件

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

こちらもご覧ください

D3DDDIARG_UNLOCKASYNC

D3DDDI_DEVICEFUNCS

LockAsync

名前の変更

pfnUnlockCb