MxComputePfnPagesNeeded

UINT64 __stdcall MxComputePfnPagesNeeded(UINT64 FirstPage, UINT64 LastPage){
  UINT64 v2; 
  __int64 v3; 
  UINT64 v4; 
  _MMPTE *PdeBase; 
  unsigned __int64 v6; 
  unsigned __int64 v7; 
  _MMPTE *PteBase; 
  __int64 v9; 

  v2 = 0i64;
  v3 = 512i64;
  v4 = ((48 * FirstPage) >> 18) & 0x3FFFFFF8;
  PdeBase = MmGetPdeBase();
  v6 = (unsigned __int64)PdeBase + v4;
  v7 = (unsigned __int64)PdeBase + (((48 * LastPage) >> 18) & 0x3FFFFFF8);
  PteBase = MmGetPteBase();
  v9 = 3i64;
  do
  {
    v2 += v3 * (((__int64)(v7 - v6) >> 3) + 1);
    v6 = (unsigned __int64)PteBase + ((v6 >> 9) & 0x7FFFFFFFF8i64);
    v7 = (unsigned __int64)PteBase + ((v7 >> 9) & 0x7FFFFFFFF8i64);
    v3 = 1i64;
    --v9;
  }
  while( v9 );
  return v2;
}

Referenced by:

MxComputeFreeNodeDescriptorRequirements