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

另請參閱

D3DKMT_LOCK