MiSmallVaStillMapsFrame
NTSTATUS __stdcall MiSmallVaStillMapsFrame(VOID *Va, UINT64 PageFrameIndex){
UINT64 v3;
UINT64 v4;
NTSTATUS result;
UINT64 v6[2];
__int128 v7;
INT64 v8;
UINT64 v9;
LODWORD(v8) = 0;
*(_OWORD *)v6 = 0i64;
v7 = 0i64;
MiFillPteHierarchy((UINT64)Va, v6);
result = 0;
if( MiPageTableStillExists((INT64)v6, &v8) )
{
if( !(_DWORD)v8 )
{
if( PageFrameIndex == -1i64 )
return 1;
LODWORD(v3) = MI_READ_PTE_LOCK_FREE(v6[0]);
v9 = v3;
v4 = v3;
if( (v3 & 1) != 0 )
{
MiPteInShadowRange((UINT64)&v9);
if( ((v4 >> 12) & 0xFFFFFFFFFi64) == PageFrameIndex
|| (_MMPTE *)v6[0] == MmGetPxeSelfRef()
&& (MmGetPfnDb()[PageFrameIndex].u4._bf_0 & 0xFFFFFFFFFi64) == PageFrameIndex
&& PageFrameIndex == KeGetCurrentThread()->ApcState.Process->Pcb.UserDirectoryTableBase >> 12 )
{
return 1;
}
}
}
}
return result;
}Referenced by:
MiLockStealSystemVm