MiValidateKernelHalLargePageRange
__int64 __fastcall MiValidateKernelHalLargePageRange(unsigned __int64 a1, unsigned __int64 a2, int a3){
_MMPTE *PdeBase;
char *v5;
unsigned __int64 v6;
UINT64 v7;
_MMPFN *v8;
_MMPFN *v9;
UINT64 v11;
if( (a3 & 0x20000000) != 0 )
{
PdeBase = MmGetPdeBase();
v5 = (char *)PdeBase + ((a2 >> 18) & 0x3FFFFFF8);
v6 = (unsigned __int64)PdeBase + ((a1 >> 18) & 0x3FFFFFF8);
if( v6 < (unsigned __int64)v5 )
{
MiPteInShadowRange((UINT64)&v11);
do
{
LODWORD(v7) = MI_READ_PTE_LOCK_FREE(v6);
v11 = v7;
v8 = &MmGetPfnDb()[(v7 >> 12) & 0xFFFFFFFFFi64];
v9 = v8 + 512;
while( v8 < v9 )
{
v8->OriginalPte.u.Long = v8->OriginalPte.u.Long & 0xFFFFFFFFFFFFFC1Fui64 | 0x60;
MiMarkPfnVerified(v8++, 0i64);
}
v6 += 8i64;
}
while( v6 < (unsigned __int64)v5 );
}
}
return 0i64;
}Referenced by:
No references.