NtGdiDdGetAvailDriverMemory 
- implement the code but the pointer is not set to DdGetAvailDriverMemory and it is undtested.
Modified: trunk/reactos/subsys/win32k/include/intddraw.h
Modified: trunk/reactos/subsys/win32k/ntddraw/ddraw.c
Modified: trunk/reactos/subsys/win32k/ntddraw/stubs.c

Modified: trunk/reactos/subsys/win32k/include/intddraw.h
--- trunk/reactos/subsys/win32k/include/intddraw.h	2005-10-06 20:34:20 UTC (rev 18300)
+++ trunk/reactos/subsys/win32k/include/intddraw.h	2005-10-06 21:18:59 UTC (rev 18301)
@@ -47,6 +47,10 @@
 	PDD_SURFCB_UPDATEOVERLAY        DdUpdateOverlay;
 	PDD_SURFCB_SETOVERLAYPOSITION   DdSetOverlayPosition;
 	PDD_SURFCB_SETPALETTE           DdSetPalette;
+	// Miscellaneous Callback Function
+	PDD_GETAVAILDRIVERMEMORY        DdGetAvailDriverMemory;
+	// NT callbacks 
+	DD_FREEDRIVERMEMORYDATA         DdFreeDriverMemory;
 	// Palette callbacks
 	PDD_PALCB_DESTROYPALETTE        DdDestroyPalette;
 	PDD_PALCB_SETENTRIES            DdSetEntries;

Modified: trunk/reactos/subsys/win32k/ntddraw/ddraw.c
--- trunk/reactos/subsys/win32k/ntddraw/ddraw.c	2005-10-06 20:34:20 UTC (rev 18300)
+++ trunk/reactos/subsys/win32k/ntddraw/ddraw.c	2005-10-06 21:18:59 UTC (rev 18301)
@@ -302,8 +302,7 @@
 
 	PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
 
-
-	 ddRVal = pDirectDraw->DrvGetDirectDrawInfo(
+    ddRVal = pDirectDraw->DrvGetDirectDrawInfo(
                  pDirectDraw->Global.dhpdev,(PDD_HALINFO) puGetDriverInfoData,
                  &pdwNumHeaps, pvmList, &pdwNumFourCC, pdwFourCC);
 
@@ -321,9 +320,7 @@
 {
 	DWORD  ddRVal;
 	PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
-
-	puWaitForVerticalBlankData->lpDD = pDirectDraw->Local.lpGbl;
-
+	
 	ddRVal = pDirectDraw->DdWaitForVerticalBlank(puWaitForVerticalBlankData);
 
     GDIOBJ_UnlockObjByPtr(pDirectDraw);
@@ -341,8 +338,6 @@
 
 	PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
 
-	puCanCreateSurfaceData->lpDD = pDirectDraw->Local.lpGbl;
-
 	ddRVal = pDirectDraw->DdCanCreateSurface(puCanCreateSurfaceData);
 
 	GDIOBJ_UnlockObjByPtr(pDirectDraw);
@@ -373,8 +368,30 @@
  return ddRVal;
 }
 
+ /* FIXME
+    this call is not implement yet  
+	where to get the pointer DdGetAvailDriverMemory(puGetAvailDriverMemoryData 
+	for the call in NtGdiDdCreateDirectDrawObject `??
+	or some where else ??
+	*/
+ 
+DWORD STDCALL NtGdiDdGetAvailDriverMemory(
+    HANDLE hDirectDrawLocal,
+    PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData
+)
+{
+	DWORD  ddRVal;
 
+	PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
 
+    ddRVal = pDirectDraw->DdGetAvailDriverMemory(puGetAvailDriverMemoryData); 
+ 
+	GDIOBJ_UnlockObjByPtr(pDirectDraw);
 
+	return ddRVal;
+}
 
+
+
+
 /* EOF */

Modified: trunk/reactos/subsys/win32k/ntddraw/stubs.c
--- trunk/reactos/subsys/win32k/ntddraw/stubs.c	2005-10-06 20:34:20 UTC (rev 18300)
+++ trunk/reactos/subsys/win32k/ntddraw/stubs.c	2005-10-06 21:18:59 UTC (rev 18301)
@@ -14,15 +14,7 @@
 #include <debug.h>
 
 
-DWORD STDCALL NtGdiDdGetAvailDriverMemory(
-    HANDLE hDirectDrawLocal,
-    PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData
-)
-{
-	UNIMPLEMENTED
 
-	return 0;
-}
 
 BOOL STDCALL NtGdiD3dContextCreate(
     HANDLE hDirectDrawLocal,