CcGetVirtualAddressIfMapped
INT64 __fastcall CcGetVirtualAddressIfMapped(INT64 a1, INT64 a2, INT64 *a3, _DWORD *a4){
unsigned int v6;
INT64 v8;
INT64 v9;
v6 = a2 & 0x3FFFF;
*a4 = 0x40000 - (a2 & 0x3FFFF);
v8 = 0i64;
ExAcquirePushLockSharedEx(a1 + 104, 0i64);
if( *(__int64 *)(a1 + 32) > 0x2000000 )
CcGetVacbLargeOffset((_SHARED_CACHE_MAP *)a1, a2);
else
v9 = *(_QWORD *)(*(_QWORD *)(a1 + 88) + 8 * ((unsigned __int64)(unsigned int)a2 >> 18));
*a3 = v9;
if( v9 )
{
CcIncrementVacbActiveCount(v9);
v8 = *(_QWORD *)*a3 + v6;
}
ExReleasePushLockEx(a1 + 104, 0i64);
return v8;
}Referenced by:
CcFlushCachePriv