MiIncreaseUsedPtesCount

VOID __stdcall MiIncreaseUsedPtesCount(PVOID OpaquePointer, UINT64 INCR){
  unsigned int v3; 
  UINT64 SpinCount; 
  LODWORD(SpinCount) = 0;
  v3 = INCR;
  while( _interlockedbittestandset64((volatile signed __int32 *)OpaquePointer + 6, 0x3Fui64) )
  {
    do
      KeYieldProcessorEx(&SpinCount);
    while( *((__int64 *)OpaquePointer + 3) < 0 );
  }
  *((_QWORD *)OpaquePointer + 2) ^= ((unsigned int)*((_QWORD *)OpaquePointer + 2) ^ ((unsigned int)*((_QWORD *)OpaquePointer + 2)
                                                                                   + ((unsigned __int16)v3 << 16))) & 0x3FF0000;
  _InterlockedAnd64((volatile signed __int64 *)OpaquePointer + 3, 0x7FFFFFFFFFFFFFFFui64);
  if( v3 <= 1 )
    MmIsAddressValidEx(*((_QWORD *)OpaquePointer + 1) | 0x8000000000000000ui64);
}

Referenced by:

MiBuildForkPte
MiCommitExistingVad
MiCommitHotPatchTable
MiCompleteRestrictedImageFault
MiDecommitPages
MiInPagePageTable
MiInsertLargeUserMapping
MiInsertPhysicalPteMapping
MiProtectPrivateMemory
MiReservePageFileSpaceForPage
MiSplitPrivatePage
MiUpdateAwePageTable
MiUpdateForkMaps
MiUpdatePageTableUseCount
MiUpdatePrivateDemandZeroView