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