IoCreateNotificationEvent

_KEVENT *__stdcall IoCreateNotificationEvent(
        _UNICODE_STRING *EventName,
        VOID **EventHandle,
        INT64 a3,
        INT64 a4,
        INT64 a5,
        INT64 a6,
        INT64 a7,
        INT64 a8){
  NTSTATUS v9; 
  _KEVENT *v10; 
  _KEVENT *result; 
  _OBJECT_ATTRIBUTES ObjectAttributes; 
  void *EventHandlea; 
  PVOID Object; 

  *(&ObjectAttributes.Length + 1) = 0;
  memset(&ObjectAttributes.Attributes + 1, 0, 20);
  EventHandlea = 0i64;
  ObjectAttributes.RootDirectory = 0i64;
  ObjectAttributes.ObjectName = EventName;
  ObjectAttributes.Length = 48;
  ObjectAttributes.Attributes = 640;
  if( ZwCreateEvent((UINT64)&EventHandlea, 0x1F0003ui64, (INT64)&ObjectAttributes, 0i64, 1u) < 0 )
    return 0i64;
  Object = 0i64;
  v9 = ObReferenceObjectByHandle(EventHandlea, 0i64, (_OBJECT_TYPE *)ExEventObjectType, 0, &Object, 0i64);
  v10 = (_KEVENT *)Object;
  if( v9 < 0 )
    v10 = 0i64;
  else
    HalPutDmaAdapter((PADAPTER_OBJECT)Object);
  result = v10;
  *EventHandle = EventHandlea;
  return result;
}

Referenced by:

IoCaptureLiveDump