ExFlushTb

VOID __stdcall ExFlushTb(UINT64 Number, _KTB_FLUSH_VA *Virtual, _KTBFLUSH_TYPE FlushType){
  _ETHREAD *CurrentThread; 
  unsigned int v4; 
  void *SvmData; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v4 = Number;
  if( FlushType == FlushUser )
  {
    SvmData = CurrentThread->Tcb.ApcState.Process->SvmData;
    if( SvmData )
      (*((void(__fastcall **)(void *, _QWORD, _KTB_FLUSH_VA *))HalIommuDispatch + 9))(SvmData, v4, Virtual);
  }
  else
  {
    (*((void(__fastcall **)(_QWORD, _QWORD, _KTB_FLUSH_VA *))HalIommuDispatch + 10))(
      *(&WheapDeferredInternalLogsEventLock + 298),
      (unsigned int)Number,
      Virtual);
  }
}

Referenced by:

KeFlushEntireTb
KeFlushMultipleRangeCurrentTb
KeFlushMultipleRangeTb
KeFlushSingleCurrentTb
KeFlushTb