Author: jimtabor Date: Mon Nov 5 20:27:25 2007 New Revision: 30187
URL: http://svn.reactos.org/svn/reactos?rev=30187&view=rev Log: Ntoskrnl: - Add callback for BatchFlushRoutine in ps/win32.c. - Thanks to Thomas for helping me find out why it was not working.
Modified: trunk/reactos/ntoskrnl/ke/i386/trap.s trunk/reactos/ntoskrnl/ke/i386/usercall.c trunk/reactos/ntoskrnl/ps/win32.c
Modified: trunk/reactos/ntoskrnl/ke/i386/trap.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/trap.s?rev... ============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/trap.s (original) +++ trunk/reactos/ntoskrnl/ke/i386/trap.s Mon Nov 5 20:27:25 2007 @@ -192,7 +192,8 @@ /* Flush it */ push edx push eax - //call [_KeGdiFlushUserBatch] +// <-- Remove these once it is working! +// call [_KeGdiFlushUserBatch] pop eax pop edx
Modified: trunk/reactos/ntoskrnl/ke/i386/usercall.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/usercall.c... ============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/usercall.c (original) +++ trunk/reactos/ntoskrnl/ke/i386/usercall.c Mon Nov 5 20:27:25 2007 @@ -11,6 +11,8 @@ #include <ntoskrnl.h> #define NDEBUG #include <internal/debug.h> + +extern PGDI_BATCHFLUSH_ROUTINE KeGdiFlushUserBatch();
/* PRIVATE FUNCTIONS *********************************************************/
@@ -217,6 +219,8 @@ { /* Shouldn't happen in ROS yet */ ASSERT(FALSE); +// *UserEsp -= 256; +// KeGdiFlushUserBatch(); }
/* Restore stack and return */
Modified: trunk/reactos/ntoskrnl/ps/win32.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/win32.c?rev=301... ============================================================================== --- trunk/reactos/ntoskrnl/ps/win32.c (original) +++ trunk/reactos/ntoskrnl/ps/win32.c Mon Nov 5 20:27:25 2007 @@ -17,6 +17,7 @@
PKWIN32_PROCESS_CALLOUT PspW32ProcessCallout = NULL; PKWIN32_THREAD_CALLOUT PspW32ThreadCallout = NULL; +PGDI_BATCHFLUSH_ROUTINE KeGdiFlushUserBatch = NULL; extern PKWIN32_PARSEMETHOD_CALLOUT ExpWindowStationObjectParse; extern PKWIN32_DELETEMETHOD_CALLOUT ExpWindowStationObjectDelete; extern PKWIN32_DELETEMETHOD_CALLOUT ExpDesktopObjectDelete; @@ -114,6 +115,7 @@ ExpWindowStationObjectDelete = CalloutData->WindowStationDeleteProcedure; ExpDesktopObjectDelete = CalloutData->DesktopDeleteProcedure; PopEventCallout = CalloutData->PowerEventCallout; + KeGdiFlushUserBatch = CalloutData->BatchFlushRoutine; }
NTSTATUS