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