WheapAttemptErrorRecovery
NTSTATUS __stdcall WheapAttemptErrorRecovery(_WHEA_ERROR_RECORD *Record){
int v2;
NTSTATUS v3;
_WHEA_ERROR_SEVERITY Severity;
v2 = WheapAttemptArchitecturalErrorRecovery(Record);
if( v2 >= 0 && Record->Header.Severity == WheaErrSevRecoverable )
Record->Header.Severity = WheaErrSevCorrected;
v3 = PshedAttemptErrorRecovery(Record);
Severity = Record->Header.Severity;
if( Severity == WheaErrSevRecoverable )
{
if( v3 >= 0 )
{
Record->Header.Severity = WheaErrSevCorrected;
LABEL_9:
Record->Header.Flags.AsULONG |= 1u;
goto LABEL_10;
}
Record->Header.Severity = WheaErrSevFatal;
Severity = WheaErrSevFatal;
}
if( Severity == WheaErrSevCorrected )
goto LABEL_9;
LABEL_10:
if( v2 < 0 && v3 >= 0 )
return v3;
return v2;
}Referenced by:
WheaReportHwError