PfSnLogPageFault
VOID __stdcall PfSnLogPageFault(_FILE_OBJECT *FileObject, UINT64 FileOffset, UINT64 Flags){
unsigned int v3;
_ETHREAD *CurrentThread;
_PFSN_TRACE_HEADER *v7;
_PFSN_TRACE_HEADER *v8;
UINT64 Flagsa;
v3 = Flags;
if( (Flags & 4) == 0 || !FileObject->FsContext2 )
{
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v7 = PfSnReferenceProcessTrace(CurrentThread->Tcb.ApcState.Process);
v8 = v7;
if( v7 )
{
if( (unsigned int)PfSnCheckLoggingForThread(CurrentThread, v7, v3) )
{
LODWORD(Flagsa) = v3;
PfSnLogPageFaultCommon(v8, FileObject, (UINT64)FileObject->FsContext, FileOffset, Flagsa);
}
ExReleaseRundownProtection((_EX_RUNDOWN_REF *)v8 + 45);
}
}
}Referenced by:
MiLogRelocationRva
MiMakeSystemCachePteValid