IoDiskIoAttributionDereference
VOID __stdcall IoDiskIoAttributionDereference(VOID *OpaqueContext){
signed __int64 v2;
bool v3;
signed __int64 v4;
VOID *v5;
v2 = _InterlockedExchangeAdd64((volatile signed __int64 *)OpaqueContext + 4, 0xFFFFFFFFFFFFFFFFui64);
v3 = v2 <= 1;
v4 = v2 - 1;
if( v3 )
{
if( v4 )
__fastfail(0xEu);
v5 = (VOID *)*((_QWORD *)OpaqueContext + 22);
if( v5 )
IoDiskIoAttributionDereference(v5);
ExFreePoolWithTag(OpaqueContext, 0);
}
}Referenced by:
CcCompleteAsyncRead
CcCopyReadEx
CcMapAndCopyInToCache
CcPerformReadAhead
CcUninitializeCacheMap
IoDiskIoAttributionDereference
IoGetIoRateControl
IoNotifyQuotaState
IoRecordIoAttribution
IoSetDiskIoAttributionOnProcess
IopAcquireReferencesFromIoAttributionHandle
MiCheckAndUpdateIoAttribution
MiFlushSectionInternal
MiGatherMappedPages
MiSegmentDelete
MmUpdateSectionIoAttribution
PspIoRateEntryActivate
PspIoRateEntryDeactivate