SetVacb
UINT8 __stdcall SetVacb(
_SHARED_CACHE_MAP *SharedCacheMap,
_LARGE_INTEGER Offset,
_VACB *Vacb,
VACB_LEVEL_ALLOCATION_LIST *VacbLevels){
CHAR v5;
v5 = 1;
if( SharedCacheMap->SectionSize.QuadPart > 0x2000000 )
{
v5 = CcSetVacbLargeOffset((INT64)SharedCacheMap, Offset.QuadPart, (UINT64)Vacb, VacbLevels);
}
else if( (unsigned __int64)Vacb < 0xFFFFFFFFFFFFFFFEui64 )
{
SharedCacheMap->Vacbs[(unsigned __int64)Offset.LowPart >> 18] = Vacb;
}
if( (unsigned __int64)Vacb <= 0xFFFFFFFFFFFFFFFDui64 )
{
if( Vacb )
_InterlockedIncrement((volatile signed __int32 *)&SharedCacheMap->NumMappedVacb);
else
_InterlockedDecrement((volatile signed __int32 *)&SharedCacheMap->NumMappedVacb);
}
return v5;
}Referenced by:
CcDereferenceFileOffset
CcGetVacbMiss
CcReferenceFileOffset
CcUnmapInactiveViewsInternal