HalpReadExtendedMcaRegistersIntel
NTSTATUS __stdcall HalpReadExtendedMcaRegistersIntel(
WHEA_ERROR_SOURCE_DESCRIPTOR *ErrorSource,
_WHEA_ERROR_PACKET_V2 *ErrorPacket,
WHEA_ERROR_RECORD *ErrorRecord,
PVOID Context){
unsigned __int8 v5;
__int64 v7;
unsigned int v8;
unsigned int v9;
__int64 *v10;
v5 = BYTE2(ErrorSource);
LODWORD(v7) = ((__int64(__fastcall *)(WHEA_ERROR_RECORD *, __int64, _QWORD))HalpWheaReadMsr)(
ErrorRecord,
378i64,
0i64);
if( (v7 & 4) != 0 )
{
LODWORD(v7) = 24;
v8 = v5;
if( v8 > 0x18 )
v8 = 24;
*((_DWORD *)Context + 16) = v8;
if( v8 > 8 )
{
v7 = ((__int64(__fastcall *)(WHEA_ERROR_RECORD *, __int64, _QWORD))HalpWheaReadMsr)(ErrorRecord, 392i64, 0i64);
v9 = 0;
if( v7 )
{
v10 = (__int64 *)((char *)Context + 72);
do
{
v7 = ((__int64(__fastcall *)(WHEA_ERROR_RECORD *, _QWORD, _QWORD))HalpWheaReadMsr)(
ErrorRecord,
v9 + 384,
0i64);
++v9;
*v10++ = v7;
}
while( v9 < v8 );
}
}
}
return v7;
}Referenced by:
HalpMcaPopulateErrorData