MiExceptionForMappedVa
UINT64 __stdcall MiExceptionForMappedVa(PVOID VirtualAddress){
unsigned int v1;
_MMSESSION *v3;
__int64 v4;
INT64 i;
INT64 v6;
UINT8 v7;
_RTL_BALANCED_NODE *Root;
unsigned __int64 v9;
_MMSESSION *v10;
unsigned int Right;
v1 = 0;
v3 = &Session;
v4 = *((_QWORD *)KeGetCurrentThread() + 23);
for( i = (INT64)MiGetAnyMultiplexedVm(1i64); ; i = MiGetSessionVm() )
{
v6 = i;
v7 = MiLockWorkingSetShared(i);
Root = v3->ViewRoot.Root;
while( Root )
{
v9 = Root[3].ParentValue & 0xFFFFFFFFFFFFF000ui64;
if( VirtualAddress >= (char *)Root[1].Children[1] + v9 )
{
Root = Root->Children[1];
}
else
{
if( (unsigned __int64)VirtualAddress >= v9 )
{
Right = (unsigned int)Root[2].Right;
MiUnlockWorkingSetShared(v6, v7);
return(Right >> 1) & 1;
}
Root = Root->Children[0];
}
}
MiUnlockWorkingSetShared(v6, v7);
if( v3 != &Session )
break;
v10 = *(_MMSESSION **)(v4 + 1368);
if( !v10 || (*(_DWORD *)(v4 + 2172) & 0x1000) != 0 )
break;
v3 = v10 + 6;
}
return v1;
}Referenced by:
MiWaitForInPageComplete