MmTryIdentifyPage
VOID __stdcall MmTryIdentifyPage(UINT64 PageFrameIndex, _MMPFN_IDENTITY *Identity){
_MMPFN *v2;
unsigned __int8 CurrentIrql;
int v4;
INT64 v5;
int v6;
_MMPFN_IDENTITY *v7;
*(_OWORD *)Identity = 0i64;
*((_QWORD *)Identity + 2) = 0i64;
v2 = &MmGetPfnDb()[PageFrameIndex];
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
if( !_interlockedbittestandset64((volatile signed __int32 *)&v2->u2, 0x3Fui64) )
{
if( (*((_BYTE *)&v2->u3 + 3) & 0x40) == 0 )
{
LOBYTE(v4) = MiIsPageOnBadList((INT64)v2);
if( !v4 )
{
LOBYTE(v6) = MiIsPageSecured(v5);
if( !v6 )
MiIdentifyPfn(v2, v7);
}
}
_InterlockedAnd64(&v2->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
}
__writecr8(CurrentIrql);
}Referenced by:
IopLiveDumpMirrorPhysicalMemoryCallback