MiReturnBadPagesToBadList
VOID __stdcall MiReturnBadPagesToBadList(INT64 a1, INT64 a2){
INT64 v2;
_MMPFN *v3;
unsigned __int64 v4;
UINT8 v5;
if( a2 )
{
v2 = a2;
v3 = &MmGetPfnDb()[a1];
do
{
v4 = MiLockPageInline(v3);
if( !v3->PteLong )
v3->PteLong = -4i64;
v3->u3.ReferenceCount = 0;
v3->u4._bf_0 &= 0xFFFFFFF000000000ui64;
MiInsertPageInList(v3, 0x20ui64, v5);
_InterlockedAnd64(&v3->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
__writecr8(v4);
++v3;
--v2;
}
while( v2 );
}
}Referenced by:
MiRemoveBadPages
MmRemovePhysicalMemory