WheapGetErrorSource
_WHEAP_ERROR_SOURCE *__stdcall WheapGetErrorSource(
_WHEAP_ERROR_SOURCE_TABLE *ErrorSourceTable,
UINT64 ErrorSourceId,
INT64 a3,
UINT64 a4){
int v4;
int v5;
_WHEAP_ERROR_SOURCE *result;
if( *(_DWORD *)ErrorSourceTable != 1279410516 )
return 0i64;
v4 = *((_DWORD *)ErrorSourceTable + 1);
v5 = 0;
result = (_WHEAP_ERROR_SOURCE *)*((_QWORD *)ErrorSourceTable + 2);
if( v4 <= 0 )
return 0i64;
while( result->Descriptor.ErrorSourceId != (_DWORD)ErrorSourceId
|| result->Deferred
|| result->Descriptor.State != WheaErrSrcStateStarted )
{
result = (_WHEAP_ERROR_SOURCE *)result->ListEntry.Flink;
if( ++v5 >= v4 )
return 0i64;
}
return result;
}Referenced by:
HalHandleNMI
HalpMcaReportError
WheaAddHwErrorReportSectionDeviceDriver
WheaGetErrorSource
WheaHwErrorReportSubmitDeviceDriver
WheaRemoveErrorSource
WheaReportHwError
WheapAttemptArchitecturalErrorRecovery
WheapFreeDriverPacketBuffer
WheapGetPreallocatedPacketBuffer
WheapInitErrorReportDeviceDriver
WheapReportBootError
WheapWmiExecuteErrorSourceMethod