D3DKMTLock 函式 (d3dkmthk.h)
D3DKMTLock 函式會鎖定配置內的整個配置或特定頁面。
語法
NTSTATUS D3DKMTLock(
D3DKMT_LOCK *unnamedParam1
);
參數
unnamedParam1
pData [in, out]
描述鎖定配置之參數 的D3DKMT_LOCK 結構的指標。
傳回值
D3DKMTLock 會傳回下列其中一個值:
傳回碼 | Description |
---|---|
STATUS_SUCCESS | 配置已成功鎖定。 |
STATUS_DEVICE_REMOVED | 圖形配接器已停止或顯示裝置已重設。 |
STATUS_INVALID_PARAMETER | 已驗證參數,並判斷為不正確。 |
STATUS_GRAPHICS_ALLOCATION_BUSY | 配置目前正在使用中,而且無法鎖定。 |
STATUS_GRAPHICS_TOO_MANY_REFERENCES | 配置上擱置太多參考。 |
STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION | 無法鎖定配置,因為無法使用還原wizzling 光圈,而且因為配置已釘選且無法收回。 |
此函式也可能傳回其他NTSTATUS值。
備註
系統會呼叫 D3DKMTLock 函式來存取系統記憶體配置和視訊記憶體配置。
範例
下列程式代碼範例示範 OpenGL ICD 如何使用 D3DKMTLock 來鎖定整個配置。
VOID* LockEntireAllocation(D3DKMT_HANDLE hDevice, D3DKMT_HANDLE hAllocation, UINT PrivateData)
{
D3DKMT_LOCK LockAllocation = {0};
LockAllocation.hDevice = hDevice;
LockAllocation.hAllocation = LockData.hAllocation;
LockAllocation.Flags.LockEntire = TRUE;
LockAllocation.PrivateDriverData = PrivateData;
LockAllocation.NumPages = 0;
LockAllocation.pPages = NULL;
if (NT_SUCCESS((*pfnKTLock)(&LockAllocation))) {
return LockAllocation.pData;
}
return NULL;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
目標平台 | Universal |
標頭 | d3dkmthk.h (包含 D3dkmthk.h) |
程式庫 | Gdi32.lib |
Dll | Gdi32.dll |