KeFlushSingleCurrentTb

VOID __stdcall KeFlushSingleCurrentTb(VOID *Virtual){
  _KTBFLUSH_TYPE v1; 
  _KTBFLUSH_TYPE v2; 
  BOOL IsSecureProcessFlush; 
  unsigned __int64 v5; 
  UINT64 v6; 
  char v7; 
  unsigned __int8 CurrentIrql; 
  VOID **VaList; 
  char Global[8]; 
  UINT64 v11; 
  UINT64 AddressSpace[2]; 
  _QWORD v13[2]; 
  _KAFFINITY_EX ProcessorSet; 

  v2 = v1;
  AddressSpace[0] = 0i64;
  memset(&ProcessorSet, 0i64, sizeof(ProcessorSet));
  Global[0] = 0;
  IsSecureProcessFlush = KiIsSecureProcessFlush((UINT64)Virtual, (unsigned int)v2);
  if( !IsSecureProcessFlush
    || (KiPrepareFlushParameters(v2, AddressSpace, (UINT8 *)Global),
        KiPrepareFlushCurrentAffinity(&ProcessorSet),
        LOBYTE(v6) = IsSecureProcessFlush,
        AddressSpace[1] = (unsigned __int64)Virtual & 0xFFFFFFFFFFFFF000ui64,
        LOBYTE(VaList) = 0,
        HvlFlushRangeListTb(AddressSpace[0], &ProcessorSet, Global[0], v6, VaList),
        !v7) )
  {
    if( ((1 << v2) & 0xA) != 0 && KiFlushPcid && !KeGetCurrentThread()->ApcState.Process->Pcb.AddressPolicy )
    {
      if( (KiFlushPcid & 2) != 0 )
      {
        v13[0] = 1i64;
        v13[1] = Virtual;
        _invpcid(0, v13);
      }
      else
      {
        KiSetUserTbFlushPending();
      }
    }
    __invlpg(Virtual);
  }
  v5 = (unsigned __int64)Virtual & 0xFFFFFFFFFFFFF000ui64;
  if( VmTbFlushEnabled )
  {
    v11 = v5;
    VmFlushTb((_MEMORY_CACHING_TYPE_ORIG)1, &v11, (unsigned int)v2);
  }
  if( *(&stru_140CF2E80 + 1830) )
  {
    v11 = v5;
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(0xFui64);
    ExFlushTb(1ui64, (_KTB_FLUSH_VA *)&v11, v2);
    __writecr8(CurrentIrql);
  }
}

Referenced by:

MiDbgReleaseAddress
MiDbgUnTranslatePhysicalAddress
MiDbgWriteCheck
MiStackTheftIsr
MmInvalidateDumpAddresses
MmReadProcessPageTables