MiReturnCcAccessLog
VOID __stdcall MiReturnCcAccessLog(VOID *AccessLog, UINT64 Success){
_MM_PAGE_ACCESS_INFO_HEADER *v2;
v2 = (_MM_PAGE_ACCESS_INFO_HEADER *)AccessLog;
if( (_DWORD)Success )
*((_QWORD *)AccessLog + 4) = *((_QWORD *)AccessLog + 3);
if( !*(&stru_140C4DB30 + 322) )
v2 = (_MM_PAGE_ACCESS_INFO_HEADER *)(-(__int64)(_InterlockedCompareExchange64(
(_QWORD *)&stru_140C4DB30 + 322,
(signed __int64)AccessLog,
0i64) != 0) & (unsigned __int64)AccessLog);
if( v2 )
{
if( (_MM_PAGE_ACCESS_INFO_HEADER *)v2->PageEntry == &v2[1] )
MmFreeAccessPfnBuffer(v2, 1u);
else
MiQueuePageAccessLog(v2);
}
}Referenced by:
MiCheckAndProcessCcAccessLog
MmPrefetchForCacheManager