On 06 May 2005 16:01:06 +0200, you wrote:
Rein Klazes wijn@wanadoo.nl writes:
I managed to fixed it in two ways:
- put a X11DRV_CoerceDIBSection( physDevDst, DIB_Status_InSync, FALSE );
at the end of X11DRV_BitBlt. This probably defeats the whole purpose of these protections so:
- Add a "IsBadReadPtr( buffer, bytesToWrite)" in the top of WriteFile
to force an exception and everything works.
Would that be an acceptable fix?
We don't want that at the top of WriteFile, but it could be OK to add special handling of the INVALID_USER_BUFFER error, with a big FIXME comment...
Special handling: try again after an IsBadReadPtr call.
Changelog:
dlls/kernel : file.c
Work around a problem where WriteFile is asked to write memory protected by DIBSection code.
Rein.