HvpViewMapMakeViewRangeInvalid

__int64 __fastcall HvpViewMapMakeViewRangeInvalid(UINT64 a1, _QWORD *a2, __int64 a3, __int64 a4){
  UINT64 v7; 
  __int64 i; 
  __int64 j; 
  __int64 v10; 
  __int64 result; 
  UINT64 v12; 
  UINT64 NewAccessProtection; 
  INT64 a6; 
  LODWORD(a6) = 0;
  v7 = a1;
  for( i = a3; i < a4; i += 4096i64 )
  {
    if( !a2[8] )
      break;
    a1 = a2[3];
    v12 = (i - a1) >> 12;
    if( (*((_BYTE *)a2 + v12 + 72) & 0x10) != 0 )
    {
      CmSiUnlockViewOfSection(a1, *(VOID ***)(v7 + 24), (VOID *)(i + a2[7] - a1), 0x1000ui64);
      *((_BYTE *)a2 + v12 + 72) &= ~0x10u;
      --a2[8];
    }
  }
  LODWORD(NewAccessProtection) = -2147483647;
  CmSiProtectViewOfSection(
    a1,
    *(VOID ***)(v7 + 24),
    (VOID *)(a3 + a2[7] - a2[3]),
    a4 - a3,
    NewAccessProtection,
    (INT64)&a6);
  for( j = a3; j < a4; *((_BYTE *)a2 + ((unsigned __int64)(v10 - a2[3]) >> 12) + 72) = 0 )
  {
    v10 = j;
    j += 4096i64;
  }
  result = a2[6];
  if( a2[5] == a3 )
  {
    if( result == a4 )
    {
      a2[5] = 0i64;
      a2[6] = 0i64;
    }
    else
    {
      a2[5] = a4;
    }
  }
  else if( result == a4 )
  {
    a2[6] = a3;
  }
  return result;
}

Referenced by:

HvpViewMapPromoteRangeToMapping
HvpViewMapShrinkStorage