MiReturnBadPagesToBadList
VOID __fastcall MiReturnBadPagesToBadList(INT64 a1, INT64 a2){
INT64 v2;
char *v3;
unsigned __int64 v4;
if( a2 )
{
v2 = a2;
v3 = (char *)MmGetPfnDb() + 48 * a1;
do
{
v4 = (unsigned __int8)MiLockPageInline((INT64)v3);
if( !*((_QWORD *)v3 + 1) )
*((_QWORD *)v3 + 1) = -4i64;
*((_WORD *)v3 + 16) = 0;
*((_QWORD *)v3 + 5) &= 0xFFFFFFF000000000ui64;
MiInsertPageInList((_MMPFN *)v3, 0x20ui64);
_InterlockedAnd64((volatile signed __int64 *)v3 + 3, 0x7FFFFFFFFFFFFFFFui64);
__writecr8(v4);
v3 += 48;
--v2;
}
while( v2 );
}
}Referenced by:
MiRemoveBadPages
MmRemovePhysicalMemory