KeInvalidateRangeAllCachesNoIpi

VOID __stdcall KeInvalidateRangeAllCachesNoIpi(VOID *BaseAddress, UINT64 Length){
  char *v2; 
  INT64 CFlushSize; 
  char *v4; 

  if( (unsigned int)Length >= KiLargestCacheSize )
  {
    KeInvalidateAllCaches();
  }
  else
  {
    v2 = (char *)BaseAddress + (unsigned int)Length;
    CFlushSize = KeGetCurrentPrcb()->CFlushSize;
    v4 = (char *)((unsigned __int64)BaseAddress & ~(CFlushSize - 1));
    if( ((unsigned __int64)KeFeatureBits & 0x800000000i64) != 0 )
    {
      KiFlushCacheLines(
        (unsigned __int64)BaseAddress & ~(CFlushSize - 1),
        (~(CFlushSize - 1) & (unsigned __int64)&v2[CFlushSize - 1]) - (_QWORD)v4,
        CFlushSize);
    }
    else
    {
      for( ; v4 < v2; v4 += CFlushSize )
        _mm_clflush(v4);
    }
  }
}

Referenced by:

HalpIommuAllocateAndZeroPageTable
HalpIommuInitializeDmarPageTable
HalpIommuMapLogical
HalpIommuMapLogicalRange
HalpIommuUnmapLogicalRange
IvtInitializeIdentityMappings
KeInvalidateRangeAllCaches
MiFlushCacheForAttributeChange