PfSnLogPageFault
VOID __stdcall PfSnLogPageFault(FILE_OBJECT *FileObject, UINT64 FileOffset, UINT64 Flags){
int v3;
_ETHREAD *CurrentThread;
struct _EX_RUNDOWN_REF *v7;
struct _EX_RUNDOWN_REF *v8;
INT64 a5;
v3 = Flags;
if( (Flags & 4) == 0 || !FileObject->FsContext2 )
{
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v7 = PfSnReferenceProcessTrace(*((_QWORD *)CurrentThread + 23), FileOffset);
v8 = v7;
if( v7 )
{
if( (unsigned int)PfSnCheckLoggingForThread((INT64)CurrentThread, (INT64)v7, v3) )
{
LODWORD(a5) = v3;
PfSnLogPageFaultCommon((INT64)v8, FileObject, (UINT64)FileObject->FsContext, FileOffset, a5);
}
ExReleaseRundownProtection(v8 + 45);
}
}
}Referenced by:
MiLogRelocationRva
MiMakeSystemCachePteValid