WheapApplyPolicyChanges
VOID __stdcall WheapApplyPolicyChanges(){
unsigned int v0;
__int64 v1;
unsigned __int64 v2;
int *v3;
__int64 v4;
int v5;
int v6;
_BOOL8 v7;
UINT32 v8;
UINT32 v9;
bool v10;
v0 = 0;
v1 = 0i64;
v2 = 0i64;
do
{
if( WheaRegPolicyTableChanged[v1] )
{
if( v2 >= 39 )
_report_rangecheckfailure();
v3 = (&off_1409850D8)[v2];
WheaRegPolicyTableChanged[v1] = 0;
if( v0 > 6 )
{
switch( v0 )
{
case 7u:
v10 = *v3 == 0;
v9 = 7;
WheaRegistryKeysPresent |= 0x200u;
WheapPolicyRestoreCmciEnabled = !v10;
v8 = !v10;
break;
case 8u:
v8 = *v3;
v9 = 8;
WheaRegistryKeysPresent |= 0x400u;
WheapPolicyRestoreCmciMaxAttempts = v8;
break;
case 9u:
v8 = *v3;
v9 = 9;
WheaRegistryKeysPresent |= 0x800u;
WheapPolicyRestoreCmciErrorLimit = v8;
break;
case 0xAu:
v8 = *v3;
v9 = 10;
WheaRegistryKeysPresent |= 0x1000u;
WheapPolicyCmciThresholdCount = v8;
break;
default:
v8 = *v3;
if( v0 == 11 )
{
v9 = 11;
WheaRegistryKeysPresent |= 0x2000u;
WheapPolicyCmciThresholdTime = v8;
}
else
{
v9 = 12;
WheaRegistryKeysPresent |= 0x4000u;
WheapPolicyCmciThresholdPollCount = v8;
}
break;
}
HalWheaUpdateCmciPolicy(v9, v8);
}
else if( v0 == 6 )
{
v7 = *v3 != 0;
WheaRegistryKeysPresent |= 0x100u;
WheaRegPolicyIgnoreDummyWrite = v7;
}
else if( v0 )
{
switch( v0 )
{
case 1u:
*(&WheapErrorSourceTable + 58) = *v3 != 0;
WheaRegistryKeysPresent |= 2u;
break;
case 2u:
WheapPolicyMemPfaDisable = *v3 != 0;
WheaRegistryKeysPresent |= 4u;
break;
case 3u:
v6 = *v3;
WheaRegistryKeysPresent |= 8u;
WheapPolicyMemPfaPageCount = v6;
break;
case 4u:
v5 = *v3;
WheaRegistryKeysPresent |= 0x10u;
WheapPolicyMemPfaThreshold = v5;
break;
default:
v4 = 10000000i64 * (unsigned int)*v3;
WheaRegistryKeysPresent |= 0x20u;
WheapPolicyMemPfaTimeout = v4;
break;
}
}
else
{
WheapPolicyDisableOffline = *v3 != 0;
WheaRegistryKeysPresent |= 1u;
}
}
++v0;
++v1;
v2 += 3i64;
}
while( v0 < 0xD );
}Referenced by:
WheapPfaReset