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 ,而大部分對使用者模式顯示驅動程式函式的呼叫是在多處理器電腦上的背景工作線程上 () 。
如果使用者模式顯示驅動程序公開 DDI 版本的0x0000000B或更新版本, (驅動程式會在D3D10DDIARG_OPENADAPTER結構的DriverVersion 成員中傳回此值,以重新進入方式呼叫驅動程式的 OpenAdapter 函式) ,Direct3D 運行時間會以重新進入的方式呼叫 UnlockAsync。 當運行時間以重新進入方式呼叫 UnlockAsync 時,一個線程可以在 UnlockAsync 內執行,另一個參考相同顯示裝置的線程會在另一個使用者模式顯示驅動程式函式內執行。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
目標平台 | 桌面 |
標頭 | d3dumddi.h (include D3dumddi.h) |