HalpIommuLogEarlyFault

UINT8 __fastcall HalpIommuLogEarlyFault(INT64 a1, INT64 a2, EVENT_DESCRIPTOR *a3){
  UINT64 v3; 
  UINT8 result; 
  UINT64 v5; 
  EVENT_DESCRIPTOR *v6; 
  UINT64 UserDataCount; 
  UINT64 UserDataCounta; 
  EVENT_DATA_DESCRIPTOR UserData; 
  __int64 v10; 
  int v11; 
  int v12; 
  __int64 v13; 
  int v14; 
  int v15; 
  __int64 v16; 
  int v17; 
  int v18; 
  v3 = HalpDiagnosticEventHandle;
  result = EtwEventEnabled(HalpDiagnosticEventHandle, (EVENT_DESCRIPTOR *)&HAL_ETW_EVENT_IOMMU_FAULT_INIT, a3);
  if( result )
  {
    LODWORD(UserDataCount) = 0;
    EtwWriteEx(v3, (EVENT_DESCRIPTOR *)&HAL_ETW_EVENT_IOMMU_FAULT_INIT, 0i64, 0i64, 0i64, 0i64, UserDataCount, 0i64);
    v5 = HalpDiagnosticEventHandle;
    result = EtwEventEnabled(HalpDiagnosticEventHandle, (EVENT_DESCRIPTOR *)&HAL_ETW_EVENT_IOMMU_FAULT, v6);
    if( result )
    {
      if( HalpDiagnosticEventsRegistered )
      {
        if( HalpIommuGlobalEventBuffer )
        {
          UserData.Reserved = 0;
          v12 = 0;
          v15 = 0;
          v18 = 0;
          v10 = HalpIommuGlobalEventBuffer + 8;
          v13 = HalpIommuGlobalEventBuffer + 16;
          v16 = HalpIommuGlobalEventBuffer + 24;
          UserData.Ptr = HalpIommuGlobalEventBuffer;
          LODWORD(UserDataCounta) = 4;
          UserData.Size = 8;
          v11 = 8;
          v14 = 4;
          v17 = 8;
          return EtwWriteEx(
                   v5,
                   (EVENT_DESCRIPTOR *)&HAL_ETW_EVENT_IOMMU_FAULT,
                   0i64,
                   0i64,
                   0i64,
                   0i64,
                   UserDataCounta,
                   &UserData);
        }
      }
    }
  }
  return result;
}

Referenced by:

HalpIommuInitSystem