mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-01 12:23:29 +00:00
Update Eng Events and fix InputIdleEvent.
svn path=/trunk/; revision=34423
This commit is contained in:
@@ -17,7 +17,7 @@ BOOL
|
||||
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 @@ EngMapEvent(IN HDEV Dev,
|
||||
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 @@ EngMapEvent(IN HDEV Dev,
|
||||
(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 @@ STDCALL
|
||||
EngUnmapEvent ( IN PEVENT Event )
|
||||
{
|
||||
ObDereferenceObject((PVOID)Event);
|
||||
ExFreePool(Event);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -80,6 +90,8 @@ EngWaitForSingleObject (IN PEVENT Event,
|
||||
{
|
||||
NTSTATUS Status;
|
||||
|
||||
if (!Event) return FALSE;
|
||||
|
||||
Status = KeWaitForSingleObject(Event,
|
||||
Executive,
|
||||
KernelMode,
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -43,7 +43,7 @@ typedef struct _W32PROCESS
|
||||
ULONG Flags;
|
||||
LONG GDIObjects;
|
||||
LONG UserObjects;
|
||||
KEVENT InputIdleEvent;
|
||||
PKEVENT InputIdleEvent;
|
||||
|
||||
W32HEAP_USER_MAPPING HeapMappings;
|
||||
PW32PROCESSINFO ProcessInfo;
|
||||
|
||||
Reference in New Issue
Block a user