HvlpSlowFlushAddressSpaceTbEx

VOID __stdcall HvlpSlowFlushAddressSpaceTbEx(UINT64 a1, PFN_CLIPSP_CLEAR *a2, CHAR a3){
  _HV_GENERIC_SET *v6; 
  unsigned int v7; 
  _HV_GENERIC_SET *BankContents; 
  unsigned __int64 v9; 
  int v10; 
  PHYSICAL_ADDRESS PageInfo[2]; 
  __int128 v12; 
  char StackBuffer[192]; 

  *(_OWORD *)&PageInfo[0].anonymous_0.LowPart = 0i64;
  v12 = 0i64;
  v6 = (_HV_GENERIC_SET *)HvlpAcquireHypercallPage(PageInfo, 1ui64, StackBuffer, 0x60ui64);
  v6->Format = a1;
  v7 = a3 == 0 ? 4 : 0;
  BankContents = (_HV_GENERIC_SET *)v6->BankContents;
  v9 = v7 | 2;
  if( a1 )
    v9 = v7;
  v6->ValidBanksMask = v9;
  HvlpAffinityToHvProcessorSet(
    (_KAFFINITY_EX *)a2,
    (_HV_GENERIC_SET *)v6->BankContents,
    (PageInfo[0].anonymous_0.LowPart & 2) != 0 ? 64 : 4064);
  if( v10 == -1 )
    HvlpAffinityToHvProcessorSet(0i64, BankContents, 0i64);
  HvcallInitiateHypercall();
  HvlpReleaseHypercallPage((_HVLP_HYPERCALL_PAGE_INFO *)PageInfo);
}

Referenced by:

HvlFlushAddressSpaceTb