MiReturnCcAccessLog
VOID __fastcall MiReturnCcAccessLog(INT64 a1, INT64 a2){
_MM_PAGE_ACCESS_INFO_HEADER *v2;
v2 = (_MM_PAGE_ACCESS_INFO_HEADER *)a1;
if( (_DWORD)a2 )
*(_QWORD *)(a1 + 32) = *(_QWORD *)(a1 + 24);
if( !qword_140C4E540 )
v2 = (_MM_PAGE_ACCESS_INFO_HEADER *)(-(__int64)(_InterlockedCompareExchange64(&qword_140C4E540, a1, 0i64) != 0) & a1);
if( v2 )
{
if( (_MM_PAGE_ACCESS_INFO_HEADER *)v2->PageEntry == &v2[1] )
{
LOBYTE(a2) = 1;
MmFreeAccessPfnBuffer(v2, a2);
}
else
{
MiQueuePageAccessLog((PSLIST_ENTRY)v2);
}
}
}Referenced by:
MiCheckAndProcessCcAccessLog
MmPrefetchForCacheManager