PfpLogEventRequest
INT64 __fastcall PfpLogEventRequest(INT64 *a1){
unsigned int v2;
unsigned int v3;
INT64 v5;
UINT64 DefaultPagePriority;
int SystemInformation;
if( (*(_DWORD *)a1 & 0x1Fu) - 2 <= 1 )
{
v5 = a1[1];
*(_OWORD *)v5 = xmmword_140C4FC10;
*(_QWORD *)(v5 + 16) = *(_QWORD *)byte_140C4FC20;
if( (*(_DWORD *)a1 & 0x1F) == 2 )
DefaultPagePriority = (*(_DWORD *)(v5 + 24) >> 5) & 7;
else
DefaultPagePriority = (unsigned int)MmGetDefaultPagePriority();
PfTSetTracingPriority(DefaultPagePriority);
}
if( (*(_BYTE *)a1 & 0x1F) == 27 && (*(_DWORD *)(a1[1] + 8) & 3) == 1 )
_InterlockedAnd(&dword_140CEBED4, 0xFFFFFFFE);
v2 = *(_DWORD *)a1;
v3 = dword_140C5001C
+ ((((KUSER_SHARED_DATA.TickCountMultiplier * (unsigned __int64)KUSER_SHARED_DATA.ReservedTickCountOverlay[1]) << 8)
+ ((KUSER_SHARED_DATA.TickCountMultiplier * (unsigned __int64)KUSER_SHARED_DATA.TickCount.LowPart) >> 24)) >> 10);
if( (*(_DWORD *)a1 & 0x20) != 0 )
{
SystemInformation = (*(_DWORD *)a1 >> 6) & 1;
MmIssueMemoryListCommand(&SystemInformation, 4ui64, 0);
PfGenerateTrace((INT64)&Thread, 0i64);
v2 = *(_DWORD *)a1;
}
return PfLogEvent(v2 & 0x1F, v3, (const VOID *)a1[1], v2 >> 7);
}Referenced by:
PfSetSuperfetchInformation