NtClearEvent

NTSTATUS __stdcall NtClearEvent(PVOID EventHandle){
  KPROCESSOR_MODE v2; 
  NTSTATUS v3; 
  UINT64 v4; 
  UINT8 v5; 
  UINT8 v6; 
  struct _DMA_ADAPTER *v7; 
  NTSTATUS v8; 
  NTSTATUS v10; 
  IRP *Object; 
  PVOID VirtualAddress; 
  PVOID v13; 
  VirtualAddress = 0i64;
  v2 = *((_BYTE *)KeGetCurrentThread() + 562);
  v3 = ObReferenceObjectByHandle(EventHandle, 2u, (POBJECT_TYPE)ExEventObjectType, v2, &VirtualAddress, 0i64);
  v7 = (struct _DMA_ADAPTER *)VirtualAddress;
  v8 = v3;
  if( v3 < 0 )
  {
    if( v3 == -1073741788 )
    {
      if( ExCrossVmEventObjectType )
      {
        v13 = 0i64;
        v10 = ObReferenceObjectByHandle(EventHandle, 2u, ExCrossVmEventObjectType, v2, &v13, 0i64);
        v7 = (struct _DMA_ADAPTER *)v13;
        v8 = v10;
        if( v10 >= 0 )
          v8 = ExpResetCrossVmEvent((INT64)v13, 0i64);
      }
    }
  }
  else
  {
    KeResetEvent(VirtualAddress, v4, v5, v6, Object);
  }
  if( v7 )
    HalPutDmaAdapter(v7);
  return v8;
}

Referenced by:

No references.