ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

PEVENT APIENTRY EngMapEvent ( IN HDEV  hDev,
IN HANDLE  hUserObject,
IN PVOID  Reserved1,
IN PVOID  Reserved2,
IN PVOID  Reserved3 
)

Definition at line 104 of file engevent.c.

{
    PENG_EVENT EngEvent;
    NTSTATUS Status;

    /* Allocate memory for the event structure */
    EngEvent = ExAllocatePoolWithTag(NonPagedPool,
                                     sizeof(ENG_EVENT),
                                     GDITAG_ENG_EVENT);
    if (!EngEvent) return NULL;

    /* Zero it out */
    EngEvent->fFlags = 0;
    EngEvent->pKEvent = NULL;

    /* Create a handle, and have Ob fill out the pKEvent field */
    Status = ObReferenceObjectByHandle(EngEvent,
                                       EVENT_ALL_ACCESS,
                                       ExEventObjectType,
                                       UserMode,
                                       &EngEvent->pKEvent,
                                       NULL);
    if (NT_SUCCESS(Status))
    {
        /* Pulse the event and set that it's mapped by user */
        KePulseEvent(EngEvent->pKEvent, EVENT_INCREMENT, FALSE);
        EngEvent->fFlags |= ENG_EVENT_USERMAPPED;
    }
    else
    {
        /* Free the allocation */
        ExFreePool(EngEvent);
        EngEvent = NULL;
    }

    /* Support legacy interface */
    if (Reserved1) *(PVOID*)Reserved1 = EngEvent;
    return EngEvent;
}

Generated on Sun May 27 2012 06:10:10 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.