CcFetchDataForRead

UINT8 __stdcall CcFetchDataForRead(
        _FILE_OBJECT *FileObject,
        _LARGE_INTEGER *FileOffset,
        UINT64 TotalLength,
        UINT8 Wait,
        UINT64 *FaultedData,
        _VACB *Vacb,
        UINT64 PagePriority,
        PVOID DiskIoAttribution){
  unsigned __int64 v9; 
  UINT64 v11; 
  VOID *v12; 
  unsigned int v13; 
  UINT64 v14; 
  VOID *v15; 
  v9 = FileOffset->QuadPart & 0xFFFFFFFFFFFFF000ui64;
  v11 = (((unsigned int)TotalLength + FileOffset->QuadPart + 4095) & 0xFFFFFFFFFFFFF000ui64) - v9;
  v12 = (VOID *)(*(_QWORD *)Vacb + (FileOffset->LowPart & 0x3F000));
  v13 = 0x40000 - ((unsigned int)v12 & 0x3FFFF);
  if( v13 >= (unsigned int)v11 )
    v13 = ((TotalLength + FileOffset->LowPart + 4095) & 0xFFFFF000) - v9;
  v14 = v13;
  if( !(unsigned int)MmHardFaultBytesRequired(FileObject, (LARGE_INTEGER)v9, v13) )
    goto LABEL_4;
  if( Wait )
  {
    MmPrefetchForCacheManager(FileObject, (_LARGE_INTEGER)v9, v15, v11);
    *(_DWORD *)FaultedData = 1;
LABEL_4:
    MmCheckCachedPageStates(v12, v14, 0i64, 0i64);
    return 1;
  }
  return 0;
}

Referenced by:

CcMapAndCopyFromCache
CcMdlRead