Platform SDK: DirectX |
IDirectDrawSurface7::PageLock メソッドは、ダイレクト メモリ アクセス (DMA) によるシステム メモリへのブリット処理中、またはシステム メモリからのブリット処理中に、システム メモリ サーフェスがページ アウトされることを回避する。
HRESULT PageLock( DWORD dwFlags );
成功すれば、DD_OK を返す。
失敗すれば、以下のエラー値のいずれかを返す。
DDERR_CANTPAGELOCK |
DDERR_INVALIDOBJECT |
DDERR_INVALIDPARAMS |
DDERR_SURFACELOST |
DMA サポートを利用するには、このメソッドを呼び出さなくてはならない。このメソッドを呼び出さないと、ブリットはソフトウェア エミュレーションを使って行われる。詳細については、「DMA の使用」を参照すること。
ロックするメモリが多すぎると、オペレーティング システムのパフォーマンスに悪影響を与える。
ロック カウントは個々のサーフェスに対して維持され、サーフェスに対して IDirectDrawSurface7::PageLock が呼び出されるたびにインクリメントされる。IDirectDrawSurface7::PageUnlock が呼び出されると、このカウントはデクリメントされる。ロック カウントが 0 になると、メモリのロックが解除され、オペレーティング システムでページングできるようになる。
このメソッドは、システムメモリ サーフェスに対してだけ作用する。つまり、ディスプレイメモリ サーフェスやエミュレートされるプライマリ サーフェスをページロックすることはできない。アプリケーションがディスプレイ メモリ サーフェスでこのメソッドを呼び出した場合、メソッドは DD_OK を返すだけである。
このメソッドは、IDirectDraw インターフェイスには実装されていない。
Windows NT/2000 :Windows 2000 が必要。
Windows 95/98 : Windows 98 が必要。
ヘッダー : ddraw.h で宣言。