The IDirectDrawSurface4::PageUnlock method unlocks a system-memory surface, allowing it to be paged out.
HRESULT PageUnlock(
  DWORD dwFlags  
);
 If the method succeeds, the return value is DD_OK.
If the method fails, the return value may be one of the following error values:
| DDERR_CANTPAGEUNLOCK | 
| DDERR_INVALIDOBJECT | 
| DDERR_INVALIDPARAMS | 
| DDERR_NOTPAGELOCKED | 
| DDERR_SURFACELOST | 
A lock count is maintained for each surface and is incremented each time IDirectDrawSurface4::PageLock is called for that surface. The count is decremented when IDirectDrawSurface4::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 will not page unlock a display-memory surface or an emulated primary surface. If an application calls this method on a display-memory surface, this method will do 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 95 or later. Available as a redistributable for Windows 95.
  Header: Declared in ddraw.h.
  Import Library: Use ddraw.lib.