Thx Royce3 for notice's a typo error CreateData to CanCreateData in a if statement. But it is not the bug we are looking for.
Modified: trunk/reactos/lib/ddraw/main/surface.c

Modified: trunk/reactos/lib/ddraw/main/surface.c
--- trunk/reactos/lib/ddraw/main/surface.c	2005-08-09 06:28:23 UTC (rev 17232)
+++ trunk/reactos/lib/ddraw/main/surface.c	2005-08-09 07:42:00 UTC (rev 17233)
@@ -72,7 +72,7 @@
 	if (This->owner->DriverCallbacks.DdMain.CanCreateSurface (&CanCreateData) == DDHAL_DRIVER_NOTHANDLED)
         return DDERR_INVALIDPARAMS;
 	
-	if(CreateData.ddRVal != DD_OK)
+	if(CanCreateData.ddRVal != DD_OK)
 		return CanCreateData.ddRVal;