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