MiQueuePageAccessLog

VOID __stdcall MiQueuePageAccessLog(_MM_PAGE_ACCESS_INFO_HEADER *AccessInfo){
  unsigned int Alignment_low; 
  int v3; 

  AccessInfo->EmptyTime = KUSER_SHARED_DATA.TickCountQuad;
  AccessInfo->EmptySequenceNumber = PfKernelGlobals.StreamSequenceNumber;
  if( !ExAcquireRundownProtection(&PfKernelGlobals.AccessBufferRef) )
    goto LABEL_9;
  Alignment_low = LOWORD(PfKernelGlobals.AccessBufferList.Alignment);
  if( LOWORD(PfKernelGlobals.AccessBufferList.Alignment) >= PfKernelGlobals.AccessBufferMax )
  {
    _InterlockedExchangeAdd((volatile signed __int32 *)&xmmword_140C4FC10, 0x64u);
    v3 = 0;
  }
  else
  {
    RtlpInterlockedPushEntrySList(&PfKernelGlobals.AccessBufferList, (PSLIST_ENTRY)AccessInfo);
    if( Alignment_low >= 8 && !*(_DWORD *)&PfKernelGlobals.gap10[4] )
      KeSetEvent((PRKEVENT)PfKernelGlobals.gap10, 0, 0);
    v3 = 1;
  }
  ExReleaseRundownProtection(&PfKernelGlobals.AccessBufferRef);
  if( !v3 )
LABEL_9:
    MmFreeAccessPfnBuffer(AccessInfo, 1u);
}

Referenced by:

MiCheckAndProcessCcAccessLog
MiEmptyPageAccessLog
MiGetCcAccessLog
MiReturnCcAccessLog
MiTrimOrAgeWorkingSet