CcPerfLogScheduleReadAhead

VOID __stdcall 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; 
  __int64 *v14; 
  int v15; 
  int v16; 
  __int64 v17[10]; 

  PrivateCacheMap = 0i64;
  v11 = Length;
  SharedCacheMap = 0i64;
  memset(v17, 0i64, 0x48u);
  if( FileObject )
  {
    PrivateCacheMap = FileObject->PrivateCacheMap;
    SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;
    v17[1] = (__int64)FileObject->FsContext;
  }
  v17[2] = FileOffset->QuadPart;
  HIDWORD(v17[3]) = ReadAheadUnit;
  v17[0] = (__int64)WorkEntry;
  LODWORD(v17[3]) = v11;
  v13 = HIDWORD(v17[8]) & 0xFFFFFFFE | ((_DWORD)ReadAheadSettingsChanged == 1);
  HIDWORD(v17[8]) = v13;
  if( PrivateCacheMap )
  {
    LODWORD(v17[4]) = PrivateCacheMap[13];
    v17[5] = *((_QWORD *)PrivateCacheMap + 7);
    v17[6] = *((_QWORD *)PrivateCacheMap + 8);
    HIDWORD(v17[8]) = v13 ^ ((unsigned __int8)v13 ^ (unsigned __int8)(*PrivateCacheMap >> 15)) & 2;
    HIDWORD(v17[7]) = PrivateCacheMap[12];
  }
  if( SharedCacheMap )
    LODWORD(v17[8]) = SharedCacheMap[38];
  v16 = 0;
  LOBYTE(v17[7]) = ReadPattern;
  v15 = 72;
  v14 = v17;
  EtwTraceKernelEvent((__int64)&v14, 1u, 0x80020000, 0x160Cu, 0x401902u);
}

Referenced by:

CcScheduleReadAheadEx