CcPerfLogScheduleReadAhead

VOID __fastcall CcPerfLogScheduleReadAhead(
        _WORK_QUEUE_ENTRY *WorkEntry,
        _FILE_OBJECT *FileObject,
        _LARGE_INTEGER *FileOffset,
        UINT64 Length,
        UINT64 ReadAheadUnit,
        UINT8 ReadPattern,
        UINT64 ReadAheadSettingsChanged){
  _DWORD *PrivateCacheMap; 
  int v11; 
  _DWORD *SharedCacheMap; 
  unsigned int v13; 
  UINT64 Flag; 
  EVENT_DATA_DESCRIPTOR EventData; 
  INT64 result[3]; 
  int v17; 
  int v18; 
  int v19; 
  __int64 v20; 
  __int64 v21; 
  UINT8 v22; 
  int v23; 
  int v24; 
  unsigned int v25; 
  PrivateCacheMap = 0i64;
  v11 = Length;
  SharedCacheMap = 0i64;
  memset((INT64)result, 0i64);
  if( FileObject )
  {
    PrivateCacheMap = FileObject->PrivateCacheMap;
    SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;
    result[1] = (INT64)FileObject->FsContext;
  }
  result[2] = FileOffset->QuadPart;
  v18 = ReadAheadUnit;
  result[0] = (INT64)WorkEntry;
  v17 = v11;
  v13 = v25 & 0xFFFFFFFE | ((_DWORD)ReadAheadSettingsChanged == 1);
  v25 = v13;
  if( PrivateCacheMap )
  {
    v19 = PrivateCacheMap[13];
    v20 = *((_QWORD *)PrivateCacheMap + 7);
    v21 = *((_QWORD *)PrivateCacheMap + 8);
    v25 = v13 ^ ((unsigned __int8)v13 ^ (unsigned __int8)(*PrivateCacheMap >> 15)) & 2;
    v23 = PrivateCacheMap[12];
  }
  if( SharedCacheMap )
    v24 = SharedCacheMap[38];
  EventData.Reserved = 0;
  v22 = ReadPattern;
  EventData.Size = 72;
  EventData.Ptr = (unsigned __int64)result;
  LODWORD(Flag) = 4200706;
  EtwTraceKernelEvent(&EventData, 1ui64, 0x80020000ui64, 0x160Cu, Flag);
}

Referenced by:

CcScheduleReadAheadEx