DirectX SDK |
The IDirectDrawSurface7::PageLock method prevents a system-memory surface from being paged out while a blit operation that uses direct memory access (DMA) transfers to or from system memory is in progress.
HRESULT PageLock( DWORD dwFlags );
If the method succeeds, the return value is DD_OK.
If it fails, the method can return one of the following error values:
DDERR_CANTPAGELOCK |
DDERR_INVALIDOBJECT |
DDERR_INVALIDPARAMS |
DDERR_SURFACELOST |
You must call this method to make use of DMA support. If you do not, the blit occurs using software emulation. For more information, see Using DMA.
The performance of the operating system can be negatively affected if too much memory is locked.
A lock count is maintained for each surface and is incremented each time that IDirectDrawSurface7::PageLock is called for that surface. The count is decremented when IDirectDrawSurface7::PageUnlock is called. When the count reaches 0, the memory is unlocked, and can then be paged by the operating system.
This method works only on system-memory surfaces; it does not page-lock a display-memory surface or an emulated primary surface. If an application calls this method on a display memory surface, the method does nothing except return DD_OK.
This method was not implemented in the IDirectDraw interface.
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Requires Windows 98.
Header: Declared in ddraw.h.