CcReferenceFileOffset

VOID __stdcall CcReferenceFileOffset(_SHARED_CACHE_MAP *SharedCacheMap, _LARGE_INTEGER FileOffset){
  unsigned int Flags; 
  __int64 v5; 
  _BYTE *v6; 
  VACB_LEVEL_ALLOCATION_LIST VacbLevels; 
  if( SharedCacheMap->SectionSize.QuadPart > 0x2000000 )
  {
    *(&VacbLevels.VacbLevelsAllocated + 1) = 0;
    Flags = SharedCacheMap->Flags;
    VacbLevels.VacbLevelWithBcbListHeads = 0i64;
    VacbLevels.VacbLevelList.Blink = (_LIST_ENTRY *)&VacbLevels;
    v5 = Flags >> 9;
    VacbLevels.VacbLevelList.Flink = (_LIST_ENTRY *)&VacbLevels;
    LOBYTE(v5) = v5 & 1;
    VacbLevels.VacbLevelsAllocated = 0;
    if( !(unsigned __int8)CcAllocateVacbLevels((unsigned int)(CcMaxVacbLevelsSeen - 1), v5, &VacbLevels) )
      RtlRaiseStatus(-1073741670);
    CcAcquireBcbLockAndVacbLock(1i64, (FAST_MUTEX *)SharedCacheMap);
    SetVacb(SharedCacheMap, FileOffset, (_VACB *)0xFFFFFFFFFFFFFFFFi64, &VacbLevels);
    CcReleaseBcbLockAndVacbLock(1i64, (struct FAST_MUTEX *)SharedCacheMap);
    CcFreeUnusedVacbLevels(&VacbLevels, v6);
  }
}

Referenced by:

CcPinFileData