Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 57 of file evtpair.c.
{ PKEVENT_PAIR EventPair; HANDLE hEventPair; KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); NTSTATUS Status; PAGED_CODE(); DPRINT("NtCreateEventPair: 0x%p\n", EventPairHandle); /* Check if we were called from user-mode */ if (PreviousMode != KernelMode) { /* Enter SEH Block */ _SEH2_TRY { /* Check handle pointer */ ProbeForWriteHandle(EventPairHandle); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { /* Return the exception code */ _SEH2_YIELD(return _SEH2_GetExceptionCode()); } _SEH2_END; } /* Create the Object */ DPRINT("Creating EventPair\n"); Status = ObCreateObject(PreviousMode, ExEventPairObjectType, ObjectAttributes, PreviousMode, NULL, sizeof(KEVENT_PAIR), 0, 0, (PVOID*)&EventPair); /* Check for Success */ if (NT_SUCCESS(Status)) { /* Initalize the Event */ DPRINT("Initializing EventPair\n"); KeInitializeEventPair(EventPair); /* Insert it */ Status = ObInsertObject((PVOID)EventPair, NULL, DesiredAccess, 0, NULL, &hEventPair); /* Check for success */ if (NT_SUCCESS(Status)) { /* Enter SEH */ _SEH2_TRY { /* Return the handle */ *EventPairHandle = hEventPair; } _SEH2_EXCEPT(ExSystemExceptionFilter()) { /* Get the exception code */ Status = _SEH2_GetExceptionCode(); } _SEH2_END; } } /* Return Status */ return Status; }