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 | 先前调用驱动程序的 LockAsync 函数时,D3DDDIARG_UNLOCKASYNC描述的资源未锁定。 |
注解
在调用 UnlockAsync 函数后,用户模式显示驱动程序应使用适当的分配句柄调用 pfnUnlockCb 函数。
用户模式显示驱动程序可以选择实现 UnlockAsync;仅当驱动程序实现 LockAsync、UnlockAsync 和 Rename 函数时,Microsoft Direct3D 运行时才会调用 UnlockAsync。
与 LockAsync 一样,UnlockAsync 是在main应用程序线程上调用的,而对用户模式显示驱动程序函数的大多数其他调用是在工作线程 (多处理器计算机上) 。
如果用户模式显示驱动程序公开 0x0000000B 或更高版本的 DDI 版本 (驱动程序在调用驱动程序的 OpenAdapter 函数) 中,在 D3D10DDIARG_OPENADAPTER 结构的 DriverVersion 成员中返回此值,则 Direct3D 运行时将以可重入的方式调用 UnlockAsync。 当运行时以可重入方式调用 UnlockAsync 时,一个线程可以在 UnlockAsync 内执行,而另一个引用同一显示设备的线程可以在另一个用户模式显示驱动程序函数内执行。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Vista 和更高版本的 Windows 操作系统中可用。 |
目标平台 | 桌面 |
标头 | d3dumddi.h (包括 D3dumddi.h) |