WheapPersistPageForMemoryError
VOID __fastcall WheapPersistPageForMemoryError(INT64 a1){
__int64 v1;
_LARGE_INTEGER v2;
UINT64 Attributes;
_LARGE_INTEGER DataBlockObject;
if( (*(_BYTE *)(a1 + 104) & 0x20) != 0 )
{
LODWORD(v1) = WheapErrorContainsMemorySection(a1);
if( v1 )
{
if( (*(_BYTE *)v1 & 2) != 0 )
{
v2 = *(_LARGE_INTEGER *)(v1 + 16);
DataBlockObject = v2;
if( !MmGetPageBadStatus(&DataBlockObject) )
{
DataBlockObject.QuadPart = (unsigned __int64)v2.QuadPart >> 12;
LODWORD(Attributes) = 7;
HalSetEnvironmentVariableEx(
(WCHAR *)L"UncorrectedBadMemoryPage",
&WheapHardwareErrorGuid,
&DataBlockObject,
8ui64,
Attributes);
}
}
}
}
}Referenced by:
WheaReportHwError