IDirectDrawSurface7::P ageLock 方法 (ddraw.h)
防止系統記憶體表面分頁,而位區塊傳輸 (bitblt) 作業使用直接記憶體存取 (DMA) 傳輸至系統記憶體進行中。
語法
HRESULT PageLock(
[in] DWORD unnamedParam1
);
參數
[in] unnamedParam1
目前未使用 ,且必須設定為 0。
傳回值
如果方法成功,傳回值會DD_OK。
如果失敗,方法可以傳回下列其中一個錯誤值:
- DDERR_CANTPAGELOCK
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_SURFACELOST
備註
您必須呼叫 PageLock ,才能使用 DMA 支援。 如果您未這麼做,則 bitblt 會使用軟體模擬進行。
如果鎖定太多記憶體,操作系統的效能可能會受到負面影響。
每個表面都會維護鎖定計數,並在每次針對該介面呼叫 PageLock 時遞增。 呼叫 IDirectDrawSurface7::P ageUnlock 時,計數會遞減。 當計數達到 0 時,記憶體會解除鎖定,然後可由操作系統分頁。
PageLock 僅適用於系統記憶體介面;它不會將顯示器記憶體介面或仿真的主要介面分頁鎖定。 如果應用程式在顯示記憶體介面上呼叫 PageLock ,則除了傳回DD_OK以外,方法不會執行任何動作。
IDirectDrawSurface7::P ageLock 未在 IDirectDraw 介面版本中實作。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | ddraw.h |
程式庫 | Ddraw.lib |
Dll | Ddraw.dll |