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;仅当驱动程序实现 lockAsync 、UnlockAsync和 Rename 函数时,Microsoft Direct3D 运行时才会 调用 unlockAsync。
与 lockAsync 一样,UnlockAsync 在主应用程序线程上调用,而对用户模式显示驱动程序函数的大多数其他调用是在工作线程(在多处理器计算机上) 上进行的。
如果用户模式显示驱动程序公开0x0000000B或更高版本的 DDI 版本(驱动程序在调用驱动程序的 OpenAdapter 函数时,D3D10DDIARG_OPENADAPTER 结构的 DriverVersion 成员中返回此值),Direct3D 运行时将以重新进入的方式调用 UnlockAsync。 当运行时以重新进入的方式调用 UnlockAsync 时,一个线程可以在 UnlockAsync 内执行,另一个引用同一显示设备的线程在另一个用户模式显示驱动程序函数内执行。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows Vista 和更高版本的 Windows作系统中可用。 |
目标平台 | 桌面 |
标头 | d3dumddi.h (包括 D3dumddi.h) |