CcRemoveExternalCache
INT64 __fastcall CcRemoveExternalCache(INT64 a1){
UINT64 v1;
_QWORD *v3;
INT64 v4;
unsigned __int8 v5;
unsigned __int64 v6;
__int64 v7;
INT64 result;
KeAcquireSpinLockRaiseToDpc(&CcExternalCacheListLock, v1);
v3 = *(_QWORD **)(a1 + 40);
v4 = a1 + 32;
v6 = v5;
v7 = *(_QWORD *)v4;
if( *(_QWORD *)(*(_QWORD *)v4 + 8i64) != v4 || *v3 != v4 )
__fastfail(3u);
*v3 = v7;
*(_QWORD *)(v7 + 8) = v3;
if( CcNumberOfExternalCaches - 1 >= (unsigned int)CcNumberOfExternalCaches )
KeBugCheckEx(0x34u, 0x138Cui64, 0xFFFFFFFFC0000420ui64, 0i64, 0i64);
--CcNumberOfExternalCaches;
KxReleaseSpinLock(&CcExternalCacheListLock);
result = (unsigned int)KiIrqlFlags;
__writecr8(v6);
return result;
}Referenced by:
CcUnregisterExternalCache