[ros-diffs] [jimtabor] 34423: Update Eng Events and fix InputIdleEvent.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Fri Jul 11 12:57:50 CEST 2008


Author: jimtabor
Date: Fri Jul 11 05:57:49 2008
New Revision: 34423

URL: http://svn.reactos.org/svn/reactos?rev=34423&view=rev
Log:
Update Eng Events and fix InputIdleEvent.

Modified:
    trunk/reactos/subsystems/win32/win32k/eng/event.c
    trunk/reactos/subsystems/win32/win32k/include/tags.h
    trunk/reactos/subsystems/win32/win32k/include/win32.h

Modified: trunk/reactos/subsystems/win32/win32k/eng/event.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/eng/event.c?rev=34423&r1=34422&r2=34423&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/eng/event.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/eng/event.c [iso-8859-1] Fri Jul 11 05:57:49 2008
@@ -17,7 +17,7 @@
 STDCALL
 EngCreateEvent ( OUT PEVENT *Event )
 {
-  (*Event) = ExAllocatePool(NonPagedPool, sizeof(KEVENT));
+  (*Event) = ExAllocatePoolWithTag(NonPagedPool, sizeof(KEVENT), TAG_DFSM);
   if ((*Event) == NULL)
     {
       return FALSE;
@@ -45,6 +45,9 @@
   NTSTATUS Status;
   PKEVENT Event;
 
+  Event = ExAllocatePoolWithTag(NonPagedPool, sizeof(KEVENT), TAG_DFSM);
+  if (!Event) return NULL;
+
   Status = ObReferenceObjectByHandle(UserObject,
 				     EVENT_MODIFY_STATE,
 				     ExEventObjectType,
@@ -52,9 +55,15 @@
 				     (PVOID*)&Event,
 				     NULL);
   if (!NT_SUCCESS(Status))
-    {
-      return NULL;
-    }
+  {
+     ExFreePool(Event);
+     return NULL;
+  }
+  else
+     KePulseEvent(Event, EVENT_INCREMENT, FALSE);
+
+  if (Reserved1) Reserved1 = Event;
+
   return (PEVENT)Event;
 }
 
@@ -70,6 +79,7 @@
 EngUnmapEvent ( IN PEVENT Event )
 {
   ObDereferenceObject((PVOID)Event);
+  ExFreePool(Event);
   return TRUE;
 }
 
@@ -79,6 +89,8 @@
 			IN PLARGE_INTEGER  TimeOut)
 {
   NTSTATUS Status;
+
+  if (!Event) return FALSE;
 
   Status = KeWaitForSingleObject(Event,
 				 Executive,

Modified: trunk/reactos/subsystems/win32/win32k/include/tags.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/include/tags.h?rev=34423&r1=34422&r2=34423&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/include/tags.h [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/include/tags.h [iso-8859-1] Fri Jul 11 05:57:49 2008
@@ -75,6 +75,7 @@
 /* Eng objects */
 #define TAG_CLIPOBJ     TAG('C', 'L', 'P', 'O') /* clip object */
 #define TAG_DRIVEROBJ   TAG('D', 'R', 'V', 'O') /* driver object */
+#define TAG_DFSM        TAG('D', 'f', 's', 'm') /* Eng event allocation */
 #define TAG_FONT        TAG('F', 'N', 'T', 'E') /* font entry */
 #define TAG_FONTOBJ     TAG('G', 'f', 'n', 't') /* font object */
 #define TAG_WNDOBJ      TAG('W', 'N', 'D', 'O') /* window object */

Modified: trunk/reactos/subsystems/win32/win32k/include/win32.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/include/win32.h?rev=34423&r1=34422&r2=34423&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/include/win32.h [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/include/win32.h [iso-8859-1] Fri Jul 11 05:57:49 2008
@@ -43,7 +43,7 @@
   ULONG Flags;
   LONG GDIObjects;
   LONG UserObjects;
-  KEVENT InputIdleEvent;
+  PKEVENT InputIdleEvent;
 
   W32HEAP_USER_MAPPING HeapMappings;
   PW32PROCESSINFO ProcessInfo;



More information about the Ros-diffs mailing list