Platform SDK: DirectX

IDirectDrawSurface7::PageLock

IDirectDrawSurface7::PageLock メソッドは、ダイレクト メモリ アクセス (DMA) によるシステム メモリへのブリット処理中、またはシステム メモリからのブリット処理中に、システム メモリ サーフェスがページ アウトされることを回避する。

HRESULT PageLock(
  DWORD dwFlags  
);

パラメータ

dwFlags
現時点では未使用なので 0 を設定しておく。

戻り値

成功すれば、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 で宣言。

参照

IDirectDrawSurface7::PageUnlock